在使用开始行和停止行之后,是否有JavaAPI限制扫描记录的数量?pagefilter是一个选项吗?
exdqitrt1#
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/scan.html#setcaching(内景)也许能帮你。setcaching()用于定义hbase在一个rpc调用中应返回多少个结果。
68bkxrlz2#
如果您只想获得一行,则此答案适用如果您使用的是旧版本的hbase,其中setlimit不可用,则可以使用stoprow代替startrow的值,并将尾部字节设置为0,以使其包含在文档中:注意:为了使stoprow包含,添加一个尾随的0字节举个例子:
byte[] startRow = new byte[] { (byte)0xab, (byte)0xac}; byte[] stopRow = new byte[startRow.length + 1]; Array.copy(startRow, 0, stopRow, 0, startRow.length); stopRow[stopRow.length - 1] = 0; // inclusive Scan scan = new Scan().setStartRow(startRow).setStopRow(stopRow);
niknxzdl3#
是否尝试使用setmaxresultsize()?pagefilter可能不会给出预期的结果,文档说:此筛选器不能保证返回给客户端的结果数<=页面大小。这是因为过滤器分别应用于不同的区域服务器。但是,它确实优化了单个hregion的扫描,确保页面大小在本地永远不会超过。
oo7oh9g94#
使用scan.setlimit(int)方法https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/scan.html#setlimit-内景-设置此扫描的行数限制。如果返回的行数达到此值,我们将终止扫描。在停止行、筛选器等所有其他条件之后,将最终测试此条件。
4条答案
按热度按时间exdqitrt1#
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/scan.html#setcaching(内景)也许能帮你。setcaching()用于定义hbase在一个rpc调用中应返回多少个结果。
68bkxrlz2#
如果您只想获得一行,则此答案适用
如果您使用的是旧版本的hbase,其中setlimit不可用,则可以使用stoprow代替startrow的值,并将尾部字节设置为0,以使其包含在文档中:
注意:为了使stoprow包含,添加一个尾随的0字节
举个例子:
niknxzdl3#
是否尝试使用setmaxresultsize()?
pagefilter可能不会给出预期的结果,文档说:
此筛选器不能保证返回给客户端的结果数<=页面大小。这是因为过滤器分别应用于不同的区域服务器。但是,它确实优化了单个hregion的扫描,确保页面大小在本地永远不会超过。
oo7oh9g94#
使用scan.setlimit(int)方法
https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/scan.html#setlimit-内景-
设置此扫描的行数限制。如果返回的行数达到此值,我们将终止扫描。在停止行、筛选器等所有其他条件之后,将最终测试此条件。