如何进行hbase范围扫描?

时间:2016-09-29 10:52:11

标签: hbase

我有一个带有rowkey的hbase表,如row1,row2,row3 ....和rowN,我想要的是从row100到row200获取rowkey的行,如何编写查询子句或将hbase表设计为使查询更快?

2 个答案:

答案 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"));