12.4 HBase数据模型

12.4.1 数据模型

HBase是一个类似Bigtable的分布式数据库,它是一个稀疏的长期存储的(存在硬盘上)、多维度的、排序的映射表。这张表的索引是行关键字、列关键字和时间戳。HBase中的数据都是字符串,没有类型。

用户在表格中存储数据,每一行都有一个可排序的主键和任意多的列。由于是稀疏存储,同一张表里面的每一行数据都可以有截然不同的列。

列名字的格式是"<family>:<qualifier>",都是由字符串组成的。每一张表有一个列族集合,这个集合是固定不变的,只能通过改变表结构来改变。但是qualifier值相对于每一行来说都是可以改变的。

HBase把同一个列族里面的数据存储在同一个目录下,并且HBase的写操作是锁行的,每一行都是一个原子元素,都可以加锁。

HBase所有数据库的更新都有一个时间戳标记,每个更新都是一个新的版本,HBase会保留一定数量的版本,这个值是可以设定的。客户端可以选择获取距离某个时间点最近的版本单元的值,或者一次获取所有版本单元的值。