如何获取HBase表中的最大rowkey
?
我有一个有两行的表:
TT-0001 column=cf:col-1, timestamp=1341218075789, value=abc
TT-0002 column=cf:col-1, timestamp=1341218075789, value=abc
我想获得row2(rowkey的maxvalue)。
我如何在Hbase中执行此操作?
答案 0 :(得分:1)
使用你选择的行键你可以简单地返回ur表的“last”行并打印出行键(因为我假设你只是增加“TT-”后面的数字)。您还可以使用将发出值的KeyOnlyFilter,并且您可以使用自己的方法来检查哪个行键最大。
你应该查看rowkey design,特别是提供链接的第6.3.3节, 因为我不推荐像你生成的行键。如命名部分所述,最新的,最新的行将是第一行。
答案 1 :(得分:1)
HTable类的getRowOrBefore()方法将帮助我们做到这一点。例如,
HTable table=new HTable(conf,"test");
Result result=table.getRowOrBefore(Bytes.toBytes("TT-9999"),Bytes.toBytes("colfam"));
System.out.println(Bytes.toString(result.getRow()));