@Internal public final class WindowAggOperator<K,W> extends TableStreamOperator<org.apache.flink.table.data.RowData> implements org.apache.flink.streaming.api.operators.OneInputStreamOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>, org.apache.flink.streaming.api.operators.Triggerable<K,W>, org.apache.flink.streaming.api.operators.KeyContext
Aligned Windows are windows have predetermined window boundaries and windows can be divided into finite number of non-overlapping chunks. The boundary of an aligned window is determined independently from the time characteristic of the data stream, or messages it receives. For example, hopping (sliding) window is an aligned window as the window boundaries are predetermined based on the window size and slide. Aligned windows include tumbling, hopping, cumulative windows.
Unaligned Windows are windows determined dynamically based on elements. For example, session window is an unaligned window as the window boundaries are determined based on the messages timestamps and their correlations. Currently, unaligned windows include session window only.
Because aligned windows can be divided into finite number of non-overlapping chunks (a.k.a. slices), which can apply efficient processing to share intermediate results.
Window
|
+-- Aligned Window (Slicing Window)
| |
| +-- Tumble (Slice Unshared Window)
| |
| +-- Hop (Slice Shared Window)
| |
| +-- Cumulate (Slice Shared Window)
|
+-- Unaligned Window (Unslice Window)
|
+-- Session
Note: currently, WindowAggOperator doesn't support early-fire and late-arrival. Thus
late elements (elements belong to emitted windows) will be simply dropped.
See more in SlicingWindowProcessor and UnslicingWindowProcessor.
TableStreamOperator.ContextImpl| Modifier and Type | Field and Description |
|---|---|
protected org.apache.flink.streaming.api.operators.TimestampedCollector<org.apache.flink.table.data.RowData> |
collector
This is used for emitting elements with a given timestamp.
|
protected org.apache.flink.streaming.api.operators.InternalTimerService<W> |
internalTimerService
The service to register timers.
|
protected long |
lastTriggeredProcessingTime
The tracked processing time triggered last time.
|
protected org.apache.flink.metrics.Meter |
lateRecordsDroppedRate |
protected org.apache.flink.metrics.Counter |
numLateRecordsDropped |
protected org.apache.flink.metrics.Gauge<Long> |
watermarkLatency |
protected org.apache.flink.api.common.state.ListState<Long> |
watermarkState
The operator state to store watermark.
|
protected WindowProcessor<W> |
windowProcessor
The concrete window operator implementation.
|
ctx, currentWatermark| Constructor and Description |
|---|
WindowAggOperator(WindowProcessor<W> windowProcessor) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
org.apache.flink.metrics.Counter |
getNumLateRecordsDropped() |
org.apache.flink.metrics.Gauge<Long> |
getWatermarkLatency() |
void |
initializeState(org.apache.flink.runtime.state.StateInitializationContext context) |
void |
onEventTime(org.apache.flink.streaming.api.operators.InternalTimer<K,W> timer) |
void |
onProcessingTime(org.apache.flink.streaming.api.operators.InternalTimer<K,W> timer) |
void |
open() |
void |
prepareSnapshotPreBarrier(long checkpointId) |
void |
processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element) |
void |
processWatermark(org.apache.flink.streaming.api.watermark.Watermark mark) |
void |
snapshotState(org.apache.flink.runtime.state.StateSnapshotContext context) |
computeMemorySizefinish, getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService, setup, snapshotStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetKeyContextElementfinish, getMetricGroup, getOperatorID, initializeState, setKeyContextElement1, setKeyContextElement2, snapshotStatenotifyCheckpointAborted, notifyCheckpointCompletegetCurrentKey, setCurrentKeyprotected final WindowProcessor<W> windowProcessor
protected transient org.apache.flink.streaming.api.operators.TimestampedCollector<org.apache.flink.table.data.RowData> collector
protected transient org.apache.flink.streaming.api.operators.InternalTimerService<W> internalTimerService
protected transient long lastTriggeredProcessingTime
protected transient org.apache.flink.api.common.state.ListState<Long> watermarkState
protected transient org.apache.flink.metrics.Counter numLateRecordsDropped
protected transient org.apache.flink.metrics.Meter lateRecordsDroppedRate
protected transient org.apache.flink.metrics.Gauge<Long> watermarkLatency
public WindowAggOperator(WindowProcessor<W> windowProcessor)
public void open()
throws Exception
open in interface org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>open in class TableStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void initializeState(org.apache.flink.runtime.state.StateInitializationContext context)
throws Exception
initializeState in interface org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperatorinitializeState in class org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void snapshotState(org.apache.flink.runtime.state.StateSnapshotContext context)
throws Exception
snapshotState in interface org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperatorsnapshotState in class org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void close()
throws Exception
close in interface org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>close in class org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element)
throws Exception
processElement in interface org.apache.flink.streaming.api.operators.Input<org.apache.flink.table.data.RowData>Exceptionpublic void processWatermark(org.apache.flink.streaming.api.watermark.Watermark mark)
throws Exception
processWatermark in interface org.apache.flink.streaming.api.operators.Input<org.apache.flink.table.data.RowData>processWatermark in class TableStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void onEventTime(org.apache.flink.streaming.api.operators.InternalTimer<K,W> timer) throws Exception
public void onProcessingTime(org.apache.flink.streaming.api.operators.InternalTimer<K,W> timer) throws Exception
public void prepareSnapshotPreBarrier(long checkpointId)
throws Exception
prepareSnapshotPreBarrier in interface org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>prepareSnapshotPreBarrier in class org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData>Exception@VisibleForTesting public org.apache.flink.metrics.Counter getNumLateRecordsDropped()
@VisibleForTesting public org.apache.flink.metrics.Gauge<Long> getWatermarkLatency()
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.