基于特定 HFile 作为根的 HBase 扫描



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

给定时间范围,我希望扫描仪包含来自 HFiles 的数据超出范围,用于范围内的 HFiles 中包含的行键。 这个想法是扫描所有 HFile 的内存中索引,但仅从磁盘获取范围内 HFile 中的行键的数据。

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

用例是加载在过去 X 小时内修改的整行(即使仅在一列上),避免完全扫描或冗余数据的任何磁盘扫描。 这将集成到Spark/MR应用程序中,可能基于TableSnapshotInputFormat,所以我想我可以为HRegion,HStore或其他任何东西提供一些自定义代码,如果涉及到这个。

多谢

如果这是用例,

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

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

如果您希望它更灵活,请应用KeyOnlyFilter()并获取所有行键。稍后,您可以根据行计数执行批处理Get

相关内容

  • 没有找到相关文章

最新更新