hbase版本:1.2.2(服务器和java api)
public SingleColumnValueFilter(byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator)
我正在使用 org.apache.hadoop.hbase.filter.RegexStringComparator
对rowkey执行like查询。
它可以很好地与列。
但是如果我使用rowkey而不是column,它会给我所有的记录。
1条答案
按热度按时间1sbrub3j1#
columnvalue筛选器和rowfilters不同。
值过滤器对列值进行操作(可能是全表扫描),其中as行过滤器对rowkey进行操作。
SingleColumnValue筛选器:
此筛选器采用列族、限定符、比较运算符和比较器。如果找不到指定的列–将发出该行的所有列。如果找到该列并且与比较器的比较返回true,则将发出该行的所有列。如果条件失败,则不会发出该行。
此筛选器还接受另外两个可选的布尔参数—filterifcolumnmissing和setlatestversiononly
如果
filterIfColumnMissing
标志设置为true
如果行中找不到要检查的指定列,则不会发出该行的列。默认值为false
.如果
setLatestVersionOnly
标志设置为false,它也将测试以前的版本(时间戳)。默认值为true。这些标志是可选的,如果必须同时设置或两者都不设置。
语法
singlecolumnvaluefilter(“”,“”,“”)
例子:
如果要对rowkey执行“like”查询
您可以使用前缀过滤器/fuzzyrowfilter(更高级)
prefixfilter:这个过滤器使用一个参数作为行键的前缀。它只返回以指定行前缀开头的行中的键值