5) 单元格(cell)
每一个行键、列族、列标识共同确定一个单元格,单元格的内容没有特定的数据类型,以二进制字节来存储。每个单元格保存着同一份数据的多个版本,不同时间版本的数据按照时间先后顺序排序,最新的数据排在最前面。单元格可以用 <rowkey,column family: column qualifier,timestamp> 元组来进行访问。
6) 时间戳(timestamp)
在默认情况下,每一个单元格插入数据时都会用时间戳来进行版本标识。读取单元格数据时,如果时间戳没有被指定,则默认返回最新的数据;写入新的单元格数据时,如果没有设置时间戳,默认使用当前时间。每一个列族的单元数据的版本数量都被 hbase 单独维护,默认情况下 hbase 保留 3 个版本数据。
数据模型
表是 hbase 中数据的逻辑组织方式,从用户视角来看,hbase 表的逻辑模型如表 1 所示。hbase 中的一个表有若干行,每行有多个列族,每个列族中包含多个列,而列中的值有多个版本。
表 1 展示的是 hbase 中的学生信息表 student,有三行记录和两个列族,行键分别为 0001、0002 和 0003,两个列族分别为 stulnfo 和 grades,每个列族中含有若干列,如列族 stulnfo 包括 name、age、sex 和 class 四列,列族 grades 包括 bigdata、computer 和 math 三列。
在 hbase 中,列不是固定的表结构,在创建表时,不需要预先定义列名,可以在插入数据时临时创建。
从表 1 的逻辑模型来看,hbase 表与
发表评论