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

2018-03-03 15:20 更新

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

在 HBase 中,數(shù)據(jù)模型同樣是由表組成的,各個(gè)表中又包含數(shù)據(jù)行和列,在這些表中存儲(chǔ)了 HBase 數(shù)據(jù)。在本節(jié)中,我們將介紹 HBase 數(shù)據(jù)模型中的一些術(shù)語。

HBase數(shù)據(jù)模型術(shù)語

表(Table)

HBase 會(huì)將數(shù)據(jù)組織進(jìn)一張張的表里面,一個(gè) HBase 表由多行組成。

行(Row)

HBase 中的一行包含一個(gè)行鍵和一個(gè)或多個(gè)與其相關(guān)的值的列。在存儲(chǔ)行時(shí),行按字母順序排序。出于這個(gè)原因,行鍵的設(shè)計(jì)非常重要。目標(biāo)是以相關(guān)行相互靠近的方式存儲(chǔ)數(shù)據(jù)。常用的行鍵模式是網(wǎng)站域。如果你的行鍵是域名,則你可能應(yīng)該將它們存儲(chǔ)在相反的位置(org.apache.www,org.apache.mail,org.apache.jira)。這樣,表中的所有 Apache 域都彼此靠近,而不是根據(jù)子域的第一個(gè)字母分布。

列(Column)

HBase 中的列由一個(gè)列族和一個(gè)列限定符組成,它們由:(冒號(hào))字符分隔。

列族(Column Family)

出于性能原因,列族在物理上共同存在一組列和它們的值。在 HBase 中每個(gè)列族都有一組存儲(chǔ)屬性,例如其值是否應(yīng)緩存在內(nèi)存中,數(shù)據(jù)如何壓縮或其行編碼是如何編碼的等等。表中的每一行都有相同的列族,但給定的行可能不會(huì)在給定的列族中存儲(chǔ)任何內(nèi)容。

列族一旦確定后,就不能輕易修改,因?yàn)樗鼤?huì)影響到 HBase 真實(shí)的物理存儲(chǔ)結(jié)構(gòu),但是列族中的列標(biāo)識(shí)(Column Qualifier)以及其對(duì)應(yīng)的值可以動(dòng)態(tài)增刪。

列限定符(Column Qualifier)

列限定符被添加到列族中,以提供給定數(shù)據(jù)段的索引。鑒于列族的content,列限定符可能是content:html,而另一個(gè)可能是content:pdf。雖然列族在創(chuàng)建表時(shí)是固定的,但列限定符是可變的,并且在行之間可能差別很大。

單元格(Cell)

單元格是行、列族和列限定符的組合,并且包含值和時(shí)間戳,它表示值的版本。

時(shí)間戳(Timestamp)

時(shí)間戳與每個(gè)值一起編寫,并且是給定版本的值的標(biāo)識(shí)符。默認(rèn)情況下,時(shí)間戳表示寫入數(shù)據(jù)時(shí) RegionServer 上的時(shí)間,但可以在將數(shù)據(jù)放入單元格時(shí)指定不同的時(shí)間戳值。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)