@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| 限定符和类型 | 字段和说明 |
|---|---|
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| 构造器和说明 |
|---|
WindowAggOperator(WindowProcessor<W> windowProcessor) |
| 限定符和类型 | 方法和说明 |
|---|---|
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) |
computeMemorySize, useSplittableTimersfinish, getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, setup, snapshotStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitfinish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, setKeyContextElement1, setKeyContextElement2, snapshotStatenotifyCheckpointAborted, notifyCheckpointCompleteprotected 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 在接口中 org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>open 在类中 TableStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void initializeState(org.apache.flink.runtime.state.StateInitializationContext context)
throws Exception
initializeState 在接口中 org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperatorinitializeState 在类中 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 在接口中 org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperatorsnapshotState 在类中 org.apache.flink.streaming.api.operators.AbstractStreamOperator<org.apache.flink.table.data.RowData>Exceptionpublic void close()
throws Exception
close 在接口中 org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>close 在类中 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 在接口中 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 在接口中 org.apache.flink.streaming.api.operators.Input<org.apache.flink.table.data.RowData>processWatermark 在类中 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 在接口中 org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>prepareSnapshotPreBarrier 在类中 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.