HBase數(shù)據(jù)模型介紹

HBase 介紹

HBase的數(shù)據(jù)的存儲結(jié)構(gòu)不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,HBase是一種結(jié)構(gòu)松散,分布式,多維度有序映射的持久化存儲系統(tǒng),它索引的依據(jù)是行鍵、列鍵和時間戳。
HBase可以被看作鍵值存儲數(shù)據(jù)庫、面向列族的數(shù)據(jù)庫,外文原文地址請點擊。

HBase 數(shù)據(jù)存儲模型基礎(chǔ)

HBase數(shù)據(jù)存儲結(jié)構(gòu)中主要包括:表、行、列族、列限定符、單元格和時間戳,下面將對HBase的數(shù)據(jù)存儲模型的概念一一解釋:

表: 的作用將存儲在HBase的數(shù)據(jù)組織起來。

行: 包含在中,數(shù)據(jù)以的形式存儲在HBase的表中。HBase的表中的每一數(shù)據(jù)都會被一個唯一標識的行鍵標識。行鍵沒有數(shù)據(jù)類型,在HBase存儲系統(tǒng)中行鍵總是被看作一個byte數(shù)組。

列族:中的數(shù)據(jù)都是根據(jù)列族分組,由于列族會影響存儲在HBase中的數(shù)據(jù)的物理布置,所以列族會在使用前定義(在定義的時候就定義列族),并且不易被修改。
在HBase的存儲系統(tǒng)中數(shù)據(jù)存儲在相同的中的所有的數(shù)據(jù)都會有相同的列族(這和關(guān)系型數(shù)據(jù)庫的表一樣,每一行數(shù)據(jù)都有相同的列)。

列限定符: 存儲在在列族中的數(shù)據(jù)通過列限定符來尋址的,不需要提前定義(不需要在定義列族的時候就定義),列與列之間也不需要保持一致。行鍵一樣沒有數(shù)據(jù)類型,并且在HBase存儲系統(tǒng)中也總是被看作一個byte數(shù)組。

單元格: 根據(jù)行鍵、列族可以映射到一個對應的單元格單元格是HBase存儲數(shù)據(jù)的具體地址。在單元格中存儲具體數(shù)據(jù)都是以Byte數(shù)組的形式存儲的,也沒有具體的數(shù)據(jù)類型。

時間戳: 時間戳是給定的一個版本號標識,每一個都會對應一個時間戳,時間戳是和每一個值同時寫入HBase存儲系統(tǒng)中的。在默認情況下,時間戳表示數(shù)據(jù)服務(wù)在寫入數(shù)據(jù)時的時間,但可以在將數(shù)據(jù)放入單元格時指定不同的時間戳值。

HBase 數(shù)據(jù)模型理解

HBase中存儲的數(shù)據(jù),組織結(jié)構(gòu)如圖一所示:

圖一


圖一為HBase中的一個表,由兩個列族(Personal和Office)組成,每個列族都有兩列。 包含數(shù)據(jù)的實體稱為單元格,根據(jù)行鍵進行排序。
為了更好的理解HBase中的多維數(shù)據(jù)存儲模型,這里從上圖的表中摘出一條數(shù)據(jù),將它在HBase的表中的存儲轉(zhuǎn)化成如圖二所表示的形式去理解他。

圖二


如果將HBase表中的數(shù)據(jù)理解成鍵值對存儲的形式,那么也可以用如圖三的形式來理解存儲在HBase表中的數(shù)據(jù)。


圖三
Hbase表設(shè)計要點
  1. 行鍵是HBase表結(jié)構(gòu)設(shè)計中最重要的一件事情,行鍵決定了應用程序如何與HBase表進行交互。如果沒設(shè)計好行鍵還會影響從HBase中讀出數(shù)據(jù)的性能。
  2. HBase的表結(jié)構(gòu)很靈活,而且不關(guān)心數(shù)據(jù)類型,你可以以byte數(shù)組的形式存儲任何數(shù)據(jù)。
  3. 存儲在相同的列族中的數(shù)據(jù)具有相同的特性(易于理解)。
  4. HBase主要是通過行鍵來建立索引。
  5. HBase不支持多行事務(wù),所有盡量在一次API請求操作中獲取到結(jié)果。
  6. HBase中的可以通過提取其hash值來保證長度是固定的和均勻分布,但是這樣做會犧牲的數(shù)據(jù)排序和可讀性。
  7. 列限定符列族名字的長度都會影響I/O的讀寫性能和發(fā)送給客戶端的數(shù)據(jù)量,所以給它們命名的時候應該盡量簡短!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容