是否存在具有以下行为的扫描/筛选api?
给定的时间范围,我希望扫描器包括来自范围外的hfiles的数据,对于范围内的hfiles中包含的行键。其思想是扫描所有hfiles的内存索引,但仅从磁盘获取范围内hfiles的行键的数据。
例如,如果 HFile1
在范围内并且 HFile2
超出范围,并且 rowkey1
有数据吗 HFile1
,我想得到 rowkey1
从 HFile2
就像在射程内一样。另一方面,如果 rowkey2
包含在 HFile2
但不是在 HFile1
,索引扫描程序应该直接跳到下一行键。
用例是加载在过去x小时内修改过的整行(甚至只在一列上),避免对冗余数据进行完全扫描或任何磁盘扫描。这将被集成到spark/mr应用程序中,可能是基于tablesnapshotinputformat的,所以我想我可以为hregion、hstore或任何东西提供一些定制代码。
谢谢
1条答案
按热度按时间wmtdaxz31#
如果这是用例,
用例是加载在过去x小时内修改过的整行(甚至只在一列上),避免对冗余数据进行完全扫描或任何磁盘扫描
为什么带时间戳范围的扫描不起作用?hbase java api
org.apache.hadoop.hbase.client.Scan.setTimeRange(long, long)
以时间范围作为输入&它只获取在此时间范围内修改过的行。如果你想让它更灵活,那就用
KeyOnlyFilter()
拿到所有的钥匙。以后你可以做一批Get
基于行数。