hbase限定符过滤器会跳过其他列族

时间:2013-03-03 14:27:46

标签: hbase

我在扫描时应用限定符过滤器以获取所有读取项目。

QualifierFilter readItems = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("read-1")));
readItems.isFamilyEssential(Bytes.toBytes("meta"));

结果包含读取项目,但不包含其他列族。

结果只包含元列族和read-1限定符。

如何获取所有CF并且只读取项目?

由于

1 个答案:

答案 0 :(得分:1)

目前,执行的操作是过滤{KeyValue} _in到{KeyValue} _out,只保留其限定符与约束匹配的KeyValue - 这不是您想要做的。如果限定符“read-1”不存在,您希望过滤掉整行。您可以使用以下逻辑执行此操作(这是在Groovy中,但是,应该有意义)

def scan = new Scan()
scan.addFamily('COLUMN_FAMILY'.bytes)

def filter = new SingleColumnValueFilter('COLUMN_FAMILY'.bytes, 'read-1'.bytes, CompareFilter.CompareOp.NOT_EQUAL, new NullComparator())
filter.filterIfMissing = true
scan.filter = filter

这是一个很好的开始玩参数。我不确定你的'read-1'列中有什么内容,但是,如果它是非null,那么这应该做你想要的(或者让你更接近?)。

祝你好运!