org.apache.druid.query.Query.getResultOrdering()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(11.4k)|赞(0)|评价(0)|浏览(121)

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

Query.getResultOrdering介绍

暂无

代码示例

代码示例来源:origin: apache/incubator-druid

@Override
public Ordering<T> getResultOrdering()
{
 return query.getResultOrdering();
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<T> run(QueryPlus<T> queryPlus, Map<String, Object> responseContext)
 {
  Query query = queryPlus.getQuery();
  return new MergeSequence<>(
    query.getResultOrdering(),
    Sequences.simple(
      Lists.transform(
        optimizer.optimize(query),
        new Function<Query, Sequence<T>>()
        {
         @Override
         public Sequence<T> apply(Query query)
         {
          return runner.run(
            queryPlus.withQuery(query),
            responseContext
          );
         }
        }
      )
    )
  );
 }
}

代码示例来源:origin: apache/incubator-druid

return new MergeSequence<>(queryPlus.getQuery().getResultOrdering(), Sequences.simple(listOfSequences))
   .toYielder(initValue, accumulator);
} else {

代码示例来源:origin: apache/incubator-druid

private static <T> Sequence<T> mergeSequences(Query<T> query, List<Sequence<T>> sequences)
{
 return Sequences.simple(sequences).flatMerge(seq -> seq, query.getResultOrdering());
}

代码示例来源:origin: apache/incubator-druid

@Override
public Sequence<T> run(final QueryPlus<T> queryPlus, final Map<String, Object> responseContext)
{
 Query<T> query = queryPlus.getQuery();
 DataSource dataSource = query.getDataSource();
 if (dataSource instanceof UnionDataSource) {
  return new MergeSequence<>(
    query.getResultOrdering(),
    Sequences.simple(
      Lists.transform(
        ((UnionDataSource) dataSource).getDataSources(),
        new Function<DataSource, Sequence<T>>()
        {
         @Override
         public Sequence<T> apply(DataSource singleSource)
         {
          return baseRunner.run(
            queryPlus.withQuery(query.withDataSource(singleSource)),
            responseContext
          );
         }
        }
      )
    )
  );
 } else {
  return baseRunner.run(queryPlus, responseContext);
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  return Sequences
    .simple(
      ImmutableList.of(
        theRunner.run(queryPlus, responseContext),
        theRunner2.run(queryPlus, responseContext)
      )
    )
    .flatMerge(Function.identity(), queryPlus.getQuery().getResultOrdering());
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  return Sequences
    .simple(
      ImmutableList.of(
        theRunner.run(queryPlus, responseContext),
        theRunner2.run(queryPlus, responseContext)
      )
    )
    .flatMerge(Function.identity(), queryPlus.getQuery().getResultOrdering());
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  return Sequences
    .simple(
      ImmutableList.of(
        theRunner.run(queryPlus, responseContext),
        theRunner2.run(queryPlus, responseContext)
      )
    )
    .flatMerge(Function.identity(), queryPlus.getQuery().getResultOrdering());
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  return Sequences
    .simple(
      ImmutableList.of(
        theRunner.run(queryPlus, responseContext),
        theRunner2.run(queryPlus, responseContext)
      )
    )
    .flatMerge(Function.identity(), queryPlus.getQuery().getResultOrdering());
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<ScanResultValue> run(
   QueryPlus<ScanResultValue> queryPlus,
   Map<String, Object> responseContext
 )
 {
  // simulate results back from 2 historicals
  List<Sequence<ScanResultValue>> sequences = Lists.newArrayListWithExpectedSize(2);
  sequences.add(factory.createRunner(segment0).run(queryPlus, new HashMap<>()));
  sequences.add(factory.createRunner(segment1).run(queryPlus, new HashMap<>()));
  return new MergeSequence<>(
    queryPlus.getQuery().getResultOrdering(),
    Sequences.simple(sequences)
  );
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return new MergeSequence(
    queryPlus.getQuery().getResultOrdering(),
    Sequences.simple(
      Arrays.asList(runner.run(queryPlus1, responseContext), runner.run(queryPlus2, responseContext))
    )
  );
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return new MergeSequence(
    queryPlus.getQuery().getResultOrdering(),
    Sequences.simple(
      Arrays.asList(runner.run(queryPlus1, responseContext), runner.run(queryPlus2, responseContext))
    )
  );
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return new MergeSequence(
    queryPlus.getQuery().getResultOrdering(),
    Sequences.simple(
      Arrays.asList(runner.run(queryPlus1, responseContext), runner.run(queryPlus2, responseContext))
    )
  );
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return new MergeSequence(
    queryPlus.getQuery().getResultOrdering(),
    Sequences.simple(
      Arrays.asList(runner.run(queryPlus1, responseContext), runner.run(queryPlus2, responseContext))
    )
  );
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return new MergeSequence(
    queryPlus.getQuery().getResultOrdering(),
    Sequences.simple(
      Arrays.asList(runner.run(queryPlus1, responseContext), runner.run(queryPlus2, responseContext))
    )
  );
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus<Row> queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus<Row> queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return factory.getToolchest().mergeResults(
    (queryPlus3, responseContext1) -> new MergeSequence<>(
      queryPlus3.getQuery().getResultOrdering(),
      Sequences.simple(
        Arrays.asList(
          runner.run(queryPlus1, responseContext1),
          runner.run(queryPlus2, responseContext1)
        )
      )
    )
  ).run(queryPlus, responseContext);
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus<Row> queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus<Row> queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return factory.getToolchest().mergeResults(
    (queryPlus3, responseContext1) -> new MergeSequence<>(
      queryPlus3.getQuery().getResultOrdering(),
      Sequences.simple(
        Arrays.asList(
          runner.run(queryPlus1, responseContext1),
          runner.run(queryPlus2, responseContext1)
        )
      )
    )
  ).run(queryPlus, responseContext);
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus<Row> queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus<Row> queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return factory.getToolchest().mergeResults(
    (queryPlus3, responseContext1) -> new MergeSequence<>(
      queryPlus3.getQuery().getResultOrdering(),
      Sequences.simple(
        Arrays.asList(
          runner.run(queryPlus1, responseContext1),
          runner.run(queryPlus2, responseContext1)
        )
      )
    )
  ).run(queryPlus, responseContext);
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<T> run(QueryPlus<T> queryPlus, Map<String, Object> responseContext)
 {
  Query<T> query = queryPlus.getQuery();
  List<TimelineObjectHolder> segments = new ArrayList<>();
  for (Interval interval : query.getIntervals()) {
   segments.addAll(timeline.lookup(interval));
  }
  List<Sequence<T>> sequences = new ArrayList<>();
  for (TimelineObjectHolder<String, Segment> holder : toolChest.filterSegments(query, segments)) {
   Segment segment = holder.getObject().getChunk(0).getObject();
   QueryPlus queryPlusRunning = queryPlus.withQuerySegmentSpec(
     new SpecificSegmentSpec(
       new SegmentDescriptor(
         holder.getInterval(),
         holder.getVersion(),
         0
       )
     )
   );
   sequences.add(factory.createRunner(segment).run(queryPlusRunning, responseContext));
  }
  return new MergeSequence<>(query.getResultOrdering(), Sequences.simple(sequences));
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
 public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext)
 {
  // simulate two daily segments
  final QueryPlus<Row> queryPlus1 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-02/2011-04-03")))
  );
  final QueryPlus<Row> queryPlus2 = queryPlus.withQuerySegmentSpec(
    new MultipleIntervalSegmentSpec(Collections.singletonList(Intervals.of("2011-04-03/2011-04-04")))
  );
  return factory.getToolchest().mergeResults(
    (queryPlus3, responseContext1) -> new MergeSequence<>(
      queryPlus3.getQuery().getResultOrdering(),
      Sequences.simple(
        Arrays.asList(
          runner.run(queryPlus1, responseContext1),
          runner.run(queryPlus2, responseContext1)
        )
      )
    )
  ).run(queryPlus, responseContext);
 }
}

相关文章