如何在hbase中获取rowpefix过滤器的最后一个键/值?

jq6vz3qz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(228)

我的hbase表行键的格式如下:

vin1ts1

vin1ts2

vin1ts3

vin2ts1

vin2ts2

vin2ts3

vin2ts4

etc....

我想获取每个行前缀的最后一个可用密钥,
其中rowprefix={vin1,vin2,vin3,…}
例如:对于rowprefix=vin1,它应该返回“rowkey=vin1ts3”及其值。
我正在尝试使用反向扫描功能,如下所示:

`Scan scan = new Scan();
scan.setCaching(1)
FilterList allFilters = new FilterList(FilterList.Operator.MUST_PASS_ALL);
allFilters.addFilter(new PrefixFilter(Bytes.toBytes(prefixFilterValue)));
scan.setFilter(allFilters);
scan.setReversed(true); //Read the latest available key and value
scan.setMaxResultSize(1);
ResultScanner scanner = tblConn.getScanner(scan);
Result result = scanner.next();
LOGGER.log(Level.INFO, "Latest Key " + Bytes.toString(result.getRow()));
scanner.close(); 
-----------`

上面的代码可以工作,但是需要大约40秒来检索目标行键。
有没有更好的方法来获得相同的,因为40秒是不够的,我们的业务条件?
或者我需要设置任何扫描属性来减少扫描时间吗?
任何指点都将不胜感激。。
群集信息:hdp:hdp-2.5.5.0
hbase-版本:version 1.1.2.2.5.5.0-157,r002c801447187c620c26ffc130ff17a9b0a62ac1,fri apr 21 01:13:10 utc 2017
谢谢您!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题