《007_HBase的数据模型是什么样的?(下)》
rowkey order:base order:detail order:extent
order_1_110 xxx xxx
order_1_111 x1(t1); x2(t2) xxx xxx
每一行数据都有一些列族,就是column family,每个列族都包含一些列,每个列族都有一系列的存储属性,比如说是否把列族里的列值缓存在内存里,列族里的数据如何进行压缩,类似这种
一个表里有固定的一些列族,每一行都有这些列族,当然有可能你一行数据在某个列族里没存什么东西,是有可能的
然后就是列,每个列就是一个列族+分号+列限定符(column qualifier),比如说列族是order,列可能就是order:base,或者是order:detail
每个表的列族是固定的,但是每一行数据有哪些列是不固定的,插入数据的时候可以动态可以给这行数据设定多个列,每个列都是属于一个列族,就是一个列族+分号+列限定符的形式,就可以确定一个列
时间戳,timestamp,每一行的每个列的值写入的时候就会有一个时间戳,时间戳就代表了这一行这个列的某个版本的值,当然这个timestamp你也可以自己插入的时候指定一个timestamp也是ok的
单元格,也就是cell,其实就是一行的某个列族下的某个列(由列限定符来确定)的某个timestamp版本对应的值,说白了就这么个东西,在hbase里,每一行的每个列的值,是有多个版本的,每个版本都是一个cell