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