hbase-扫描最后5条日期为行键的记录

af7jpaap  于 2021-06-09  发布在  Hbase
关注(0)|答案(3)|浏览(405)

我有一个hbase表,有一列(expense),其中date是行键。
如何获取过去5天的所有记录?假设今天的日期是2014年4月13日?使用哪个过滤器?
我有如下数据

rowkey           Expense
2014-04-13       128
2014-04-12       57
2014-04-11       10
2014-04-10       100 
2014-04-09       797
2014-04-08       67
2014-04-07       56
2014-04-06       14
zour9fqk

zour9fqk1#

mashuai的答案很好,但为了提供一个替代方案,您还可以进行反向扫描:

Scan scan = new Scan();
scan.setReversed(true);
scan.setMaxResultSize(5);
mfuanj7w

mfuanj7w2#

你不需要过滤器。假设今天是2014-04-13,您可以将起始行设置为2014-04-09,将停止行设置为2014-04-14。就像那样

Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes("2014-04-09"));
scan.setStopRow(Bytes.toBytes("2014-04-14"));
yk9xbfzb

yk9xbfzb3#

根据文档,setmaxresultsize可能不是您想要的:
公共扫描setmaxresultsize(长maxresultsize)
设置最大结果大小。默认值为-1;这意味着不会为此扫描设置特定的最大结果大小,而是使用全局配置值(默认为无限制)。
参数:maxresultsize-以字节为单位的最大结果大小。
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/scan.html#setmaxresultsize-长-
您可以使用固定的开始键和停止键,也可以使用pagefilter和setcaching的组合。

相关问题