欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

快速理解HBase和BigTable

有關(guān)系行數(shù)據(jù)庫經(jīng)驗的人(比如我),在最初接觸HBase這樣的數(shù)據(jù)庫時,對數(shù)據(jù)結(jié)構(gòu)的理解容易遇到障礙。會不自覺的將HBase的行、列等概念映射成關(guān)系型數(shù)據(jù)庫的行、列。為了加速理解HBase的一些概念,翻譯了這篇文章《Understanding HBase and BigTable》(HBase官方文檔推薦閱讀文章)。

10年積累的做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有虞城免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

學(xué)習(xí)Hbase(Google BigTable的開源實現(xiàn))最困難的是理解它的實際概念。

很不幸的是,這兩個偉大的系統(tǒng)在其概念中包含了table和base兩個詞,這往往會導(dǎo)致一些人(比如我) 把它們跟關(guān)系型數(shù)據(jù)庫的東西搞混淆。

本文旨在從概念的角度描述這些分布式數(shù)據(jù)存儲系統(tǒng)。閱讀之后,你應(yīng)該能夠更好地判斷,什么時候要使用Hbase,什么時候該更好地使用“傳統(tǒng)”數(shù)據(jù)庫。

一切都在術(shù)語中

幸運的是,Google的BigTable論文清楚地解釋了BigTable究竟是什么。這是“數(shù)據(jù)模型”部分的第一句話: 

快速理解HBase和BigTable

注意:請牢記上邊這句話的每一個詞

BigTable論文繼續(xù)說明 

快速理解HBase和BigTable

Hadoop wiki的HbaseArchitecture頁面假設(shè):

快速理解HBase和BigTable

盡管所有這些看起來都相當(dāng)神秘,但是一旦你將它分解為單詞,它就變得容易明確了。我喜歡按照這個順序討論它們:map,持久化(persistent),分布式(distributed),有序(sorted),多維(multidimensional)和稀疏(sparse)。

我沒有嘗試一下子描繪完整的系統(tǒng),而是發(fā)現(xiàn)在腦海中構(gòu)建一個零碎的框架更容易理解HBase……

Map

Hbase / BigTable的核心是map,根據(jù)您的編程語言背景,您可能更熟悉這些術(shù)語,array (PHP), dictionary (Python), Hash (Ruby), or Object (JavaScript).

維基百科文章顯示,Map是“由一組鍵和一組值組成的抽象數(shù)據(jù)類型,其中每個鍵與一個值相關(guān)聯(lián)?!?/p>

用JSON來描述一個簡單Map的示例,其中所有值都只是字符串: 

快速理解HBase和BigTable

持久化

持久化僅僅意味著在創(chuàng)建或訪問數(shù)據(jù)的程序完成后,您放入此特殊Map的這些數(shù)據(jù)“會持久保存”。這在概念上與任何其他類型的持久存儲(例如文件系統(tǒng)上的文件)沒有什么不同。

有序

與大多數(shù)Map實現(xiàn)不同,在Hbase / BigTable中,鍵/值對按嚴(yán)格的字母順序保存。也就是說,鍵“aaaaa”的行應(yīng)該在具有鍵“aaaab”的行旁邊,并且與具有鍵“zzzzz”的行相距很遠(yuǎn)。

繼續(xù)我們的JSON示例,有序版本如下所示: 

快速理解HBase和BigTable

由于這些系統(tǒng)往往非常龐大且是分布式,因此這種有序的特性非常重要。具有相似鍵的行在空間上的鄰近性確保了當(dāng)您必須掃描表時,您最感興趣的條目彼此接近。

選擇行鍵的約定很重要。例如,考慮一個表,其鍵是域名。以反向表示法列出它們是最有意義的(所以“com.jimbojw.www”比“www.jimbojw.com”更好),這樣子域的行(存儲上)將靠近父域行。

值得注意的是,在Hbase / BigTable中,術(shù)語“有序”并不意味著“值(values)”已排序。除了鍵之外,沒有任何自動索引,就像在普通Map實現(xiàn)中一樣。

多維

到目前為止,我們還沒有提到任何“列(columns)”的概念,將“表(table)”視為概念中的常規(guī)哈希/映射(map)。這是有意為之。 “列(column)”這個詞是另一個加載的詞,如“table”和“base”,它傳承了多年關(guān)系型數(shù)據(jù)庫經(jīng)驗的情感包袱。

相反,我發(fā)現(xiàn)(把HBase)看成一個多維Map更容易思考這個問題 - 如果你愿意的話,可以使用嵌套Map。在之前的JSON示例中添加一個維度: 

快速理解HBase和BigTable

在上面的例子中,您現(xiàn)在會注意到每個鍵都指向一個有兩個鍵的Map:“A”和“B”。從此處開始,我們將頂層鍵/映射(key/map)稱為“行”。此外,在BigTable / Hbase命名法中,“A”和“B”映射(mappings)將被稱為“列族”。

創(chuàng)建表時會指定表的列族,以后很難或無法修改。添加新列族代價也很大,因此好的做法是從一開始就指定您需要的所有列族。

幸運的是,列族可以具有任意數(shù)量的列,由列“限定符(qualifier)”或“標(biāo)簽(label)”表示。以下是我們的JSON示例的子集,內(nèi)置了列限定符維度(qualifier dimension): 

快速理解HBase和BigTable

請注意,在顯示的兩行中,“A”列族有兩列:“foo”和“bar”,“B”列族只有一列,其限定符為空字符串(“”)。

在向Hbase / BigTable詢問數(shù)據(jù)時,必須以“<family>:<qualifier>”的形式提供完整的列名稱。因此,例如,上例中的兩行都有三列:“A:foo”,“A:bar”和“B:”。

請注意,雖然列族是靜態(tài)的,但列本身不是??紤]這個擴展的行: 

快速理解HBase和BigTable

在這種情況下,“zzzzz”行只有一列,“A:catch_phrase”。由于每行可能包含任意數(shù)量的不同列,因此沒有內(nèi)置方法可以查詢所有行中所有列的數(shù)據(jù)(list)。要獲取該信息,您必須進行全表掃描。但是,您可以查詢所有列族的數(shù)據(jù),因為它們是不可變的(或多或少)。

Hbase / BigTable中最后一個維度是時間。所有數(shù)據(jù)都使用整數(shù)時間戳(seconds since the epoch)或您選擇的另一個整數(shù)進行版本控制??蛻舳丝梢栽诓迦霐?shù)據(jù)時指定時間戳。

看一下使用任意整數(shù)時間戳的示例: 

快速理解HBase和BigTable

每個列族可能有自己的規(guī)則,確定保留的給定單元格的版本數(shù)量(單元格由其rowkey / column鍵值對標(biāo)識)在大多數(shù)情況下,應(yīng)用程序?qū)⒅辉儐柦o定單元格的數(shù)據(jù),而不指定時間戳。在這種常見情況下,Hbase / BigTable將返回最新版本(具有最高時間戳的版本),因為它以時間逆序存儲這些版本數(shù)據(jù)。

如果應(yīng)用程序指定時間戳,Hbase將返回時間戳小于或等于所提供時間戳的單元數(shù)據(jù)。

使用我們想象中的Hbase表,查詢“aaaaa”/“A:foo”的行/列(row/column)將返回“y”,同時查詢“aaaaa”/“A:foo”/ 10的 行/列/時間戳 將返回“M”。查詢“aaaaa”/“A:foo”/ 2的 行/列/時間戳 將返回空結(jié)果。

稀疏

最后一個關(guān)鍵字是稀疏。如前所述,給定行在每個列族中可以包含任意數(shù)量的列,或者根本不包含任何列。另一種類型的稀疏性是基于行的間隙(row-based gaps),這僅僅意味著鍵(key)之間可能存在間隙。

如果您已經(jīng)按照本文的基于映射(map-based)的術(shù)語來思考Hbase / BigTable,而不是用關(guān)系型數(shù)據(jù)庫中的相似概念去思考,那么本文的目的就達(dá)到了。

就這樣(And that's about it)

好吧,我希望這有助于您從概念上理解Hbase數(shù)據(jù)模型的含義。

一如既往,我期待著您的想法,意見和建議。 

網(wǎng)站題目:快速理解HBase和BigTable
網(wǎng)站路徑:http://aaarwkj.com/article24/jescce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序服務(wù)器托管響應(yīng)式網(wǎng)站、移動網(wǎng)站建設(shè)企業(yè)建站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
欧美熟妇在线视频你懂的| 91精品国产91久久综合福利| 性感美女国产av一区二区三区| 中文字幕乱码在线观看一区| 在线观看中文字幕不卡二区| 亚洲日本不卡在线一区二区| 熟妇人妻中文字幕在线| 超薄丝袜美腿一二三区在线播放| 亚洲免费成人高清电影| 亚洲av综合色区一区| 97精品国产高清在线| 久久久之久亚州精品露出| 乡村丰满的大屁股熟妇| 日韩女优中文字幕在线播放| 精品丝袜熟女一区二区三区| 日本一区二区中文字幕在线| av欧美激情在线观看| 国产日韩视频一区二区| 高清国语对白刺激av在线播放| av资源天堂第一区第二区第三区| 麻豆精品人妻中文在线| 久久久av在线免费观看| 日韩av在线播放亚洲天堂| 放荡精品少妇一区二区三区| 中国毛片一区二区三区| 99久在线观看精品视频| 中日中文av一区二区三区 | 蜜桃传媒18传媒在线| 欧美国产大片一区视频| 国产精品第一区第二区| 男女午夜激情四射视频| 成人激情视频在线观看| av毛片天堂在线观看| 欧美日韩加勒比综合在线 | 国产精品亚洲精品欧美| 五月天男人的天堂精品| 四影虎影永久免费观看| 国产传媒视频在线观看| 国产精品国产三级区| 国产饥渴熟女在线三区| 日本国产精品久久一线|