HBase初步瞭解
阿新 • • 發佈:2020-10-12
HBase初步瞭解
什麼實HBase
HBase 是分散式非結構化面向列的開源資料庫。資料檔案都儲存在Hadoop HDFS檔案系統上,所以HBase必須要在Hadoop的環境下使用。僅能通過主鍵(row key)和主鍵的range來檢索資料,僅支援單行事務
HBase 用途
主要用來儲存非結構化和半結構化的鬆散資料。存資料是分割槽儲存,自動分割槽。
使用場景
- 系統需要適應不同種類的資料格式和資料來源,不能預先嚴格定義模式,需要處理大規模資料
- 不強調資料之間的關係,所要儲存的資料是半結構化或非結構化的;
- 資料非常稀疏;
- 想要更好的進行擴充套件;
表結構
一張表由多行組成,每一行由多個列組成,這些列可以使單個的列也可以是列族(column family),列族有多個列組成的,一個列族所有的列都存放在相同的儲存檔案中(HFile二進位制格式檔案)。注意每行列族控制在2-3個,因為重新整理某一個列族的時候會同時重新整理他相鄰的列族
如圖所示是一個簡單的Hbase表結構,timestamp是時間戳,表示列的版本。
行資料的存取操作是具有原子性的,要麼全部成功要麼全部失敗,可以讀取任意數目的列還不支援跨行事務和跨表事務。
疑問
- Hbase表的欄位資料型別是什麼
HBase只有字串型別,存入的都位元組(byte)型別。 - hbase的建立語句
hbase是通過shell指令碼來編寫建立語句的。 - 如何查詢指定的資料
只能通過行健來查詢資料 - 表中的資料是否都是二進位制的位元組碼?
優點
- 列可以動態增加,列為null時不佔空間。節省空間。
2.Hbase自動切分資料,使得資料儲存自動具有水平scalability.
缺點
不支援條件查詢,只能通過row key 來查詢。
補充
1.資料操作:HBase只有很簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有複雜的表和表之間的關係,不可以做連線查詢的操作。
2.儲存模式:HBase是基於列儲存的,每個列族都由幾個檔案儲存,不同的列族的檔案是分離的。相同的列族是存放在相同的檔案中的。而傳統的關係型資料庫是基於表格結構和行模式儲存的
3.資料維護,HBase的更新操作不應該叫更新,它實際上是插入了新的資料,而傳統資料庫是替換修改