2014-09-12 54 views
2

我有一個大桌子,我想要第n排。 我見過把一個整數指數在rowkey的開始是因爲HBase的數據管理系統的一個壞主意...如何用java獲取HBase中的第n行?

所以不是:

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

我想要做的例如:

Get getRowByIndex=Get(int IndexOfWantedRow); 

是否有任何現有的方法? 謝謝!

+0

你的用例是什麼? – phs 2014-09-17 23:16:03

回答

0

根據您的問題,以下是不同的可能解決方案

1整數是rowKey

看你的訪問模式,您要訪問的基礎上,ROWNUMBER數據。在這種情況下,爲什麼不把rowNumber作爲rowKey?您可以直接使用Get api獲取第n行。

2.前綴整型rowkey

您可以前綴與ROWNUMBER的rowKey然後通過掃描API訪問數據以獲得數據。 如:rowKey生成 - N_customRowKey 掃描命令 - 掃描(「N_」)

爲了處理熱點問題,由於序列號,您可以使用哈希(N),而不是N的兩個選項。 但是在這種情況下,對於實際的rowKey使用掃描API會非常困難。