一、hbase應用場景
海量數據存儲,上百億行×上百萬列,關係型數據庫一般最多30個列,單表五百萬
準實時查詢,上百億行×上百萬列情況百毫秒
上百萬行數據沒必要放在hbase
舉例說明實際業務場景中的應用:交通GPS信息、移動電話信息、金融、電商
二、hbase的特點
容量大:hbase單表可以百億行、百萬列,數據矩陣橫向和縱向亮給維度所支持的數據兩級都非常具有彈性;
面向列:hbase是面向列的存儲和權限控制,並支持獨立檢索。列式存儲,其數據在表中是按照某列存儲的,這樣在查詢只需要少數幾個字段的時候,能大大減少讀取的數據量;
多版本:hbase每列的數據存儲有多個版本version;
稀疏性:爲空的列並不佔用存儲空間,表可以設計的非常稀疏;
擴展性:底層依賴於HDFS,增加節點;
高可靠性:WAL機制保證了數據寫入時不會因集羣異常而導致寫入數據丟失:Replication機制保證了在集羣出現嚴重的問題時,數據不會發生丟失或損壞。而且HBase底層使用HDFS HDFS本身也有備份;
高性能:底層LSM數據結構和Rowkey有序排列等架構上的獨特設計,使得hbase具有非常高的寫入性能。region切分、主鍵索引和緩存機制使得hbase在海量數據下具備一定的隨機讀取性能,該性能針對Rowkey的查詢能達到毫秒級別。
三、hbase架構體系與設計模型
Column Family 列簇
表創建的時候,先建列簇,插入數據時動態增加列
一張表不會超過5個列簇
每個列簇的列數沒有限制
列只有插入數據後存在
列在列簇中是有序的
四、hbase對比mysql等關係型數據庫
hbase支持列動態增加
hbase支持數據自動切分
hbase支持高併發讀寫
hbase不支持條件查詢