Class AbstractSliceWindowAggProcessor
- java.lang.Object
-
- org.apache.flink.table.runtime.operators.aggregate.window.processors.AbstractWindowAggProcessor<Long>
-
- org.apache.flink.table.runtime.operators.aggregate.window.processors.AbstractSliceWindowAggProcessor
-
- All Implemented Interfaces:
Serializable
,WindowProcessor<Long>
,SlicingWindowProcessor<Long>
- Direct Known Subclasses:
SliceSharedWindowAggProcessor
,SliceUnsharedWindowAggProcessor
public abstract class AbstractSliceWindowAggProcessor extends AbstractWindowAggProcessor<Long> implements SlicingWindowProcessor<Long>
A base implementation ofSlicingWindowProcessor
for window aggregate.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.table.runtime.operators.aggregate.window.processors.AbstractWindowAggProcessor
AbstractWindowAggProcessor.WindowIsEmptySupplier
-
Nested classes/interfaces inherited from interface org.apache.flink.table.runtime.operators.window.tvf.common.WindowProcessor
WindowProcessor.Context<W>
-
-
Field Summary
Fields Modifier and Type Field Description protected SliceAssigner
sliceAssigner
protected WindowBuffer
windowBuffer
protected WindowBuffer.Factory
windowBufferFactory
protected long
windowInterval
-
Fields inherited from class org.apache.flink.table.runtime.operators.aggregate.window.processors.AbstractWindowAggProcessor
accSerializer, aggregator, clockService, ctx, currentProgress, emptySupplier, genAggsHandler, isEventTime, reuseOutput, shiftTimeZone, useDayLightSaving, windowState, windowTimerService
-
-
Constructor Summary
Constructors Constructor Description AbstractSliceWindowAggProcessor(GeneratedNamespaceAggsHandleFunction<Long> genAggsHandler, WindowBuffer.Factory bufferFactory, SliceAssigner sliceAssigner, TypeSerializer<RowData> accSerializer, int indexOfCountStar, ZoneId shiftTimeZone)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
advanceProgress(long progress)
Advances the progress time, the progress time is watermark if working in event-time mode, or current processing time if working in processing-time mode.void
clearWindow(long timerTimestamp, Long windowEnd)
Clear state and resources associated with the given window namespace.void
close()
The tear-down method of the function.TypeSerializer<Long>
createWindowSerializer()
Returns the serializer of the window type.protected WindowTimerService<Long>
getWindowTimerService()
void
open(WindowProcessor.Context<Long> context)
Initialization method for the function.void
prepareCheckpoint()
Performs a preparation before checkpoint.boolean
processElement(RowData key, RowData element)
Process an element with associated key from the input stream.protected abstract long
sliceStateMergeTarget(long sliceToMerge)
Returns the slice state target to merge the given slice into when firing windows.-
Methods inherited from class org.apache.flink.table.runtime.operators.aggregate.window.processors.AbstractWindowAggProcessor
collect, initializeWatermark
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.table.runtime.operators.window.tvf.common.WindowProcessor
fireWindow, initializeWatermark
-
-
-
-
Field Detail
-
windowBufferFactory
protected final WindowBuffer.Factory windowBufferFactory
-
sliceAssigner
protected final SliceAssigner sliceAssigner
-
windowInterval
protected final long windowInterval
-
windowBuffer
protected transient WindowBuffer windowBuffer
-
-
Constructor Detail
-
AbstractSliceWindowAggProcessor
public AbstractSliceWindowAggProcessor(GeneratedNamespaceAggsHandleFunction<Long> genAggsHandler, WindowBuffer.Factory bufferFactory, SliceAssigner sliceAssigner, TypeSerializer<RowData> accSerializer, int indexOfCountStar, ZoneId shiftTimeZone)
-
-
Method Detail
-
open
public void open(WindowProcessor.Context<Long> context) throws Exception
Description copied from interface:WindowProcessor
Initialization method for the function. It is called before the actual working methods.- Specified by:
open
in interfaceWindowProcessor<Long>
- Overrides:
open
in classAbstractWindowAggProcessor<Long>
- Throws:
Exception
-
getWindowTimerService
protected WindowTimerService<Long> getWindowTimerService()
- Specified by:
getWindowTimerService
in classAbstractWindowAggProcessor<Long>
-
processElement
public boolean processElement(RowData key, RowData element) throws Exception
Description copied from interface:WindowProcessor
Process an element with associated key from the input stream. Returns true if this element is dropped because of late arrival.- Specified by:
processElement
in interfaceWindowProcessor<Long>
- Parameters:
key
- the key associated with the elementelement
- The element to process.- Throws:
Exception
-
sliceStateMergeTarget
protected abstract long sliceStateMergeTarget(long sliceToMerge) throws Exception
Returns the slice state target to merge the given slice into when firing windows. For unshared windows, there should no merging happens, so the merge target should be just the givensliceToMerge
. For shared windows, the merge target should be the shared slice state.- Throws:
Exception
- See Also:
SliceSharedAssigner.mergeSlices(long, MergeCallback)
-
advanceProgress
public void advanceProgress(long progress) throws Exception
Description copied from interface:WindowProcessor
Advances the progress time, the progress time is watermark if working in event-time mode, or current processing time if working in processing-time mode.This will potentially flush buffered data into states, because the watermark advancement may be in a very small step, but we don't need to flush buffered data for every watermark advancement.
- Specified by:
advanceProgress
in interfaceWindowProcessor<Long>
- Parameters:
progress
- the current progress time- Throws:
Exception
-
prepareCheckpoint
public void prepareCheckpoint() throws Exception
Description copied from interface:WindowProcessor
Performs a preparation before checkpoint. This usually flushes buffered data into state.- Specified by:
prepareCheckpoint
in interfaceWindowProcessor<Long>
- Throws:
Exception
-
clearWindow
public void clearWindow(long timerTimestamp, Long windowEnd) throws Exception
Description copied from interface:WindowProcessor
Clear state and resources associated with the given window namespace.Note: the key context has been set.
- Specified by:
clearWindow
in interfaceWindowProcessor<Long>
- Parameters:
timerTimestamp
- the fired timestampwindowEnd
- the window to clear- Throws:
Exception
-
close
public void close() throws Exception
Description copied from interface:WindowProcessor
The tear-down method of the function. It is called after the last call to the main working methods.- Specified by:
close
in interfaceWindowProcessor<Long>
- Overrides:
close
in classAbstractWindowAggProcessor<Long>
- Throws:
Exception
-
createWindowSerializer
public TypeSerializer<Long> createWindowSerializer()
Description copied from interface:WindowProcessor
Returns the serializer of the window type.- Specified by:
createWindowSerializer
in interfaceWindowProcessor<Long>
-
-