如何獲取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