列过滤器(例如列名称= X)与HBase中行过滤器的性能?

时间:2019-02-18 05:57:14

标签: hbase

例如,我在hbase中有这样的数据;

ROW             COLUMN
id-time         cf:s1, cf:s2, cf:s3, cf:s4, cf:s5
id-time1        cf:s1, cf:s2, cf:s3, cf:s4, cf:s5
id-time2        cf:s1, cf:s2, cf:s3, cf:s4, cf:s5
id-time3        cf:s1, cf:s2, cf:s3, cf:s4, cf:s5

我想基于rowKey(时间范围扫描。例如time-time3)获取 cf:s3 值。

另外,另一种选择,

ROW             COLUMN
id-time-s1      cf:val
id-time1-s2     cf:val
id-time1-s3     cf:val
id-time2-s3     cf:val
id-time2-s4     cf:val
id-time3-s4     cf:val
id-time3-s5     cf:val

如上所述,我想基于rowKey(时间范围查询)获取 s3 值。

哪个在阅读性能上更好?

1 个答案:

答案 0 :(得分:1)

在第一种情况下,您必须使用列过滤器进行全面扫描(您需要从每一行读取s3),而在第二种情况下,您可以进行部分扫描< / strong>(您可以定义开始行键-结束行键间隔)和列族过滤器。局部扫描总是比完整扫描更有效,尤其是随着表的增长。