0
我有一个hbase表,rowkey,像row1,row2,row3 ....和rowN,我想要的是从row100到row200的rowkey,如何编写查询子句或设计hbase表查询更快?如何做hbase范围扫描?
我有一个hbase表,rowkey,像row1,row2,row3 ....和rowN,我想要的是从row100到row200的rowkey,如何编写查询子句或设计hbase表查询更快?如何做hbase范围扫描?
这将适用于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()) {
....
}
表的设计也许应该是一个独立的问题,你应该增加有关道路的详细信息您的数据,访问模式和其他需求。
如果行键中没有数字,比如行键的格式是AAA,BBB,BBC,DDD ....那么我们不知道位置100和200中的rowkey如此如何获得它们之间的行? – Jason
对于STARTROW,这不是问题。对于ENDROW,您可以使用您需要的最后一个字符后的第一个下一个字符。看看:http://www.ascii-code.com/这也可以通过编程来完成。 – Gevorg