将伪行插入到HBase表中,以便将其用作带前缀过滤器的startrow,以优化读取

将伪行插入到HBase表中,以便将其用作带前缀过滤器的startrow,以优化读取,hbase,Hbase,在HBase中,行键按排序顺序存储。使用PrefixFilter的扫描将对索引执行完整的表扫描,直到找到匹配项为止。匹配结束后,扫描将终止。防止全表扫描的常见解决方案是结合PrefixFilter提供startrow但是,如果您事先不知道startrow,这将不起作用。 假设您有一个如下所示的模板: <foo>|<bar>|<baz>| 这里,行a |和b |是“假行”,它们的存在只是为了优化查询: scan 'tab', {STARTROW => '

在HBase中,行键按排序顺序存储。使用
PrefixFilter
的扫描将对索引执行完整的表扫描,直到找到匹配项为止。匹配结束后,扫描将终止。防止全表扫描的常见解决方案是结合PrefixFilter提供
startrow
但是,如果您事先不知道
startrow
,这将不起作用。

假设您有一个如下所示的模板:

<foo>|<bar>|<baz>|
这里,行
a |
b |
是“假行”,它们的存在只是为了优化查询:

scan 'tab', {STARTROW => 'b|', FILTER => "PrefixFilter('b')"}

此策略是否能按预期工作?

不需要实际将其添加到表中,但在需要扫描时只需将其分配给筛选器。不需要实际将其添加到表中,但在需要扫描时只需将其分配给筛选器。。
scan 'tab', {STARTROW => 'b|', FILTER => "PrefixFilter('b')"}