1. 程式人生 > 實用技巧 >HBase初步瞭解

HBase初步瞭解

HBase初步瞭解

什麼實HBase

HBase 是分散式非結構化面向列的開源資料庫。資料檔案都儲存在Hadoop HDFS檔案系統上,所以HBase必須要在Hadoop的環境下使用。僅能通過主鍵(row key)和主鍵的range來檢索資料,僅支援單行事務

HBase 用途

主要用來儲存非結構化和半結構化的鬆散資料。存資料是分割槽儲存,自動分割槽。

使用場景

  1. 系統需要適應不同種類的資料格式和資料來源,不能預先嚴格定義模式,需要處理大規模資料
  2. 不強調資料之間的關係,所要儲存的資料是半結構化或非結構化的;
  3. 資料非常稀疏;
  4. 想要更好的進行擴充套件;

表結構

一張表由多行組成,每一行由多個列組成,這些列可以使單個的列也可以是列族(column family),列族有多個列組成的,一個列族所有的列都存放在相同的儲存檔案中(HFile二進位制格式檔案)。注意每行列族控制在2-3個,因為重新整理某一個列族的時候會同時重新整理他相鄰的列族

每行有一個唯一的行健(rowKey)其長度預設應該小於65536,檢索時根據行健檢索。

在這裡插入圖片描述

如圖所示是一個簡單的Hbase表結構,timestamp是時間戳,表示列的版本。
行資料的存取操作是具有原子性的,要麼全部成功要麼全部失敗,可以讀取任意數目的列還不支援跨行事務和跨表事務。

疑問

  1. Hbase表的欄位資料型別是什麼
    HBase只有字串型別,存入的都位元組(byte)型別。
  2. hbase的建立語句
    hbase是通過shell指令碼來編寫建立語句的。
  3. 如何查詢指定的資料
    只能通過行健來查詢資料
  4. 表中的資料是否都是二進位制的位元組碼?

優點

  1. 列可以動態增加,列為null時不佔空間。節省空間。
    2.Hbase自動切分資料,使得資料儲存自動具有水平scalability.
    3.Hbase可以提供高併發讀寫操作的支援

缺點

不支援條件查詢,只能通過row key 來查詢。

補充

1.資料操作:HBase只有很簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有複雜的表和表之間的關係,不可以做連線查詢的操作。
2.儲存模式:HBase是基於列儲存的,每個列族都由幾個檔案儲存,不同的列族的檔案是分離的。相同的列族是存放在相同的檔案中的。而傳統的關係型資料庫是基於表格結構和行模式儲存的
3.資料維護,HBase的更新操作不應該叫更新,它實際上是插入了新的資料,而傳統資料庫是替換修改