Class DimFilterUtils


  • public class DimFilterUtils
    extends Object
    • Constructor Detail

      • DimFilterUtils

        public DimFilterUtils()
    • Method Detail

      • filterShards

        public static <T> Set<T> filterShards​(@Nullable
                                              DimFilter dimFilter,
                                              @Nullable
                                              Set<String> filterFields,
                                              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 dimFilter DimFilter.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 of DimFilter.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 use
        filterFields - Set of fields to consider for pruning, or null to consider all fields
        input - The iterable of objects to be filtered
        converter - The function to convert T to ShardSpec that can be filtered by
        dimensionRangeCache - The cache of RangeSets of different dimensions for the dimFilter
        Returns:
        The set of filtered object, in the same order as input
      • onlyBaseFields

        public static Set<String> onlyBaseFields​(Set<String> fields,
                                                 DataSourceAnalysis dataSourceAnalysis)
        Returns a copy of "fields" only including base fields from DataSourceAnalysis.
        Parameters:
        fields - field list, must be nonnull
        dataSourceAnalysis - analyzed datasource