2012-07-02 112 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