rowkey
HBaseテーブルで最大値を取得するにはどうすればよいですか?
2行のテーブルがあります。
TT-0001 column=cf:col-1, timestamp=1341218075789, value=abc
TT-0002 column=cf:col-1, timestamp=1341218075789, value=abc
row2(rowkeyのmaxvalue)を取得したい。
Hbaseでこれを行うにはどうすればよいですか?
選択した行キーを使用すると、単にテーブルの「最後の」行を返し、行キーだけを出力できます (「TT-」の後ろの数字を増やすだけだと思います)。また、値を発行するKeyOnlyFilterを利用することもできます。また、独自の方法を使用して、どの行キーが最大かを確認することもできます。
私はあなたの生成のような行キーをお勧めしないので、おそらく行キーの設計、特に提供されたリンクのセクション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()));