我正在尝试使用HBase Java客户端尽可能高效地回答以下问题:
对于给定的行和给定的列族,哪些限定符具有特定的前缀?
我可能会使用QualifierFilter
和BinaryPrefixComparator
。这会有用吗?我的直觉是,应该可以在不发送那些列的相应单元格内容的情况下执行此操作,对吧?像KeyOnlyFilter
这样的东西会在这里工作吗?
答案 0 :(得分:0)
这就是我的工作。 KeyOnlyFilter
效果非常好,ColumnPrefixFilter
也是如此,据我所知,这相当于QualifierFilter
和BinaryPrefixComparator
。
Scan scan = new Scan(MY_ROW, getSuccessor(MY_ROW))
.addFamily(MY_COLFAM)
.setMaxVersions(1)
.setFilter(
new FilterList(
Operator.MUST_PASS_ALL, Arrays.<Filter>asList(
new KeyOnlyFilter(),
new ColumnPrefixFilter(MY_PREFIX)
)));
其中getSuccessor()
是一个只在末尾添加空字节的函数。