HBase-行键设计
1.用户可以指定行键检索一行数据,可有效减少查询时间。
2.设定列族可减少查询的存储文件。
3.存储文件(store file)中每个单元格都保存了时间戳,
所以用户如果查询近一两个小时修改过的单元格,
HBase会跳过例如只包含4小时前数据的存储文件。
4.列限定符(column qualifier)查询,查询时指定特定的咧或定义过滤器包含或排除某个列。
由于系统需检查每个传到过滤器的KeyValue,所以性能只有小幅提升。
5.值筛选,最广泛,用户只能使用过滤器在服务器端筛选值。
系统需检查每个单元格,也只能小幅提升性能。
6.HBase高表与宽表
高表指多行少列,宽表指少行多列;
高表性能更好;因为按照行键查询更快,并且HBase只能按行分片。
7.但问题:若数据一行很长,一个HFile存不下
解决:分开存成多行。
宽表:行键=userId
高表:行键=userId+messageId