Interface SlicingWindowProcessor<W>
-
- All Superinterfaces:
Serializable,WindowProcessor<W>
- All Known Implementing Classes:
AbstractSliceWindowAggProcessor,RowTimeWindowDeduplicateProcessor,SliceSharedWindowAggProcessor,SliceUnsharedWindowAggProcessor,WindowRankProcessor
@Internal public interface SlicingWindowProcessor<W> extends WindowProcessor<W>
TheSlicingWindowProcessoris an optimized processing for aligned windows which can apply the slicing optimization. The core idea of slicing optimization is to divide all elements from a data stream into a finite number of non-overlapping chunks (a.k.a. slices).Concept of Slice
Dividing a window of aligned windows into a finite number of non-overlapping chunks, where the chunks are slices. It has the following properties:
- An element must only belong to a single slice.
- Slices are non-overlapping, i.e. S_i and S_j should not have any shared elements if i != j.
- A window is consist of a finite number of slices.
The
SlicingWindowProcessorhave different implementation for aggregate and topk or others.The
SlicingWindowProcessorusually leverages theSliceAssignerto assign slices and calculate based on the slices. SeeSliceSharedWindowAggProcessoras an example.Note: since
SlicingWindowProcessorleverages slicing optimization for aligned windows, therefore, it doesn't support unaligned windows, e.g. session window.See more details in
WindowAggOperator.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.flink.table.runtime.operators.window.tvf.common.WindowProcessor
WindowProcessor.Context<W>
-
-
Method Summary
-
Methods inherited from interface org.apache.flink.table.runtime.operators.window.tvf.common.WindowProcessor
advanceProgress, clearWindow, close, createWindowSerializer, fireWindow, initializeWatermark, open, prepareCheckpoint, processElement
-
-