public abstract class AbstractWindowAggProcessor extends Object implements SlicingWindowProcessor<Long>
SlicingWindowProcessor
for window aggregate.SlicingWindowProcessor.Context<W>
Modifier and Type | Field and Description |
---|---|
protected TypeSerializer<RowData> |
accSerializer |
protected NamespaceAggsHandleFunction<Long> |
aggregator |
protected ClockService |
clockService |
protected SlicingWindowProcessor.Context<Long> |
ctx |
protected long |
currentProgress |
protected GeneratedNamespaceAggsHandleFunction<Long> |
genAggsHandler |
protected boolean |
isEventTime |
protected JoinedRowData |
reuseOutput |
protected java.time.ZoneId |
shiftTimeZone |
protected SliceAssigner |
sliceAssigner |
protected boolean |
useDayLightSaving
The shift timezone is using DayLightSaving time or not.
|
protected WindowBuffer |
windowBuffer |
protected WindowBuffer.Factory |
windowBufferFactory |
protected long |
windowInterval |
protected WindowValueState<Long> |
windowState
state schema: [key, window_end, accumulator].
|
protected WindowTimerService<Long> |
windowTimerService |
Constructor and Description |
---|
AbstractWindowAggProcessor(GeneratedNamespaceAggsHandleFunction<Long> genAggsHandler,
WindowBuffer.Factory bufferFactory,
SliceAssigner sliceAssigner,
TypeSerializer<RowData> accSerializer,
java.time.ZoneId shiftTimeZone) |
Modifier and Type | Method and 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 windowEnd)
Clear state and resources associated with the given window namespace.
|
void |
close()
The tear-down method of the function.
|
protected void |
collect(RowData aggResult) |
TypeSerializer<Long> |
createWindowSerializer()
Returns the serializer of the window type.
|
void |
initializeWatermark(long watermark)
Initializes the watermark which restores from state.
|
void |
open(SlicingWindowProcessor.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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
fireWindow
protected final GeneratedNamespaceAggsHandleFunction<Long> genAggsHandler
protected final WindowBuffer.Factory windowBufferFactory
protected final SliceAssigner sliceAssigner
protected final TypeSerializer<RowData> accSerializer
protected final boolean isEventTime
protected final long windowInterval
protected final java.time.ZoneId shiftTimeZone
protected final boolean useDayLightSaving
protected transient long currentProgress
protected transient SlicingWindowProcessor.Context<Long> ctx
protected transient ClockService clockService
protected transient WindowTimerService<Long> windowTimerService
protected transient NamespaceAggsHandleFunction<Long> aggregator
protected transient WindowBuffer windowBuffer
protected transient WindowValueState<Long> windowState
protected transient JoinedRowData reuseOutput
public AbstractWindowAggProcessor(GeneratedNamespaceAggsHandleFunction<Long> genAggsHandler, WindowBuffer.Factory bufferFactory, SliceAssigner sliceAssigner, TypeSerializer<RowData> accSerializer, java.time.ZoneId shiftTimeZone)
public void open(SlicingWindowProcessor.Context<Long> context) throws Exception
SlicingWindowProcessor
open
in interface SlicingWindowProcessor<Long>
Exception
public void initializeWatermark(long watermark)
SlicingWindowProcessor
initializeWatermark
in interface SlicingWindowProcessor<Long>
watermark
- the initial watermarkpublic boolean processElement(RowData key, RowData element) throws Exception
SlicingWindowProcessor
processElement
in interface SlicingWindowProcessor<Long>
key
- the key associated with the elementelement
- The element to process.Exception
protected abstract long sliceStateMergeTarget(long sliceToMerge) throws Exception
sliceToMerge
. For shared windows, the merge target should be the shared slice
state.public void advanceProgress(long progress) throws Exception
SlicingWindowProcessor
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.
advanceProgress
in interface SlicingWindowProcessor<Long>
progress
- the current progress timeException
public void prepareCheckpoint() throws Exception
SlicingWindowProcessor
prepareCheckpoint
in interface SlicingWindowProcessor<Long>
Exception
public void clearWindow(Long windowEnd) throws Exception
SlicingWindowProcessor
Note: the key context has been set.
clearWindow
in interface SlicingWindowProcessor<Long>
windowEnd
- the window to clearException
public void close() throws Exception
SlicingWindowProcessor
close
in interface SlicingWindowProcessor<Long>
Exception
public TypeSerializer<Long> createWindowSerializer()
SlicingWindowProcessor
createWindowSerializer
in interface SlicingWindowProcessor<Long>
protected void collect(RowData aggResult)
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.