如何获得rowkey
HBase 表中的最大值?
我有一个有两行的表:
TT-0001 column=cf:col-1, timestamp=1341218075789, value=abc
TT-0002 column=cf:col-1, timestamp=1341218075789, value=abc
我想得到row2(rowkey的最大值)。
我如何在 Hbase 中执行此操作?
使用您选择的行键,您可以简单地返回您表的“最后”行并仅打印行键(因为我假设您只是增加“TT-”后面的数字)。您还可以使用将发出值的KeyOnlyFilter,并且您可以使用自己的方法来检查哪个行键是最大的。
您可能应该查看行键设计,尤其是所提供链接的第 6.3.3 节,因为我不推荐像您生成的行键。如命名部分所述,最新、最新的行将是第一个。
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()));