1

何百万行ものテーブルがあり、特定のプレフィックスを含む行を選択できるようにする必要があります。スキャンしたいプレフィックスが数百以上ある可能性があります。これらの各プレフィックスは、最大で 10 行に影響します。私の経験では、範囲スキャンは常にフィルターよりもはるかに高速であるため、それぞれに PrefixFilter を追加するのではなく、複数の範囲のスキャンを行う方法があることを望んでいました. hbaseでこれを行う方法はありますか、または少なくともPrefixFiltersのより良い代替手段はありますか?

4

1 に答える 1

1

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で、これが関連付けられたチケットです。

于 2013-10-10T20:48:27.133 に答える