@Override public DruidWritable getCurrentValue() throws IOException, InterruptedException { // Create new value DruidWritable value = new DruidWritable(false); value.getValue().put("timestamp", current.getTimestamp().getMillis()); if (values.hasNext()) { value.getValue().putAll(values.next().getBaseObject()); return value; } return value; }
@Override public boolean nextKeyValue() { if (values.hasNext()) { return true; } if (queryResultsIterator.hasNext()) { current = queryResultsIterator.next(); values = current.getValue().getValue().iterator(); return nextKeyValue(); } return false; }
@Override protected Aggregator[][] makeDimValSelector(TopNParams params, int numProcessed, int numToProcess) { return query.getTopNMetricSpec().configureOptimizer( new AggregatorArrayProvider(params.getDimSelector(), query, params.getCardinality()) ).build(); }
@Override protected int[] makeDimValSelector(PooledTopNParams params, int numProcessed, int numToProcess) { final TopNMetricSpecBuilder<int[]> arrayProvider = params.getArrayProvider(); arrayProvider.ignoreFirstN(numProcessed); arrayProvider.keepOnlyN(numToProcess); return query.getTopNMetricSpec().configureOptimizer(arrayProvider).build(); }
public DimExtractionTopNAlgorithm( Capabilities capabilities, TopNQuery query ) { super(capabilities); this.query = query; this.comparator = query.getTopNMetricSpec() .getComparator(query.getAggregatorSpecs(), query.getPostAggregatorSpecs()); }
@Override public TopNQuery withOverriddenContext(Map<String, Object> contextOverrides) { return new TopNQueryBuilder(this).context(computeOverriddenContext(getContext(), contextOverrides)).build(); }
@Override protected BufferAggregator[] makeDimValAggregateStore(PooledTopNParams params) { return makeBufferAggregators(params.getCursor(), query.getAggregatorSpecs()); }
public TopNQueryBuilder metric(String s) { return metric(new NumericTopNMetricSpec(s)); }
@Override public QueryRunner<Result<TopNResultValue>> postMergeQueryDecoration(final QueryRunner<Result<TopNResultValue>> runner) { return new ThresholdAdjustingQueryRunner(runner, config.getMinTopNThreshold()); }
@Override public <T> TopNMetricSpecBuilder<T> configureOptimizer(TopNMetricSpecBuilder<T> builder) { if (!canBeOptimizedUnordered()) { return builder; } return delegate.configureOptimizer(builder); }
private static TopNQueryRunnerFactory getTopNQueryRunnerFactory() { TopNQueryQueryToolChest toolchest = new TopNQueryQueryToolChest(new TopNQueryConfig(), Utils.NoopIntervalChunkingQueryRunnerDecorator()); TopNQueryRunnerFactory factory = new TopNQueryRunnerFactory(Utils.getBufferPool(), toolchest, Utils.NOOP_QUERYWATCHER); return factory; }
@Override public TopNQueryMetrics makeMetrics(TopNQuery query) { TopNQueryMetrics queryMetrics = queryMetricsFactory.makeMetrics(); queryMetrics.query(query); return queryMetrics; }
@Override public TopNQueryMetrics makeMetrics() { return new DefaultTopNQueryMetrics(jsonMapper); } }
@Override protected int[] makeDimValSelector(PooledTopNParams params, int numProcessed, int numToProcess) { final TopNMetricSpecBuilder<int[]> arrayProvider = params.getArrayProvider(); if (!query.getDimensionSpec().preservesOrdering()) { return arrayProvider.build(); } arrayProvider.ignoreFirstN(numProcessed); arrayProvider.keepOnlyN(numToProcess); return query.getTopNMetricSpec().configureOptimizer(arrayProvider).build(); }
public AggregateTopNMetricFirstAlgorithm( Capabilities capabilities, TopNQuery query, StupidPool<ByteBuffer> bufferPool ) { this.capabilities = capabilities; this.query = query; this.comparator = query.getTopNMetricSpec() .getComparator(query.getAggregatorSpecs(), query.getPostAggregatorSpecs()); this.bufferPool = bufferPool; }
@Override protected BufferAggregator[] makeDimValAggregateStore(PooledTopNParams params) { return makeBufferAggregators(params.getCursor(), query.getAggregatorSpecs()); }
public TopNQueryBuilder metric(String s) { return metric(new NumericTopNMetricSpec(s)); }
@Override public boolean next(NullWritable key, DruidWritable value) { if (nextKeyValue()) { // Update value value.getValue().clear(); value.getValue().put("timestamp", current.getTimestamp().getMillis()); if (values.hasNext()) { value.getValue().putAll(values.next().getBaseObject()); } return true; } return false; }
public PooledTopNAlgorithm( Capabilities capabilities, TopNQuery query, StupidPool<ByteBuffer> bufferPool ) { super(capabilities); this.capabilities = capabilities; this.query = query; this.comparator = query.getTopNMetricSpec() .getComparator(query.getAggregatorSpecs(), query.getPostAggregatorSpecs()); this.bufferPool = bufferPool; }