hbase 的 coprocessor中postScannerNext中如何获取到原始scan的family和filter

[复制链接]
查看11 | 回复0 | 2021-1-27 05:48:44 | 显示全部楼层 |阅读模式
问题是这样的,我们的索引数据和实体数据都存在hbase的一个表中,在客户端查询时,可能根据给出的条件发出索引查询请求,也可能没有条件而发出全表扫描的请求。我需要根据客户端发出的查询请求判断是按索引查询还是全表扫描,如果是全表扫描,不需要干预直接查询即可。如果是索引查询,则需要干预,首先按scan的请求查询出索引,再根据索引查询到表中的实际数据。

目前我想到的办法就是通过coprocess中进行处理。首先对索引scan后,在索引scan的postScannerNext中对索引结果进行二次get查询,这时需要获取到原始的索引scan中的列簇信息和filter信息,postScannerNext的原型是这样的:
publicbooleanpostScannerNext(finalObserverContexte,finalInternalScanners,
finalListresults,finalintlimit,finalbooleanhasMore)throwsIOException
从RegionCoprocessorEnvironment参数中获取不到原始scan的信息,InternalScanner参数中也无法获取到原始的scan信息,各位大神指导一下,如果才能根据索引查询结果来做二次查询得到实际的主表数据呢。当然也不一定用我想到的办法,只要是能够实现这个目的即可。谢谢!

分 -->
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行