您好,登錄后才能下訂單哦!
大家都知道Hadoop是一個數(shù)據(jù)庫,其實(shí)說的的就是Hbase。它和我們平常理解的關(guān)系型數(shù)據(jù)庫有什么區(qū)別呢?
1.它是NoSQL的,它沒有SQL的接口,有自己的一套API。
2.關(guān)系型數(shù)據(jù)庫可以做匯總,可以進(jìn)行常規(guī)的分析,但是Hbase不可以,它不能做匯總。那么Hbase操作不方便,不能做匯總,不能做分析,有什么作用呢?它的隨機(jī)讀寫效率很高,可以存儲海量數(shù)據(jù),基于某個網(wǎng)點(diǎn),某個城市,某個機(jī)器隨機(jī)去查詢速度快。或者去存儲基于時間序列的數(shù)據(jù),比如微信、微博、日志的數(shù)據(jù),效率很高。
3.它的存儲是列式的,平常我們接觸的MySQL,Oracle,RDBMS都是行存儲。行存儲和列存儲的區(qū)別是:行存儲適合在線事務(wù)的場景,適合隨機(jī)的訪問,比如去銀行修改賬戶記錄,修改個人信息,這個修改就是從數(shù)據(jù)庫中找到你信息所在的行。列存儲就是以列為單位進(jìn)行連續(xù)存儲,如果以列存儲放到銀行這個場景中會是怎樣的一種效果呢?如果想要修改信息,那么定義到用戶所在行信息,就會掃描到整個表,所以行存儲主要用于在線事務(wù)處理,而列存儲適用于數(shù)據(jù)分析。因?yàn)樵诖髷?shù)據(jù)的數(shù)據(jù)庫場景中,我們會構(gòu)建很寬的事實(shí)表,通過信息模型有個中心,圍繞這個中心擴(kuò)散出很多維度,這個中間表是一個很寬的表,在我們進(jìn)行特定業(yè)務(wù)分析的時候,比如分析廣告業(yè)務(wù)推廣的情況,可能只需要從很多資料中選取一部分變量進(jìn)行分析,如果使用行存儲,那么就是全表掃描,而使用列存儲會選取特定部分,效率很高。
HBase vs RDBMS
通過以上描述,我們分析一下hbase的特點(diǎn):
(1)存儲海量數(shù)據(jù):Pb+
(2)高吞吐:每秒每個節(jié)點(diǎn)上千次寫
(3)適合處理稀疏數(shù)據(jù)(半結(jié)構(gòu)化數(shù)據(jù)):存儲一行的空列沒有空間浪費(fèi)。因?yàn)榘虢Y(jié)構(gòu)化數(shù)據(jù)有大量的空存在,那么使用結(jié)構(gòu)化數(shù)據(jù)存儲到關(guān)系型數(shù)據(jù)庫,就會有大量的空間浪費(fèi),而且不適合做分析。
但是hbase訪問模式是受到限制的,它對基于行鍵的查找做了優(yōu)化,而不是全文查詢;沒有事務(wù),只支持單行操作。
說了這么多,那么我們?yōu)槭裁词褂肏base呢?這里我們做一個對比:
(1)使用HDFS
你只需要追加到數(shù)據(jù)集(沒有隨機(jī)寫)
通常讀取整個數(shù)據(jù)集(沒有隨機(jī)讀)
(2)使用HBase
你需要隨機(jī)寫或讀
每秒對TB級的數(shù)據(jù)執(zhí)行上千次操作
(3)使用RDBMS
數(shù)據(jù)放在一個大節(jié)點(diǎn)上
需要全部的事務(wù)支持
需要實(shí)時查詢的能力
這就是個人對于Hbase的一些認(rèn)知和了解,寫出來和大家共同分享,希望可以共同進(jìn)步。不過我個人平常也會關(guān)注CSDN論壇以及“大數(shù)據(jù)cn”、“大數(shù)據(jù)時代學(xué)習(xí)中心”這些微信公眾號,從中我了解和學(xué)習(xí)了很多東西,也讓自己的技術(shù)能力更上了一層樓,推薦大家看看。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。