HBase數據模型

2018-03-03 15:20 更新

HBase數據模型

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

HBase數據模型術語

表(Table)

HBase 會將數據組織進一張張的表里面,一個 HBase 表由多行組成。

行(Row)

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

列(Column)

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

列族(Column Family)

出于性能原因,列族在物理上共同存在一組列和它們的值。在 HBase 中每個列族都有一組存儲屬性,例如其值是否應緩存在內存中,數據如何壓縮或其行編碼是如何編碼的等等。表中的每一行都有相同的列族,但給定的行可能不會在給定的列族中存儲任何內容。

列族一旦確定后,就不能輕易修改,因為它會影響到 HBase 真實的物理存儲結構,但是列族中的列標識(Column Qualifier)以及其對應的值可以動態(tài)增刪。

列限定符(Column Qualifier)

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

單元格(Cell)

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

時間戳(Timestamp)

時間戳與每個值一起編寫,并且是給定版本的值的標識符。默認情況下,時間戳表示寫入數據時 RegionServer 上的時間,但可以在將數據放入單元格時指定不同的時間戳值。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號