我有一张大桌子,我想得到第n排。 我已经看到在rowkey的开头放一个整数索引是一个坏主意,因为hbase数据管理系统......
所以而不是:
org.apache.hadoop.hbase.client.Get getRow=new org.apache.hadoop.hbase.client.Get(rowKey);
我想做点什么:
Get getRowByIndex=Get(int IndexOfWantedRow);
有现成的方法吗? 谢谢!
答案 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将非常困难。