表
hbase 的表结构图
概念
NameSpace
命名空间,类似于关系型数据库的 DatabBase 概念,每个命名空间下有多个表。
HBase有两个自带的命名空间,分别是 hbase 和 default:
- hbase:HBase 内置的表
- default:用户建表时,如果未指定 namespace,那么就创建在
default下
在 zookeeper 中,如下图:
Column
HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定
例如 info:name,info:age
建表时,只需指明 列族,而 列限定符 无需预先定义。
RowKey
相当于 mysql 中的主键。在 hbase 中,每行记录必须有 rowkey
RowKey 的设计十分重要,可以方便快速查询检索
Row
HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey
的 字典顺序 存储的
TimeStamp
与 mysql 不同,hbase 不会 真正的修改数据
而是又 添加 一个数据,用 timestamp 标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入 HBase 的时间。
如果删除该数据,查询时,会显示 上一版本的数据
Cell
由 {rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数据是没有类型的,全部是 字节 存储



