/** * Getter for set of columns by sub-type. * * @param columnClass The class of columns to to search * @param <T> sub-type of Column to return * * @return Set of Columns */ default <T extends Column> LinkedHashSet<T> getColumns(Class<T> columnClass) { return Utils.getSubsetByType(getColumns(), columnClass); }
/** * Evaluate Druid query for expensive aggregation that could bring down Druid. * * @param query Druid Query * * @return query or null if not required */ public static WeightEvaluationQuery makeWeightEvaluationQuery(DruidAggregationQuery<?> query) { // get inner-most query for evaluation DruidAggregationQuery<?> innerQuery = query.getInnermostQuery(); int weight = Utils.getSubsetByType(innerQuery.getAggregations(), SketchAggregation.class).size(); return new WeightEvaluationQuery(innerQuery, weight); }
Set<String> metricNames = Utils.getSubsetByType(columns, MetricColumn.class).stream() .map(MetricColumn::getName) .collect(Collectors.collectingAndThen(Collectors.toSet(), ImmutableSet::copyOf));
DruidAggregationQuery<?> innerQuery = query.getInnermostQuery(); int sketchWeight = Utils.getSubsetByType(innerQuery.getAggregations(), SketchAggregation.class).size(); if (sketchWeight == 0) { return 0;