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

1.2.4 為什么選擇HBase

當(dāng)開始學(xué)習(xí)一門技術(shù)的時(shí)候,總是習(xí)慣于將它們與已有的技術(shù)進(jìn)行對(duì)比。當(dāng)剛接觸Python的時(shí)候,會(huì)發(fā)現(xiàn)它的簡(jiǎn)潔與效率;當(dāng)剛接觸PHP的時(shí)候,也會(huì)探尋它的優(yōu)勢(shì)在哪里。

那么HBase經(jīng)常也會(huì)用來(lái)和常見的關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行對(duì)比。

關(guān)系型數(shù)據(jù)庫(kù)不擅長(zhǎng)的地方有:大量數(shù)據(jù)的寫入處理,讀寫性能比較差,尤其是海量數(shù)據(jù)的高效率讀寫;固定的表結(jié)構(gòu),靈活度稍欠;高并發(fā)讀寫需求,硬盤I/O是一個(gè)很大的瓶頸;當(dāng)為有數(shù)據(jù)更新的表做索引或?qū)Ρ斫Y(jié)構(gòu)進(jìn)行變更時(shí),性能差等。比如Oracle、MySQL等關(guān)系型數(shù)據(jù)庫(kù)基本存在上面的一些缺陷。

HBase作為一個(gè)NoSQL,不支持完整的事務(wù)性,而且僅僅支持基于RowKey的索引,在性能上不如memcached和Redis。但是在海量數(shù)據(jù)、持久化存儲(chǔ)方面比內(nèi)存類型的NoSQL強(qiáng)得多,作為文檔型NoSQL在分布式存儲(chǔ)上比MongoDB做切分和MapReduce分析也簡(jiǎn)單方便得多。這一切都源于HBase本身基于Hadoop,可以簡(jiǎn)單地通過(guò)增加廉價(jià)節(jié)點(diǎn)的方式進(jìn)行擴(kuò)展,對(duì)于數(shù)據(jù)本身就可以很好地進(jìn)行水平切分,同時(shí)和HDFS、MapReduce、Spark等結(jié)合得很好。不僅可以方便地進(jìn)行存儲(chǔ),同時(shí)還可以更加方便地對(duì)數(shù)據(jù)進(jìn)行處理和運(yùn)算,這才是HBase最核心的特性。這些都是常見的關(guān)系型數(shù)據(jù)庫(kù)所無(wú)法比擬的,比其他常見的NoSQL也要強(qiáng)出不少。

當(dāng)然,HBase并不能解決所有的問(wèn)題,所以才會(huì)有那么多的NoSQL和SQL出現(xiàn)。

HBase典型的應(yīng)用場(chǎng)景就是不斷地插入新的信息。對(duì)于持續(xù)、大量的插入,可以達(dá)到每秒百萬(wàn)的吞吐量,而對(duì)于已有的數(shù)據(jù)修改的頻率很小。

主站蜘蛛池模板: 阿鲁科尔沁旗| 林口县| 徐闻县| 株洲市| 元江| 汪清县| 永春县| 嵊泗县| 长岭县| 樟树市| 寿光市| 来凤县| 田林县| 沐川县| 江永县| 筠连县| 达州市| 鹤峰县| 七台河市| 海林市| 新闻| 抚宁县| 桃园市| 宜阳县| 长治市| 盐池县| 嘉义市| 雅安市| 浙江省| 韩城市| 渝中区| 诸暨市| 千阳县| 康马县| 通辽市| 巨鹿县| 兰考县| 荔波县| 桂林市| 嫩江县| 上思县|