是否有具有下列行为的扫描/筛选API?
在给定的时间范围内,我希望扫描器包含来自HFiles的超出范围的数据,包括在范围内的HFiles中的行键。这样做的目的是扫描所有HFiles的内存中的索引,但只从磁盘中获取数据,以便从位于范围内的HFiles中获取行键。
例如,如果HFile1在范围内,而HFile2超出了范围,而rowkey1在HFile1中有任何数据,那么我也希望从HFile2获得rowkey1的所有列,就好像它在范围内一样。另一方面,如果rowkey2包含在HFile2中,而没有包含在HFile1中,那么索引扫描器应该跳到下一行键。
用例是加载在最后X小时内修改过的整行(甚至仅在一列上),避免对冗余数据进行全扫描或磁盘扫描。这将被集成到Spark/MR应用程序中,可能是基于TableSnapshotInputFormat的,所以我想如果涉及到这一点,我可以为HRegion、HStore或其他什么发布一些自定义代码。
非常感谢
发布于 2019-02-27 08:42:52
如果这是用例,
用例是加载最后X小时内修改过的整行(甚至仅在一列上),避免对冗余数据进行全扫描或磁盘扫描
为什么带有时间戳范围的扫描不能工作?HBase JAVA org.apache.hadoop.hbase.client.Scan.setTimeRange(long, long)以一个时间范围作为输入&它只获取在这个时间范围内修改的行。
如果您希望它更灵活,那么应用一个KeyOnlyFilter()并获取所有行键。稍后,您可以根据行计数执行批处理Get。
https://stackoverflow.com/questions/54685606
复制相似问题