我的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
谢谢您!
暂无答案!
目前还没有任何答案,快来回答吧!