本文整理了Java中io.druid.query.QueryToolChest.mergeResults
方法的一些代码示例,展示了QueryToolChest.mergeResults
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryToolChest.mergeResults
方法的具体详情如下:
包路径:io.druid.query.QueryToolChest
类名称:QueryToolChest
方法名:mergeResults
[英]This method wraps a QueryRunner. The input QueryRunner, by contract, will provide a series of ResultType objects in time order (ascending or descending). This method should return a new QueryRunner that potentially merges the stream of ordered ResultType objects.
[中]此方法包装QueryRunner。输入QueryRunner根据约定,将按时间顺序(升序或降序)提供一系列ResultType对象。此方法应返回一个新的QueryRunner,该QueryRunner可能会合并有序ResultType对象流。
代码示例来源:origin: io.druid/druid-services
private static <T> Sequence<T> executeQuery(final Injector injector, final QueryableIndex index, final Query<T> query)
{
final QueryRunnerFactoryConglomerate conglomerate = injector.getInstance(QueryRunnerFactoryConglomerate.class);
final QueryRunnerFactory factory = conglomerate.findFactory(query);
final QueryRunner<T> runner = factory.createRunner(new QueryableIndexSegment("segment", index));
final Sequence results = factory.getToolchest().mergeResults(
factory.mergeRunners(MoreExecutors.sameThreadExecutor(), ImmutableList.<QueryRunner>of(runner))
).run(QueryPlus.wrap(query), Maps.<String, Object>newHashMap());
return (Sequence<T>) results;
}
代码示例来源:origin: io.druid/druid-server
@Override
public <T> QueryRunner<T> getQueryRunnerForIntervals(final Query<T> query, Iterable<Interval> intervals)
{
final QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query);
final Map<Integer, FireChief> partitionChiefs = chiefs.get(Iterables.getOnlyElement(query.getDataSource()
.getNames()));
return partitionChiefs == null ? new NoopQueryRunner<T>() : factory.getToolchest().mergeResults(
factory.mergeRunners(
MoreExecutors.sameThreadExecutor(),
// Chaining query runners which wait on submitted chain query runners can make executor pools deadlock
Iterables.transform(
partitionChiefs.values(), new Function<FireChief, QueryRunner<T>>()
{
@Override
public QueryRunner<T> apply(FireChief fireChief)
{
return fireChief.getQueryRunner(query);
}
}
)
)
);
}
代码示例来源:origin: io.druid/druid-server
@Override
public <T> QueryRunner<T> getQueryRunnerForSegments(final Query<T> query, final Iterable<SegmentDescriptor> specs)
{
final QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query);
final Map<Integer, FireChief> partitionChiefs = chiefs.get(Iterables.getOnlyElement(query.getDataSource()
.getNames()));
return partitionChiefs == null
? new NoopQueryRunner<T>()
: factory.getToolchest().mergeResults(
factory.mergeRunners(
MoreExecutors.sameThreadExecutor(),
Iterables.transform(
specs,
new Function<SegmentDescriptor, QueryRunner<T>>()
{
@Override
public QueryRunner<T> apply(SegmentDescriptor spec)
{
final FireChief retVal = partitionChiefs.get(spec.getPartitionNumber());
return retVal == null
? new NoopQueryRunner<T>()
: retVal.getQueryRunner(query.withQuerySegmentSpec(new SpecificSegmentSpec(spec)));
}
}
)
)
);
}
代码示例来源:origin: com.n3twork.druid/druid-server
return new FinalizeResultsQueryRunner<T>(toolChest.mergeResults(factory.mergeRunners(exec, adapters)), toolChest);
代码示例来源:origin: com.n3twork.druid/druid-server
return toolchest.mergeResults(
factory.mergeRunners(
queryExecutorService,
代码示例来源:origin: io.druid/druid-processing
@Override
public Sequence<T> apply(Interval singleInterval)
{
return new AsyncQueryRunner<T>(
//Note: it is assumed that toolChest.mergeResults(..) gives a query runner that is
//not lazy i.e. it does most of its work on call to run() method
toolChest.mergeResults(
new MetricsEmittingQueryRunner<T>(
emitter,
toolChest,
baseRunner,
QueryMetrics::reportIntervalChunkTime,
queryMetrics -> queryMetrics.chunkInterval(singleInterval)
).withWaitMeasuredFromNow()
),
executor, queryWatcher
).run(
queryPlus.withQuerySegmentSpec(
new MultipleIntervalSegmentSpec(Collections.singletonList(singleInterval))),
responseContext
);
}
}
代码示例来源:origin: io.druid/druid-server
toolChest.mergeResults(factory.mergeRunners(exec, queryRunners)),
toolChest
),
代码示例来源:origin: com.n3twork.druid/druid-server
private <T> FinalizeResultsQueryRunner<T> makeRunner(final Query<T> query)
{
final QueryToolChest<T,Query<T>> toolChest = warehouse.getToolChest(query);
return new FinalizeResultsQueryRunner<T>(
toolChest.postMergeQueryDecoration(
toolChest.mergeResults(
new MetricsEmittingQueryRunner<T>(
emitter,
new Function<Query<T>, ServiceMetricEvent.Builder>()
{
@Override
public ServiceMetricEvent.Builder apply(@Nullable Query<T> input)
{
return toolChest.makeMetricBuilder(query);
}
},
toolChest.preMergeQueryDecoration(baseClient)
).withWaitMeasuredFromNow()
)
),
toolChest
);
}
}
代码示例来源:origin: com.n3twork.druid/druid-server
);
return new FinalizeResultsQueryRunner<T>(toolChest.mergeResults(factory.mergeRunners(exec, adapters)), toolChest);
代码示例来源:origin: io.druid/druid-server
toolChest.mergeResults(factory.mergeRunners(exec, queryRunners)),
toolChest
),
代码示例来源:origin: io.druid/druid-server
toolChest.mergeResults(
factory.mergeRunners(
queryExecutorService,
内容来源于网络,如有侵权,请联系作者删除!