繁体   English   中英

HBase Scan基于特定的HFile作为根

[英]HBase Scan based on specific HFile(s) as roots

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

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

例如,如果HFile1在范围和HFile2超出范围,和rowkey1在任何数据HFile1 ,我想获得的所有列rowkey1HFile2为好,就好像它是在范围内。 在另一方面,如果rowkey2包括在HFile2但不是在HFile1 ,索引扫描仪应该只是跳到下一行的关键。

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

非常感谢

如果这是用例,

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

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

如果您希望它更灵活,则应用KeyOnlyFilter()并获取所有rowkeys。 稍后您可以根据行数进行批量Get

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM