3

SingleColumnValueFilter、scan、getScanner を使用して、hbase テーブルから値を取得しています。結果として得られる値は、行 Id-vise でソートされます。しかし、結果を値万力でソートしたいのです。

例:

Hbase Table:
RowId | col1:amount | col1:balance
  1         5000         1000
  2         3000         1500
  3         4000          500

ここで、Web UI (カスタマイズしたもの) で金額を選択すると。次に、Result を amount-vise でソートする必要があります。

Expected Result after chosen amount column:

RowId | **col1:amount** | col1:balance
  2         3000         1500
  3         4000          500
  1         5000         1000
4

1 に答える 1

3

値を賢く並べ替えたい場合は、残念ながら HBase ではそれができません。HBase はデータを行キーで並べ替え、辞書順で並べ替えます。

必要なことは、rowKey に値が組み込まれるセカンダリ インデックスを作成することです。あなたの場合、値は数値であるため、辞書式の並べ替えを適切に機能させるには、数値をゼロで埋める必要があります。

セカンダリ インデックスを構成する方法は次のとおりです。

Hbase Table:
RowId | col1:amount | col1:balance
  val000500         rowID         3
  val001000         rowID         1
  val001500         rodID         2

セカンダリ インデックスを取得すると、元のデータの行 ID が返されます。その行 ID を使用して、元のレコードから残りのデータを取得します。

于 2012-07-10T15:43:13.897 に答える