hbase是如何面向列的?

6vl6ewon  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(367)

我目前正在学习hbase,但与rdbms相比,我无法理解它。
hbase是如何面向列的,我们使用rowid和列族将数据插入hbase。
例如,如果我有两个员工记录,我将为所有列族(cf:id,name,salary)插入第1行,为所有列族插入第2行id
这里我们还插入了rdbms之类的数据,为什么我们称之为面向列的呢?
非常感谢你的帮助。
谢谢文卡塔

wnavrhmk

wnavrhmk1#

在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)的值,但单元格的数量不同。在关系数据库中,这是不可能的。唯一的方法是预先预测所有可能的列并包含它们,但是在这种情况下,对于没有值的每个单元格,都会有空值。
例如,您可以有如下记录:

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

这些都是有效的记录。

相关问题