逻辑结构
Row key:行键,唯一键。按字典序有序排列
ColumnFamily:列族。不同列族放在hdfs的不同文件夹中,列族中的列可以动态增加。
column:列
Region:分区。按数据量和row_key进行切分。
Store:HBase实际存储的最小单位。除了store,其他数据属于元数据。
物理存储结构
Column Qualifier:列名
Column Family:列族
TimeStamp:写入 HBase 的时间。不同版本(version)的数据根据timestamp进行区分。
Type:Put 插入的数据;对于删除操作,其类型为Delete。
数据模型
- Name Space
命名空间,类似于关系型数据库的database的概念,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是hbase和default,hbase存放hbase内置表,default是用户默认使用的命名空间。 - Table
类似于关系型数据库的表的概念。不同的是,HBase定义表时只需要声明列族,不需要声明具体的列。这意味着,往HBase写入数据时,字段可以动态、按需指定。因此,HBase可以轻松应对字段变更的场景。 - Row
行。每一行数据由一个RowKey和多个Column组成,数据是按RowKey字典顺序存储的,并且查数据时只能根据RowKey进行检索。 - Column
HBase中的每个列都由Column Family(列族)和Column Qualifier(列限定符)进行限定,例如info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。 - Time Stamp
用于标识不同版本的数据。每一条数据写入时,系统会自动为其加上该字段,其值为写入HBase的时间。 - Cell
由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell中的数据全部是字节码形式存贮。