Hbase多范围扫描?

时间:2013-10-10 18:28:53

标签: hbase

我有一个包含数百万行的表,我需要能够选择包含特定前缀的行..我可能需要扫描几百个+前缀。这些前缀中的每一个最多可能影响10行。根据我的经验,扫描总是比过滤器更加紧凑,因此我希望有一种方法可以扫描多个范围,而不是为每个范围添加PrefixFilter。有没有办法在hbase中执行此操作,或者至少是PrefixFilters的更好替代方法?

1 个答案:

答案 0 :(得分:2)

看起来您正在寻找 MultiTableInputFormat 。它允许我们在一张桌子上提供来自多个扫描仪的数据。

用法示例:

Scan scan1 = new Scan(); 
scan1.setStartRow(start1); 
scan1.setStopRow(end1); 
Scan scan2 = new Scan(); 
scan2.setStartRow(start2); 
scan2.setStopRow(end2); 
MultiTableInputCollection mtic = new MultiTableInputCollection(); 
mtic.Add(tableName1, scan1); 
mtic.Add(tableName2, scan2); 
TableMapReduceUtil.initTableMapperJob(mtic, TestTableMapper.class,   Text.class, IntWritable.class, job1); 

这是 API ,这是关联的 ticket