我知道模糊行滤波器首先将两个参数作为行键,其次是模糊逻辑。 我从相应的java类FuzzyRowFilter中理解的是, 过滤器评估当前行并尝试计算与模糊逻辑匹配的下一个更高行键,并跳转非匹配键。
我无法理解以下内容
扫描如何跳过某些行键?它是否使用Get获取并比较当前行键。 扫描如何知道下一个匹配的行键存在的位置?没有进行全面扫描(如果它跳转)
答案 0 :(得分:12)
你理解正确。
对于那些来自网络搜索的人来说,这里有两个链接,解释了如何一般地利用行跳过以及如何在FuzzyRowFilter中完成它的工作
如果过滤器知道它在最后一个键并且需要跳过:
SEEK_NEXT_USING_HINT
Cell
scan
中第一个键完全相同的常规操作 - 检查可用的HFile,检查相关密钥是否存在
答案 1 :(得分:0)
要了解hbase密钥的第一件事是按照按字典顺序排序顺序,这些数据由hbase主机存储在元文件中。因此,当应用模糊行过滤器时,它可以直接跳过与行键不匹配的所有值。
现在所要做的就是选择行键,然后扫描键的不确定部分。
例如。如果您的行键范围是123456689 - 123456889
那么你的模糊行过滤器将是123456???
- 这里发生的是模糊行过滤器跳到以123456
开头的行,模糊行过滤器的范围如下{{1} }