【发布时间】:2020-07-06 22:29:11
【问题描述】:
我有一个带有 rowkey 的 hbase 表,例如 row1, row2, row3 .... 和 rowN ,我想要的是从 row100 到 row200 获取带有 rowkey 的行,如何编写查询子句或将 hbase 表设计为使查询更快?
【问题讨论】:
标签: hbase
我有一个带有 rowkey 的 hbase 表,例如 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()) {
....
}
表格设计应该是一个单独的问题,您应该添加更多关于您的数据、访问模式和其他需求的信息。
【讨论】:
从 HBase 2 开始,使用:
Scan scan = new Scan().withStartRow(Bytes.ToBytes("row100")).withStopRow(Bytes.toBytes("row201"));
【讨论】: