Class GroupByQueryEngine
java.lang.Object
org.apache.druid.query.groupby.epinephelinae.GroupByQueryEngine
Contains logic to process a groupBy query on a single
CursorFactory in a
non-vectorized manner. Processing returns a Sequence of ResultRow objects that are not guaranteed
to be in any particular order, and may not even be fully grouped. It is expected that a downstream
GroupByMergingQueryRunner will finish grouping these results.
This code runs on anything that processes CursorFactory directly, typically data
servers like Historicals.
Used for non-vectorized processing by GroupingEngine.process(org.apache.druid.query.groupby.GroupByQuery, org.apache.druid.segment.CursorFactory, org.apache.druid.segment.TimeBoundaryInspector, org.apache.druid.collections.NonBlockingPool<java.nio.ByteBuffer>, org.apache.druid.query.groupby.GroupByQueryMetrics).
This code runs on data servers, like Historicals and Peons, and also Brokers, if they operate on local datasources like
inlined data wherein the broker needs to process some portion of data like the data server
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic booleancanPushDownLimit(ColumnSelectorFactory columnSelectorFactory, String columnName) check if a column will operate correctly withLimitedBufferHashGrouperfor query limit pushdownprocess(GroupByQuery query, TimeBoundaryInspector timeBoundaryInspector, CursorHolder cursorHolder, CursorBuildSpec buildSpec, ByteBuffer processingBuffer, org.joda.time.DateTime fudgeTimestamp, GroupByQueryConfig querySpecificConfig, DruidProcessingConfig processingConfig)
-
Method Details
-
process
public static Sequence<ResultRow> process(GroupByQuery query, @Nullable TimeBoundaryInspector timeBoundaryInspector, CursorHolder cursorHolder, CursorBuildSpec buildSpec, ByteBuffer processingBuffer, @Nullable org.joda.time.DateTime fudgeTimestamp, GroupByQueryConfig querySpecificConfig, DruidProcessingConfig processingConfig) -
canPushDownLimit
public static boolean canPushDownLimit(ColumnSelectorFactory columnSelectorFactory, String columnName) check if a column will operate correctly withLimitedBufferHashGrouperfor query limit pushdown
-