HBase按值排序

时间:2012-07-10 07:12:37

标签: hadoop cassandra hbase cloudera hadoop-plugins

我使用的是SingleColumnValueFilter,scan,getScanner,并从hbase表中检索值。产生的值在行Id-vise中排序。但是我希望结果能够在价值观中被分类。

实施例:

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

现在,当我在Web UI(我自定义)中选择金额时。 然后,结果应按金额分类。

Expected Result after chosen amount column:

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

1 个答案:

答案 0 :(得分:3)

如果你想明智地对事物进行排序 - 遗憾的是,HBase不会发生这种情况。 HBase按行键对数据进行排序,按字典顺序排序。

您需要做的是创建一个二级索引,其中rowKey包含该值。在您的情况下,值是数字,因此您必须对数字进行填零以使字典排序正常工作。

以下是您构建二级索引的方法:

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

获取二级索引时,它将返回原始数据的行ID。使用该行ID从原始记录中获取其余数据。