2016-09-29 94 views
0

我有一個hbase表,rowkey,像row1,row2,row3 ....和rowN,我想要的是從row100到row200的rowkey,如何編寫查詢子句或設計hbase表查詢更快?如何做hbase範圍掃描?

回答

1

這將適用於ASCII行鍵。請注意,ENDROW是獨佔的。

下應該是一個良好的開端:

scan 'mytable', {STARTROW => 'row100', ENDROW => 'row201'} 

在Java(見apidocs):

Scan scan = new Scan(Bytes.ToBytes("row100"),Bytes.toBytes("row201"); 
scan.setFilter(colFilter); 
scan.setOtherStuff... 

ResultScanner scanner = table.getScanner(scan); 
for (Result result = scanner.next(); result != null; result = scanner.next()) { 
    .... 
} 

表的設計也許應該是一個獨立的問題,你應該增加有關道路的詳細信息您的數據,訪問模式和其他需求。

+0

如果行鍵中沒有數字,比如行鍵的格式是AAA,BBB,BBC,DDD ....那麼我們不知道位置100和200中的rowkey如此如何獲得它們之間的行? – Jason

+0

對於STARTROW,這不是問題。對於ENDROW,您可以使用您需要的最後一個字符後的第一個下一個字符。看看:http://www.ascii-code.com/這也可以通過編程來完成。 – Gevorg