2012-07-02 76 views
2

如何获取HBase表中的最大rowkey如何获取HBase中的最大rowkey?

我有两个行的表:

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

我想2行(rowkey的MAXVALUE)。

如何在Hbase中执行此操作?

回答

1

随着你选择的行键你可以简单地返回你的表的“最后一行”,并打印出行键(因为我认为你只是增加“TT-”后面的数字)。你也可以使用KeyOnlyFilter这将发出的价值,你可以使用你自己的方法来检查哪个行键是最大的。

你应该检查出rowkey design,尤其是提供的链接的第6.3.3节, ,因为我不会推荐像生成这样的行密钥。正如命名部分所述,最新的,最新的行将成为第一个。

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())); 
+0

API文档声明,此方法(getRowOrBefore)已被弃用而不更换。 (https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTableInterface.html#getRowOrBefore%28byte[],%20byte[]%29))。 – ctron