2017-03-28 48 views
0

我目前在學習HBase,與RDBMS比較時我無法理解。hbase是如何面向列的?

  1. hbase是如何以列爲導向的,我們將數據插入到rowid和column家族的hbase中。

舉例來說,如果我有兩個員工記錄,我將與所有列族ROW1插入(參見:ID,姓名,工資) 和第二排,我會用2行ID插入所有列族

這裏我們也插入像RDBMS這樣的數據,那麼爲什麼我們把它稱爲列導向?

你的幫助真的很感激。

感謝 文卡塔

回答

0

在RDMBS你有一個固定的模式,這意味着每行有相同的列。在HBase中,情況並非如此,每行可以有不同的(數量)列。這就是爲什麼它被認爲是一個柱狀存儲。

例如,你可以有這樣的一個表:

row1key, cf1:c1, cf1:c2, cf1:c5, cf2:col1, cf2:col5 
row2key, cf1:c2, cf1:c3, cf2:col1, cf2:col7, cf2:col8 

正如你所看到的,這裏有一個包含兩個族(CF1和CF2)值兩行,但對於不同的(數) 細胞。在關係數據庫中,這是不可能的。唯一的辦法是預測所有可能的列並將它們預先包含在內,但在這種情況下,對於每個沒有值的單元格,您都會有NULL值。

爲了您例如,你可以有記錄是這樣的:

employee1, id1, name1, salary1 
employee2, id2, salary2 
employee3, id3, name3 
employee4, id4 

而這些都將是有效的記錄。