首頁技術文章正文

HBase的特點是什么?適用于哪些場景?

更新時間:2022-06-28 來源:黑馬程序員 瀏覽量:

HBase的特點

HBase的一大優(yōu)點是可在廉價PC 服務器上搭建起大規(guī)模結構化存儲集群。HBase的目標是存儲并處理大型的數據,更具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數據。HBase分布式數據庫具有如下的顯著特點:

1)大:一個表可以有數十億行,上百萬列;

2)無模式:每行都有一個可排序的主鍵和任意多的列,列可以根據需要動態(tài)的增加,同一張表中不同的行可以有截然不同的列;

3)面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索;

4)稀疏:空(null)列并不占用存儲空間,表可以設計的非常稀疏;

5)數據多版本:每個單元中的數據可以有多個版本,默認情況下版本號自動分配,是單元格插入時的時間戳;

6)數據類型單一:Hbase中的數據都是字符串,沒有類型。

HBase的適用場景

① 半結構化或非結構化數據

對于數據結構字段不夠確定或雜亂無章很難按一個概念去進行抽取的數據適合用HBase。以上面的例子為例,當業(yè)務發(fā)展需要存儲author的email,phone,address信息時RDBMS需要停機維護,而HBase支持動態(tài)增加。

② 記錄非常稀疏

RDBMS的行有多少列是固定的,為null的列浪費了存儲空間。而如上文提到的,HBase為null的Column不會被存儲,這樣既節(jié)省了空間又提高了讀性能。

③ 多版本數據

如上文提到的根據Row key和Column key定位到的Value可以有任意數量的版本值,因此對于需要存儲變動歷史記錄的數據,用HBase就非常方便了。比如上例中的author的Address是會變動的,業(yè)務上一般只需要最新的值,但有時可能需要查詢到歷史值。

④ 超大數據量

當數據量越來越大,RDBMS數據庫撐不住了,就出現(xiàn)了讀寫分離策略,通過一個Master專門負責寫操作,多個Slave負責讀操作,服務器成本倍增。隨著壓力增加,Master撐不住了,這時就要分庫了,把關聯(lián)不大的數據分開部署,一些join查詢不能用了,需要借助中間層。隨著數據量的進一步增加,一個表的記錄越來越大,查詢就變得很慢,于是又得搞分表,比如按ID取模分成多個表以減少單個表的記錄數。經歷過這些事的人都知道過程是多么的折騰。采用HBase就簡單了,只需要加機器即可,HBase會自動水平切分擴展,跟Hadoop的無縫集成保障了其數據可靠性(HDFS)和海量數據分析的高性能(MapReduce)。






猜你喜歡:

HBase數據模型有幾種字段類型?有什么不同的含義?

HBase讀寫數據流程詳細介紹

HBase數據庫物理存儲的存儲方式介紹

黑馬程序員Python+大數據開發(fā)工程師培訓

分享到:
在線咨詢 我要報名
和我們在線交談!