一,Hbase表设计概述
HBase的表设计将会直接影响Hbase表使用的效率和便利性,并且HBase的表的结构一旦确定下来之后,很难更改,所以HBase的表是需要设计的。HBase中的表设计,主要设计的是行键和列族
二,Hbase表中的列族设计
在设计Hbase表时,列族不宜过多,越少越好,官方推荐不要越过3个
经常要一起查询的数据不要放在不同的列族中,尽量减少跨列族的数据访问
如果真的要设计多个列族,要提前考虑列族数据不均匀的问题
三,Hbase表设计的行键的设计
Hbase表中行键是唯一标识一个表中行的字段,所以行键设计的好不好将会直接影响未来对Hbase的查询的性能和查询的便利性
行键设计的基本原则:
1,行键必须唯一标识数据
必须唯一才能唯一标识数据
2,行键必须有意义
这样才能方便数据的查询
3,行键最好是字符串类型
因为数量类型在不同的系统中处理方式可能不同
4,行键最好具有固定的长度
不同长度的数据可能 会造成自然排序时排序的结果和预期不一致
5,行键不宜过长
行键最多可以达到64KB,但是最好在10~100个字节之间,最好不要超过16字节,越短越好,最好是8的整数倍
行键设计的最佳实践:
1,散列的原则
行键的设计将会影响数据在hbase表中的排序方式,这会影响region切分后的结果,要注意,在设计行键时应该让经常要查询的数据分散在不同的region中,防止某一个或某几个regionserver成为热点。
2,有序的原则
行键的设计将会影响数据在hbase表中的排序方式,所以一种策略是将经常连续查询的条件作为行键最前面的数据,这样一来可以方便批量查询