我有HBase行如下
ABC_A1_20160101
ABC_A2_20160102
ABC_A3_20160103
XYZ_A9_20160201
从我的Java代码我知道第一部分ABC
和最后一部分20160101
。我无法获得中间部分A1, A2, A3....
。
在这种情况下,如何在Java中查询?
从ABC_A1_20160101
到ABC_A3_20160103
答案 0 :(得分:3)
模糊行方法对于这种需求是有效的,并且当数据很大时: 正如此article所解释的那样 FuzzyRowFilter将行键和掩码信息作为参数。在上面的示例中,如果我们想要找到最后登录的用户并且行键格式是userId_actionId_timestamp(其中userId具有固定长度,例如4个字符),我们要查找的模糊行键是“???? 登录”。这转换为FuzzyRowKey的以下参数:
FuzzyRowFilter rowFilter = new FuzzyRowFilter(
Arrays.asList(
new Pair<byte[], byte[]>(
Bytes.toBytesBinary("\x00\x00\x00\x00_login_"),
new byte[] {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0})));