HBase是一个分布式的、面向列的数据库,它可以存储大量的结构化或半结构化的数据。HBase的数据模型是由表、行、列族和列组成的,其中表是由若干行组成的,每一行有一个唯一的行键,行键可以是任意的字节数组。每一行可以有多个列族,每个列族也可以有多个列,每个列也是一个字节数组,可以动态地添加或删除。每个列都有一个时间戳,用来标识不同版本的数据。
HBase中的列族是一个逻辑分组,它决定了表的物理存储方式。同一个列族中的所有列都会被存储在一起,而不同列族中的列会被分开存储。因此,在创建表时,需要指定表中有哪些列族,而且一旦创建后,就不能再修改或删除列族。但是,在列族中添加或删除列是非常灵活和方便的,不需要预先定义或修改表结构。
在HBase中,有两种方式可以在列族中添加列。一种是通过HBase Shell命令行工具,另一种是通过HBase Java API编程接口。
通过HBase Shell命令行工具,在列族中添加列非常简单,只需要使用put命令,指定表名、行键、列名(包括列族名和限定符名)和值即可。例如,如果要在test表中的info列族下添加一个name列,并给row1这一行赋值为Tom,可以执行以下命令:
如果要查看test表中的数据,可以使用scan命令:
输出结果如下:
通过HBase Java API编程接口,在列族中添加列也很容易,只需要创建一个Put对象,指定行键和值,并调用Table对象的put方法即可。例如,如果要在test表中的info列族下添加一个age列,并给row1这一行赋值为18,可以编写以下代码: