2016-10-28 16 views
0

私はHbaseスキーマを設計していますが、行のキーは整数でなければなりません。私は、startrowとendrowと整数値のjavaからスキャンAPIを使用するつもりです。Hbaseは行のキーと辞書的な順序として整数を使用します

私は'0'パディングの文字列で私の整数を変換することができますが、辞書順を尊重することができますが、私のキーは整数のバイナリ表現を使う場合よりもはるかに大きくなります。

に整数を変換すると(intとする)、startrowとendrowに同じ変換を使用すると、スキャンで期待値が返されますか?

回答:

ニルスはanwserを与え、私はここで確認した:

Java Comparator for byte array (lexicographic)

のHBaseはbyte[]からint抽出し、それらを比較します。

答えて

1

これは、hbase-clientライブラリのorg.apache.hadoop.hbase.util.Bytesを使用して行うことができます。 intへのバイト配列から

Bytes.toInt(byteArray) 

バイト配列にint型から:

Bytes.toBytes(intvalue) 

私は実際に私は行優先を照会する必要が進値を生成するためのオンラインツールを作りましたhbaseシェルのIDはright hereです。

+0

ありがとうございました。 i1とi2にこの変換を使用すると、byte [] b1とb2を取得します。もしi1 mvera

+0

そうですね。 (b1 == b2のサイズですが、内容はあなたが望む順番で辞書編集可能です)しかし、hbaseは新しい挿入/削除に関してあなたのための辞書順を維持しますので、スキャンする際に心配する必要はありません。 – nilsmagnus

関連する問題