hbase特性有哪些?
首先,我們從概念上了解什么是hbase
HBase其實(shí)一個(gè)縮寫(xiě),是Hadoop Database的簡(jiǎn)稱,從問(wèn)世之初,就為了解決用大量廉價(jià)的機(jī)器高速存取海量數(shù)據(jù)、實(shí)現(xiàn)數(shù)據(jù)分布式存儲(chǔ)提供可靠的方案。
其次、我們從不同角度來(lái)人事hbase
1、從功能上來(lái)講
HBase不折不扣是一個(gè)數(shù)據(jù)庫(kù),與我們熟悉的Oracle、MySQL、MSSQL等一樣,對(duì)外提供數(shù)據(jù)的存儲(chǔ)和讀取服務(wù)。
2、從應(yīng)用的角度來(lái)說(shuō)
HBase與一般的數(shù)據(jù)庫(kù)又有所區(qū)別,HBase本身的存取接口相當(dāng)簡(jiǎn)單,不支持復(fù)雜的數(shù)據(jù)存取,更不支持SQL等結(jié)構(gòu)化的查詢語(yǔ)言;HBase也沒(méi)有除了rowkey以外的索引,所有的數(shù)據(jù)分布和查詢都依賴rowkey。所以,HBase在表的設(shè)計(jì)上會(huì)有很嚴(yán)格的要求。
3、從架構(gòu)上講
HBase是分布式數(shù)據(jù)庫(kù)的典范,這點(diǎn)比較像MongoDB的sharding模式,能根據(jù)鍵值的大小,把數(shù)據(jù)分布到不同的存儲(chǔ)節(jié)點(diǎn)上,MongoDB根據(jù)configserver來(lái)定位數(shù)據(jù)落在哪個(gè)分區(qū)上,HBase通過(guò)訪問(wèn)Zookeeper來(lái)獲取-ROOT-表所在地址,通過(guò)-ROOT-表得到相應(yīng).META.表信息,從而獲取數(shù)據(jù)存儲(chǔ)的region位置。
最后,我們來(lái)分析一下hbase的特點(diǎn)
1、適合大量插入同時(shí)key-value查詢,例如可以輸入一個(gè)key查詢一個(gè)value,還可以輸入一組key查詢一組value。
2、瓶頸是硬盤(pán)的傳輸速度,因?yàn)橛写罅康牟迦氩僮骱妥x出操作,使用SSD SCSI IDE不同的硬盤(pán)效率是不同的。
3、適合數(shù)據(jù)分析。
4、列式數(shù)據(jù)庫(kù)會(huì)把相同列的數(shù)據(jù)都放在一塊即列為單位存儲(chǔ)。當(dāng)我們查詢某一列的時(shí)候只需要調(diào)出相應(yīng)的塊即可,這樣還可以減少很多I/O。
5、如果數(shù)據(jù)元素間的相似性很高的話可以進(jìn)行大幅度的壓縮,相似度越高壓縮比越大,甚至可以壓縮到原來(lái)十幾分之一、上百分之一。即節(jié)約了空間又減少了I/O,從而提高性能。
6、hbase只有主鍵索引,它使用的是LSM(Log Structure Merge)索引,因?yàn)閔base所有的修改都是使用追加方式完成的,從數(shù)據(jù)流上看按照順序方式寫(xiě)入與日志寫(xiě)入的方式相同,我們又可以認(rèn)為數(shù)據(jù)和日志一體化,這又節(jié)約了很多空間。