io.druid.query.QueryToolChest.mergeResults()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.1k)|赞(0)|评价(0)|浏览(72)

本文整理了Java中io.druid.query.QueryToolChest.mergeResults方法的一些代码示例,展示了QueryToolChest.mergeResults的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryToolChest.mergeResults方法的具体详情如下:
包路径:io.druid.query.QueryToolChest
类名称:QueryToolChest
方法名:mergeResults

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,

相关文章