在我的例子中,我们为初始查询集定义了行键,我们正在查询行键并单独保留列族和列。
例如。行键类似于:
%userid%_%timestamp%
我们正在做一些查询,比如
select columnFamily{A,B,C} from userid=blabla and blabla < timestamp < blabla
性能相当不错,因为这就是 hbase 的用途 - 行键查找。
但是由于新要求的建立,我们将需要查询更多字段:列。喜欢:
select * from userid=blabla and blabla < timestamp < blabla and A=blabla and B=blabla and c=blabla
我们开始使用 hbase 过滤器。我们在其中一列上尝试了 EqualFilter - A,从功能的角度来看,它工作正常。
考虑到我们拥有的行键,我在这里有一个普遍的担忧,
- 我们可以继续对所有列 A、B、C 添加过滤器以满足不同的查询需求吗?hbase 查询中添加的过滤器数量是否会降低读取性能?
- 如果有的话,影响有多大?
- 有人可以从性能角度向我解释我们应该如何使用最好的 hbase 过滤器吗?