Package org.apache.druid.query.topn
Class BaseTopNAlgorithm<DimValSelector,DimValAggregateStore,Parameters extends TopNParams>
java.lang.Object
org.apache.druid.query.topn.BaseTopNAlgorithm<DimValSelector,DimValAggregateStore,Parameters>
- All Implemented Interfaces:
TopNAlgorithm<DimValSelector,Parameters>
- Direct Known Subclasses:
HeapBasedTopNAlgorithm,PooledTopNAlgorithm,TimeExtractionTopNAlgorithm
public abstract class BaseTopNAlgorithm<DimValSelector,DimValAggregateStore,Parameters extends TopNParams>
extends Object
implements TopNAlgorithm<DimValSelector,Parameters>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classprotected static class -
Field Summary
FieldsFields inherited from interface org.apache.druid.query.topn.TopNAlgorithm
EMPTY_ARRAY, INIT_POSITION_VALUE, SKIP_POSITION_VALUE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intcomputeNewLength(DimValSelector dimValSelector, int numProcessed, int numToProcess) Skip invalid value, calculate length to have enough valid value to process or hit the end.static Aggregator[]makeAggregators(Cursor cursor, List<AggregatorFactory> aggregatorSpecs) protected static BufferAggregator[]makeBufferAggregators(Cursor cursor, List<AggregatorFactory> aggregatorSpecs) protected abstract DimValAggregateStoremakeDimValAggregateStore(Parameters params) protected abstract DimValSelectormakeDimValSelector(Parameters params, int numProcessed, int numToProcess) static TopNResultBuildermakeResultBuilder(TopNParams params, TopNQuery query) protected abstract voidresetAggregators(DimValAggregateStore dimValAggregateStore) voidrun(Parameters params, TopNResultBuilder resultBuilder, DimValSelector dimValSelector, TopNQueryMetrics queryMetrics) protected abstract longscanAndAggregate(Parameters params, DimValSelector dimValSelector, DimValAggregateStore dimValAggregateStore) Returns the number of processed rows (i.protected abstract DimValSelectorupdateDimValSelector(DimValSelector dimValSelector, int numProcessed, int numToProcess) protected abstract voidupdateResults(Parameters params, DimValSelector dimValSelector, DimValAggregateStore dimValAggregateStore, TopNResultBuilder resultBuilder) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.druid.query.topn.TopNAlgorithm
cleanup, makeInitParams
-
Field Details
-
cursorInspector
-
-
Constructor Details
-
BaseTopNAlgorithm
-
-
Method Details
-
makeAggregators
-
makeBufferAggregators
protected static BufferAggregator[] makeBufferAggregators(Cursor cursor, List<AggregatorFactory> aggregatorSpecs) -
run
public void run(Parameters params, TopNResultBuilder resultBuilder, DimValSelector dimValSelector, @Nullable TopNQueryMetrics queryMetrics) - Specified by:
runin interfaceTopNAlgorithm<DimValSelector,DimValAggregateStore>
-
makeDimValSelector
protected abstract DimValSelector makeDimValSelector(Parameters params, int numProcessed, int numToProcess) -
computeNewLength
Skip invalid value, calculate length to have enough valid value to process or hit the end.- Parameters:
dimValSelector- the dim value selector which record value is valid or invalid.numProcessed- the start position to processnumToProcess- the number of valid value to process- Returns:
- the length between which have enough valid value to process or hit the end.
-
updateDimValSelector
protected abstract DimValSelector updateDimValSelector(DimValSelector dimValSelector, int numProcessed, int numToProcess) -
makeDimValAggregateStore
-
scanAndAggregate
protected abstract long scanAndAggregate(Parameters params, DimValSelector dimValSelector, DimValAggregateStore dimValAggregateStore) Returns the number of processed rows (i. e. after postFilters are applied inside the cursor being processed). -
updateResults
protected abstract void updateResults(Parameters params, DimValSelector dimValSelector, DimValAggregateStore dimValAggregateStore, TopNResultBuilder resultBuilder) -
resetAggregators
-
makeResultBuilder
-