更新時(shí)間:2021-05-18 來源:傳智教育 瀏覽量:
HBase分布式數(shù)據(jù)庫的數(shù)據(jù)存儲在行列式的表格中,它是一個多維度的映射模型,其數(shù)據(jù)模型如圖1所示。
圖1 HBase的數(shù)據(jù)模型
在圖1中包含了很多的字段,這些字段分別表示不同的含義,具體介紹如下:
Row Key(行鍵)
RowKey表示行鍵,每個HBase表中只能有一個行鍵,它在HBase中以字典序的方式存儲。由于RowKey是HBase表的唯一標(biāo)識,因此Row Key的設(shè)計(jì)非常重要。數(shù)據(jù)的存儲規(guī)則是相近的數(shù)據(jù)存儲到一起。例如,當(dāng)Row Key格式為[www.apache.org、mail.apache.org](http://www.apache.org、mail.apache.org)以及jira.apache.org這樣的網(wǎng)站名稱時(shí),可以將網(wǎng)站名稱進(jìn)行反轉(zhuǎn),反轉(zhuǎn)成org.apache.www、org.apache.mail以及org.apache.jira,然后再進(jìn)行存儲,這樣的話,所有org.apache域名將會存儲在一起,避免子域名(即www、mail、jira)分散在各處。
Column(列)
HBase表的列是由列族名、限定符以及列名組成的,其中“:”為限定符。創(chuàng)建HBase表不需要指定列,因?yàn)榱惺强勺兊?,非常靈活。
Column Family(列族)
在HBase中,列族由很多列組成。在同一個表里,不同列族有完全不同的屬性,但是同一個列族內(nèi)的所有列都會有相同的屬性,因?yàn)樗麄兌荚谝粋€列族里面,而屬性都是定義在列族上的。c1、c2、c3均為列族名。
Timestamp(時(shí)間戳)
表示時(shí)間戳,記錄每次操作數(shù)據(jù)的時(shí)間,通常記作數(shù)據(jù)的版本號。
Redis、傳統(tǒng)數(shù)據(jù)庫、HBase和Hive幾種數(shù)據(jù)存儲的區(qū)別