我可以在 HBase 的 rowkey 上使用 SingleColumnValueFilter 吗?
Can I use SingleColumnValueFilter on rowkey in HBase?
HBase 版本:1.2.2 (服务器和 Java API)
public SingleColumnValueFilter(byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator)
我正在使用 org.apache.hadoop.hbase.filter.RegexStringComparator
对行键执行 LIKE 查询。
它与列一起工作正常。
但是如果我使用行键而不是列,它会为我提供所有记录。
ColumnValue Filters and RowFilters are different.
Value Fileters operates on Column values(possibility of full table scan) where as RowFilters work on rowkey.
单列值过滤器:
此过滤器采用列族、限定符、比较运算符和比较器。如果未找到指定的列——将发出该行的所有列。如果找到该列并且与比较器 returns 的比较为真,则将发出该行的所有列。如果条件失败,则不会发出该行。
此过滤器还采用两个额外的可选布尔参数 – filterIfColumnMissing 和 setLatestVersionOnly
如果 filterIfColumnMissing
标志设置为 true
如果在行中找不到要检查的指定列,则不会发出该行的列。默认值为 false
.
如果 setLatestVersionOnly
标志设置为 false,它也会测试以前的版本(时间戳)。默认值为真。
这些标志是可选的,如果您必须不设置或两者都设置。
语法
SingleColumnValueFilter('','', , '', , )
SingleColumnValueFilter(‘<family>’, ‘<qualifier>, <compare operator>, ‘<comparator>’)
示例:
hbase(main):020:0> scan 'airline' ,{ FILTER => "SingleColumnValueFilter('flightbetween','source',=, 'binary:Delhi')" }
如果要对行键
执行"LIKE"查询
您可以使用前缀 filter/FuzzyRowFilter(更高级)
前缀过滤器:
此过滤器将一个参数作为行键的前缀。它 returns 仅显示以指定行前缀
开头的行中的那些键值
HBase 版本:1.2.2 (服务器和 Java API)
public SingleColumnValueFilter(byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator)
我正在使用 org.apache.hadoop.hbase.filter.RegexStringComparator
对行键执行 LIKE 查询。
它与列一起工作正常。
但是如果我使用行键而不是列,它会为我提供所有记录。
ColumnValue Filters and RowFilters are different.
Value Fileters operates on Column values(possibility of full table scan) where as RowFilters work on rowkey.
单列值过滤器:
此过滤器采用列族、限定符、比较运算符和比较器。如果未找到指定的列——将发出该行的所有列。如果找到该列并且与比较器 returns 的比较为真,则将发出该行的所有列。如果条件失败,则不会发出该行。
此过滤器还采用两个额外的可选布尔参数 – filterIfColumnMissing 和 setLatestVersionOnly
如果 filterIfColumnMissing
标志设置为 true
如果在行中找不到要检查的指定列,则不会发出该行的列。默认值为 false
.
如果 setLatestVersionOnly
标志设置为 false,它也会测试以前的版本(时间戳)。默认值为真。
这些标志是可选的,如果您必须不设置或两者都设置。
语法
SingleColumnValueFilter('','', , '', , )
SingleColumnValueFilter(‘<family>’, ‘<qualifier>, <compare operator>, ‘<comparator>’)
示例:
hbase(main):020:0> scan 'airline' ,{ FILTER => "SingleColumnValueFilter('flightbetween','source',=, 'binary:Delhi')" }
如果要对行键
执行"LIKE"查询您可以使用前缀 filter/FuzzyRowFilter(更高级)
前缀过滤器: 此过滤器将一个参数作为行键的前缀。它 returns 仅显示以指定行前缀
开头的行中的那些键值