2

如何获得rowkeyHBase 表中的最大值?

我有一个有两行的表:

TT-0001 column=cf:col-1, timestamp=1341218075789, value=abc
TT-0002 column=cf:col-1, timestamp=1341218075789, value=abc

我想得到row2(rowkey的最大值)。

我如何在 Hbase 中执行此操作?

4

2 回答 2

1

使用您选择的行键,您可以简单地返回您表的“最后”行并仅打印行键(因为我假设您只是增加“TT-”后面的数字)。您还可以使用将发出值的KeyOnlyFilter,并且您可以使用自己的方法来检查哪个行键是最大的。

您可能应该查看行键设计,尤其是所提供链接的第 6.3.3 节,因为我不推荐像您生成的行键。如命名部分所述,最新、最新的行将是第一个。

于 2012-07-02T09:25:31.863 回答
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()));
于 2013-11-25T13:39:39.737 回答