像HBase中的SQL LIMIT一样的命令

Moh*_*mad 47 hbase nosql

HBase有没有像SQL LIMIT查询一样的命令?

我可以通过setStartsetEnd,但我不想迭代所有行.

小智 86

从HBase shell中,您可以使用LIMIT:

hbase> scan 'test-table', {'LIMIT' => 5}
Run Code Online (Sandbox Code Playgroud)

从您可以使用的Java API Scan.setMaxResultSize(N)scan.setMaxResultsPerColumnFamily(N).

  • 为了使它能够工作,<table-name>和{'LIMIT'...}之间需要有一个逗号分隔符,所以扫描'test-table'**,**{'LIMIT'=> 5 } (3认同)
  • setMaxResultSize不适用于所有版本的Scan,对于旧版本,您需要使用PageFilter per @mirsik示例 (3认同)

小智 13

有一个名为PageFilter的过滤器.它意味着这个目的.

Scan scan = new Scan(Bytes.toBytes("smith-"));
scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("givenName"));
scan.addColumn(Bytes.toBytes("contactinfo"), Bytes.toBytes("email"));
scan.setFilter(new PageFilter(25));
ResultScanner scanner = table.getScanner(scan);
for (Result result : scanner) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

http://java.dzone.com/articles/handling-big-data-hbase-part-4


Ani*_*Jha 6

如果使用HBase Shell,则可以使用以下命令来限制查询结果:"LIMIT"必须用单引号括起来.

scan 'table-name', {'LIMIT' => 10}
Run Code Online (Sandbox Code Playgroud)