我有一个带有rowkey的hbase表,如row1,row2,row3 ....和rowN,我想要的是从row100到row200获取rowkey的行,如何编写查询子句或将hbase表设计为使查询更快?
答案 0 :(得分:3)
这适用于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()) {
....
}
表设计应该是一个单独的问题,您应该添加有关数据,访问模式和其他需求的更多信息。
答案 1 :(得分:0)
自HBase 2起,使用:
Scan scan = new Scan().withStartRow(Bytes.ToBytes("row100")).withStopRow(Bytes.toBytes("row201"));