我知道模糊行过滤器需要两个参数,第一个是行键,第二个是模糊逻辑。我从相应的 java 类 FuzzyRowFilter 中了解到,过滤器评估当前行并尝试计算将匹配模糊逻辑的下一个较高行键,并跳过不匹配的键。
我无法理解以下内容
扫描如何跳转某些行键?它是否使用 Get 来获取和比较当前行键。scan 如何知道下一个匹配的行键在哪里?不进行全面扫描(如果它跳跃)
你正确地理解了一切。
对于那些从网络搜索来到这里的人来说,这里有两个链接,它们解释了如何在一般情况下利用行跳过以及它是如何在 FuzzyRowFilter 中完成的
如果过滤器知道它在最后一个键并且需要跳过:
SEEK_NEXT_USING_HINT
Cell
scan
- 它检查可用的 HFiles 检查是否存在相关键
首先要了解的是 hbase 键是按字典顺序保存的,这些数据由 hbase 主控存储在元文件中。因此,当应用模糊行过滤器时,它可以直接跳过所有与行键不匹配的值。
现在它所要做的就是选择行键,然后扫描键的不确定部分。
例如。如果您的行键范围是123456689 - 123456889
那么您的模糊行过滤器将是123456???
-这里发生的是模糊行过滤器跳到以开头的行,123456
模糊行过滤器的范围如下123456000 - 123456999