如何配置 HBase 以使扫描程序一次只检索多条记录?或者当数据库包含大量记录时如何改进扫描仪/
3 回答
我相信扫描器实际上一次只请求一个项目,除非您设置缓存。您可以使用 getCaching() 检查以确保
每次调用 ResultScanner#next() 时,它都会检索下一项。您还可以使用 ResultScanner#next(int) 一次检索多个结果。
设置扫描仪时,您可以使用 Scan#setCaching 提前检索结果 http://hadoop.apache.org/hbase/docs/r0.20.4/api/org/apache/hadoop/hbase/client/Scan.html#设置缓存(整数)
您的扫描仪很可能很慢,因为您一次只读取一条记录(包括所有来回的 RPC 协议等等)。所以如果你打算大量阅读,让系统提前为你缓存一些结果。
您可能还想检查过滤器 API,它允许您有选择地向客户端返回行或单元格的子集:http: //hadoop.apache.org/hbase/docs/current/api/org/apache/hadoop/ hbase/filter/package-summary.html。
您可以使用scan.setMaxResultSize
来控制HBase
每次检索的记录。(这并不意味着您从此查询中获得的结果更少)
如果你想像 SQL 一样限制结果,select top 100 from TABLE;
你需要使用PageFilter
^_^