首頁(yè)技術(shù)文章正文

HBase的特點(diǎn)是什么?適用于哪些場(chǎng)景?

更新時(shí)間:2022-06-28 來(lái)源:黑馬程序員 瀏覽量:

HBase的特點(diǎn)

HBase的一大優(yōu)點(diǎn)是可在廉價(jià)PC 服務(wù)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBase的目標(biāo)是存儲(chǔ)并處理大型的數(shù)據(jù),更具體來(lái)說(shuō)是僅需使用普通的硬件配置,就能夠處理由成千上萬(wàn)的行和列所組成的大型數(shù)據(jù)。HBase分布式數(shù)據(jù)庫(kù)具有如下的顯著特點(diǎn):

1)大:一個(gè)表可以有數(shù)十億行,上百萬(wàn)列;

2)無(wú)模式:每行都有一個(gè)可排序的主鍵和任意多的列,列可以根據(jù)需要?jiǎng)討B(tài)的增加,同一張表中不同的行可以有截然不同的列;

3)面向列:面向列(族)的存儲(chǔ)和權(quán)限控制,列(族)獨(dú)立檢索;

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

5)數(shù)據(jù)多版本:每個(gè)單元中的數(shù)據(jù)可以有多個(gè)版本,默認(rèn)情況下版本號(hào)自動(dòng)分配,是單元格插入時(shí)的時(shí)間戳;

6)數(shù)據(jù)類型單一:Hbase中的數(shù)據(jù)都是字符串,沒(méi)有類型。

HBase的適用場(chǎng)景

① 半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)

對(duì)于數(shù)據(jù)結(jié)構(gòu)字段不夠確定或雜亂無(wú)章很難按一個(gè)概念去進(jìn)行抽取的數(shù)據(jù)適合用HBase。以上面的例子為例,當(dāng)業(yè)務(wù)發(fā)展需要存儲(chǔ)author的email,phone,address信息時(shí)RDBMS需要停機(jī)維護(hù),而HBase支持動(dòng)態(tài)增加。

② 記錄非常稀疏

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

③ 多版本數(shù)據(jù)

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

④ 超大數(shù)據(jù)量

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






猜你喜歡:

HBase數(shù)據(jù)模型有幾種字段類型?有什么不同的含義?

HBase讀寫數(shù)據(jù)流程詳細(xì)介紹

HBase數(shù)據(jù)庫(kù)物理存儲(chǔ)的存儲(chǔ)方式介紹

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

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!