2016-09-29 120 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