如何进行 hbase 范围扫描?

How to do a hbase range scan?

我有一个 hbase table,其 rowkey 为 row1、row2、row3 .... 和 rowN,我想要的是获取 rowkey 从 row100 到 row200 的行,如何编写查询子句或者设计 hbase table 来加快查询速度?

这适用于 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()) {
    ....
}

Table 设计可能应该是一个单独的问题,您应该添加更多关于您的数据、访问模式和其他需求的信息。

从 HBase 2 开始,使用:

Scan scan = new Scan().withStartRow(Bytes.ToBytes("row100")).withStopRow(Bytes.toBytes("row201"));