@Override public GroupByQueryMetrics makeMetrics(GroupByQuery query) { GroupByQueryMetrics queryMetrics = queryMetricsFactory.makeMetrics(); queryMetrics.query(query); return queryMetrics; }
@Override public QueryRunner<Row> createRunner(final Segment segment) { return new GroupByQueryRunner(segment, strategySelector); }
@Override public Sequence<Row> process( final GroupByQuery query, final StorageAdapter storageAdapter ) { return engine.process(query, storageAdapter); } }
@Override public GroupByQuery withQuerySegmentSpec(QuerySegmentSpec spec) { return new Builder(this).setQuerySegmentSpec(spec).build(); }
@Override public Query<Row> withDataSource(DataSource dataSource) { return new Builder(this).setDataSource(dataSource).build(); }
public GroupByQuery withDimensionSpecs(final List<DimensionSpec> dimensionSpecs) { return new Builder(this).setDimensions(dimensionSpecs).build(); }
private static GroupByQueryRunnerFactory getGroupByQueryRunnerFactory() { ObjectMapper mapper = new DefaultObjectMapper(); GroupByQueryConfig config = new GroupByQueryConfig(); config.setMaxIntermediateRows(10000); Supplier<GroupByQueryConfig> configSupplier = Suppliers.ofInstance(config); GroupByQueryEngine engine = new GroupByQueryEngine(configSupplier, Utils.getBufferPool()); GroupByQueryRunnerFactory factory = new GroupByQueryRunnerFactory(engine, Utils.NOOP_QUERYWATCHER, configSupplier, new GroupByQueryQueryToolChest(configSupplier, mapper, engine, Utils.getBufferPool(), Utils.NoopIntervalChunkingQueryRunnerDecorator()), Utils.getBufferPool()); return factory; }
@Override public GroupByQuery withOverriddenContext(Map<String, Object> contextOverride) { return new Builder(this).overrideContext(contextOverride).build(); }
public static Builder builder() { return new Builder(); }
public Builder addDimension(String column) { return addDimension(column, column); }
public Builder setLimitSpec(LimitSpec limitSpec) { ensureFluentLimitsNotSet(); this.limitSpec = limitSpec; return this; }
public Builder addOrderByColumn(String dimension) { return addOrderByColumn(dimension, null); }
public Builder setInterval(QuerySegmentSpec interval) { return setQuerySegmentSpec(interval); }
@Override public boolean doMergeResults(final GroupByQuery query) { return query.getContextBoolean(GroupByQueryQueryToolChest.GROUP_BY_MERGE_KEY, true); }
public Builder setLimit(int limit) { ensureExplicitLimitSpecNotSet(); this.limit = limit; this.postProcessingFn = null; return this; }
@Override public GroupByQueryMetrics makeMetrics() { return new DefaultGroupByQueryMetrics(jsonMapper); } }
public Builder limit(int limit) { ensureExplicitLimitNotSet(); this.limit = limit; return this; }
@Override public QueryRunner<Row> createRunner(final Segment segment) { return new GroupByQueryRunner(segment, engine); }
public Builder copy() { return new Builder(this); }
public Builder addDimension(String column) { return addDimension(column, column); }