HBase的数据模型
RowKey
- 是数据的唯一标识
- 默认由64k的数据组成,但是实际使用中按照用户的需求自由定义
- 分配空间的时候使用多少分配多少,但是rowkey设计的时候够用就行
- 当我们插入数据的时候,HBase会按照RowKey的字典序给我们排序
- HBase中的数据默认按照rowkey有序
- 注意字典的排序规则
TimeStamp
-
数据的版本控制器
-
它是基于HDFS储存的一种策略
- 版本就是环节了HDFS与数据修改的冲突
- 其实修改的数据/删除的数据并不会马上修改HDFS的数据
-
我们定义列族的时候可以指定最多保留的版本
- 将来我们修改同一个数据的时候,根据版本数来确定数据是否显示
- 默认的版本号就是当前系统的毫秒数
-
我们查询数据的时候,如果不指定版本数,默认显示版本号最新的数据
-
取数据的时候,不同的版本信息对应的数据可能不同
列族(Column Family)
- 将功能属性相近的放在一个列族
- 同一个列族中的列会存放在同一个Store中
- 列族一般需要在创建表的时候进行声明,而且一般一个表中的列族不超过3个
- 表中所有的列都是基于列族
列(QUalifier)
- 列必须基于列族
- 使用的时候必须 列族:列
- 列可以根据需求动态添加或者删除
Cell
- 最终定位到的资源
- 由(RowKey+TimeStamp+CF+Qualifier)联合精准查找到一个数据
- 因为HDFS上的数据都是字节数组,所以HBase没有数据类型(字节码)