1.4 HBase结构
1.4.2 HBase 的表、列和单元格
- 基本单位是column
- 多column组成row
- 一个row有唯一rowkey
- 每个column有多个版本,多个版本存储在单元格(cell)中
- 行序是按照字典顺序进行排序的,意思是从左到右一次对比每一个键
关于排序:
排列顺序如果跟预期的不一样,需要补键,比如 row-1 永远小于 row-2,无论后面是什么,将始终按照这个顺序排列
思考
这有可能影响到balance策略,假设你根据时间戳来做rowkey,那么会出现最后一个节点,数据不断增加而前面的节点数据不变,这个过程会持续到达到rebalance的阀值,然后触发rebalance过程,在rebalance 的时候系统性能急剧下降。当此次rebalance 完成后,只是保证了暂时的数据平衡,很快最后一个节点又会出现达到rebalance阀值的情况,就会带来一个有规律的间歇性的系统性能下降,十分危险。
列族的作用
若干列组成列族(column family),作用是:
- 构建数据的语义边界或者局部边界
- 有助于设置压缩或者指示他们存储在内存中
- 一个列族的所有列存储在同一个底层存储文件里面,这个文件叫做HFile
列族使用注意点
- 列族不能修改的太频繁,数量也不能太多