HBase Scan基于特定的HFile作为根

sha*_*y__ 5 java hbase mapreduce hfile

是否有任何具有以下行为的扫描/过滤器API?

给定时间范围,我希望扫描仪包含来自HFiles的数据超出范围,包括在HFiles中的行键在范围内.我们的想法是扫描所有HFile的内存索引,但只从磁盘中获取来自HFile的rowkeys的数据.

例如,如果HFile1在范围内并且HFile2超出范围,并且rowkey1有任何数据HFile1,我想获取rowkey1from的所有列HFile2,就好像它在范围内一样.另一方面,如果rowkey2包含HFile2但不包括在内HFile1,索引扫描程序应该跳到下一行键.

用例是在最后X小时内加载已修改的整行(即使只在一列上),从而避免对冗余数据进行全面扫描或任何磁盘扫描.这将集成到Spark/MR应用程序中,可能基于TableSnapshotInputFormat,所以我想我可以为HRegion,HStore或其他任何东西发送一些自定义代码,如果有的话.

非常感谢

Kri*_*ris 3

如果这是用例,

用例是加载过去 X 小时内修改的整行(即使只是一列),避免对冗余数据进行完全扫描或任何磁盘扫描

为什么带时间戳范围的扫描不起作用?HBase JAVA APIorg.apache.hadoop.hbase.client.Scan.setTimeRange(long, long)将时间范围作为输入,并且仅获取在此时间范围内修改的行。

如果你想让它更灵活,那么应用 aKeyOnlyFilter()并获取所有 rowkey。Get稍后您可以根据行数进行批处理。