Package org.apache.druid.query.filter
Class DimFilterUtils
- java.lang.Object
-
- org.apache.druid.query.filter.DimFilterUtils
-
public class DimFilterUtils extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static byte
BLOOM_DIM_FILTER_CACHE_ID
static byte
STRING_SEPARATOR
-
Constructor Summary
Constructors Constructor Description DimFilterUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> Set<T>
filterShards(DimFilter dimFilter, Iterable<T> input, com.google.common.base.Function<T,ShardSpec> converter)
Filter the given iterable of objects by removing any object whose ShardSpec, obtained from the converter function, does not fit in the RangeSet of the dimFilterDimFilter.getDimensionRangeSet(String)
.static <T> Set<T>
filterShards(DimFilter dimFilter, Iterable<T> input, com.google.common.base.Function<T,ShardSpec> converter, Map<String,Optional<com.google.common.collect.RangeSet<String>>> dimensionRangeCache)
Filter the given iterable of objects by removing any object whose ShardSpec, obtained from the converter function, does not fit in the RangeSet of the dimFilterDimFilter.getDimensionRangeSet(String)
.
-
-
-
Field Detail
-
BLOOM_DIM_FILTER_CACHE_ID
public static final byte BLOOM_DIM_FILTER_CACHE_ID
- See Also:
- Constant Field Values
-
STRING_SEPARATOR
public static final byte STRING_SEPARATOR
- See Also:
- Constant Field Values
-
-
Method Detail
-
filterShards
public static <T> Set<T> filterShards(DimFilter dimFilter, Iterable<T> input, com.google.common.base.Function<T,ShardSpec> converter)
Filter the given iterable of objects by removing any object whose ShardSpec, obtained from the converter function, does not fit in the RangeSet of the dimFilterDimFilter.getDimensionRangeSet(String)
. The returned set contains the filtered objects in the same order as they appear in input. If you plan to call this multiple times with the same dimFilter, consider usingfilterShards(DimFilter, Iterable, Function, Map)
instead with a cached map- Type Parameters:
T
- This can be any type, as long as transform function is provided to convert this to ShardSpec- Parameters:
dimFilter
- The filter to useinput
- The iterable of objects to be filteredconverter
- The function to convert T to ShardSpec that can be filtered by- Returns:
- The set of filtered object, in the same order as input
-
filterShards
public static <T> Set<T> filterShards(DimFilter dimFilter, Iterable<T> input, com.google.common.base.Function<T,ShardSpec> converter, Map<String,Optional<com.google.common.collect.RangeSet<String>>> dimensionRangeCache)
Filter the given iterable of objects by removing any object whose ShardSpec, obtained from the converter function, does not fit in the RangeSet of the dimFilterDimFilter.getDimensionRangeSet(String)
. The returned set contains the filtered objects in the same order as they appear in input. DimensionRangedCache stores the RangeSets of different dimensions for the dimFilter. It should be re-used between calls with the same dimFilter to save redundant calls ofDimFilter.getDimensionRangeSet(String)
on same dimensions.- Type Parameters:
T
- This can be any type, as long as transform function is provided to convert this to ShardSpec- Parameters:
dimFilter
- The filter to useinput
- The iterable of objects to be filteredconverter
- The function to convert T to ShardSpec that can be filtered bydimensionRangeCache
- The cache of RangeSets of different dimensions for the dimFilter- Returns:
- The set of filtered object, in the same order as input
-
-