如何获取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中执行此操作?
如何获取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中执行此操作?
随着你选择的行键你可以简单地返回你的表的“最后一行”,并打印出行键(因为我认为你只是增加“TT-”后面的数字)。你也可以使用KeyOnlyFilter这将发出的价值,你可以使用你自己的方法来检查哪个行键是最大的。
你应该检查出rowkey design,尤其是提供的链接的第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()));
API文档声明,此方法(getRowOrBefore)已被弃用而不更换。 (https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTableInterface.html#getRowOrBefore%28byte[],%20byte[]%29))。 – ctron