官术网_书友最值得收藏!

1.5 使用HBase的時(shí)機(jī)

Hadoop是高性能、高穩(wěn)定、可管理的大數(shù)據(jù)應(yīng)用平臺(tái)。Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)。HDFS具有高容錯(cuò)性,被設(shè)計(jì)部署在低廉的硬件上,為應(yīng)用程序訪問數(shù)據(jù)提供了高吞吐量,因而適用于那些有著超大數(shù)據(jù)集的應(yīng)用程序。HBase的存儲(chǔ)是基于Hadoop的。HBase具有超強(qiáng)的擴(kuò)展性和大吞吐量,采用的存儲(chǔ)方式為Key-Value(鍵-值)方式,故而即使數(shù)據(jù)量增大,也幾乎不會(huì)導(dǎo)致查詢性能下降。當(dāng)然,我們也需要注意HBase的缺點(diǎn)。數(shù)據(jù)分析是HBase的弱項(xiàng),因?yàn)镠Base不支持表關(guān)聯(lián),所以當(dāng)我們想實(shí)現(xiàn)group by或者order by時(shí),需要編寫很多的代碼來實(shí)現(xiàn)MapReduce。正因?yàn)槿绱?,我們才需要更合理地使用HBase。下面是筆者根據(jù)自己的工作經(jīng)驗(yàn)給出的一些使用HBase的建議,希望這些建議對(duì)于讀者的技術(shù)選型有所助益。

1.?dāng)?shù)據(jù)量超千萬,可以選擇使用HBase

一般而言,如果單表的數(shù)據(jù)量只有百萬級(jí)或者更少,則不建議使用HBase,而應(yīng)該考慮關(guān)系數(shù)據(jù)庫是否能夠滿足應(yīng)用的需求;如果單表的數(shù)據(jù)量超過千萬或者在十億、百億的數(shù)量級(jí),并且伴有較高并發(fā)的存取應(yīng)用,則可以考慮使用HBase,這樣可以充分利用分布式存儲(chǔ)系統(tǒng)的優(yōu)勢(shì)。

2.?dāng)?shù)據(jù)分析需求不多,可以選擇使用HBase

雖然說HBase是一個(gè)面向列的數(shù)據(jù)庫,但是它與真正的列式存儲(chǔ)系統(tǒng)(比如Parquet、Kudu等)又有所區(qū)別,再加上自身存儲(chǔ)架構(gòu)的設(shè)計(jì),使得HBase并不擅長做數(shù)據(jù)分析。所以如果業(yè)務(wù)需求是為了做數(shù)據(jù)分析,比如做報(bào)表,那么不建議使用HBase。

3.實(shí)時(shí)根據(jù)主鍵查詢,可以選擇使用HBase

HBase是一個(gè)鍵-值數(shù)據(jù)庫,默認(rèn)對(duì)RowKey做了索引優(yōu)化,所以即使數(shù)據(jù)量非常龐大,根據(jù)RowKey查詢的效率也會(huì)很高。但是,如果還需要根據(jù)其他條件進(jìn)行查詢,則不建議使用HBase。

4.多表連接查詢,不建議使用HBase

HBase是NoSQL產(chǎn)品中的一種,它也具有NoSQL的缺點(diǎn),就是不能進(jìn)行連表查詢等操作,也就是說,如果業(yè)務(wù)場(chǎng)景需要事務(wù)支持,或者存在復(fù)雜的關(guān)聯(lián)查詢,則不建議使用HBase。

主站蜘蛛池模板: 海林市| 民乐县| 炎陵县| 吉首市| 柞水县| 海南省| 汶上县| 镇巴县| 信阳市| 建瓯市| 库尔勒市| 永吉县| 龙州县| 凭祥市| 上饶县| 洪洞县| 辰溪县| 叙永县| 乌兰浩特市| 随州市| 雷州市| 新野县| 怀柔区| 黔江区| 鄯善县| 雷州市| 奇台县| 徐闻县| 涞水县| 渭南市| 美姑县| 鱼台县| 左云县| 牡丹江市| 阳东县| 炉霍县| 丰镇市| 平度市| 名山县| 河北省| 商都县|