在HBase中,数据存储在具有行和列的表中。虽然看起来和关系数据库(RDBMS)一样,但将HBase看成是多个维度的Map结构更容易理解。
术语
表(table)
HBase中数据都是以表形式来组织的,HBase中的表由多个行组成
行键(row key)
- HBASE中的行有一个rowkey(行键)和一个或多个列组成,列的值与rowkey、列相关联
- 行在存储是按行键的字典序排序
- 行键的设计非常重要,尽量让相关的行存储在一起
列(column)
HBase中的所有列族(column family)和列限定符(列名)(column qualifier)组成。
表示如下:
列族名:列限定符 例如:C1:USER_ID C1:SEX
列族(column family)
- 处于性能原因,列族将其与一组列组织在一起
- 每个列族都有一组存储属性:例如是否应该缓存在内存中,数据如何被压缩等
- 表中的每一行都有相同的列族,但在列族中不存储任何内容
- 所有的列族的数据全部都存储在一块(文件系统HDFS)
- HBase官方建议所有的列族保持一样的列,并且将同一类的列放在一个列族中
列族标识(column qualifier)
- 列族中包含一个个的列限定符,这样可以为存储的数据提供索引
- 列族在创建表的时候是固定的&