如何用java获取HBase中的第n行?

时间:2014-09-12 10:48:35

标签: indexing row hbase

我有一张大桌子,我想得到第n排。 我已经看到在rowkey的开头放一个整数索引是一个坏主意,因为hbase数据管理系统......

所以而不是:

org.apache.hadoop.hbase.client.Get getRow=new org.apache.hadoop.hbase.client.Get(rowKey);

我想做点什么:

Get getRowByIndex=Get(int IndexOfWantedRow);

有现成的方法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

根据您的问题,以下是不同的可能解决方案

<强> 1。整数是rowKey

查看您的访问模式,您希望基于rowNumber访问数据。在这种情况下,为什么不将rowNumber作为rowKey?您可以直接使用Get api获取第n行。

<强> 2。前缀整数到rowkey

您可以使用rowNumber为rowKey添加前缀,然后通过Scan api访问数据以获取数据。 例如:rowKey Generated - N_customRowKey 扫描命令 - 扫描(&#34; N _&#34;)

要处理由于序列号引起的热点问题,您可以在两个选项中使用散列(N)而不是N. 但在这种情况下,将scan api用于实际的rowKey将非常困难。