K - The type of the key in the bundle mapV - The type of the value in the bundle mapIN - Input type for the operator.OUT - Output type for the operator.public abstract class AbstractMapBundleOperator<K,V,IN,OUT> extends org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT> implements org.apache.flink.streaming.api.operators.OneInputStreamOperator<IN,OUT>, BundleTriggerCallback
AbstractMapBundleOperator simply used a java Map to store the input elements in
key-value form. The map key is typically the same with the state key, so we can do some
optimizations before accessing states, like pre aggregate values for each key. And we will only
need to access state every key we have, but not every element we processed.
NOTES: if all elements we processed have different keys, such operator will only increase memory footprint, and will not have any performance improvement.
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
finish() |
void |
finishBundle()
This method is invoked to finish current bundle and start a new one when the trigger was
fired.
|
protected abstract K |
getKey(IN input)
Get the key for current processing element, which will be used as the map bundle's key.
|
void |
open() |
void |
prepareSnapshotPreBarrier(long checkpointId) |
void |
processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<IN> element) |
void |
processWatermark(org.apache.flink.streaming.api.watermark.Watermark mark) |
getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService, setup, snapshotState, snapshotStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetKeyContextElementgetMetricGroup, getOperatorID, initializeState, setKeyContextElement1, setKeyContextElement2, snapshotStatenotifyCheckpointAborted, notifyCheckpointCompletegetCurrentKey, setCurrentKeypublic void open()
throws Exception
public void processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<IN> element) throws Exception
protected abstract K getKey(IN input) throws Exception
Exceptionpublic void finishBundle()
throws Exception
BundleTriggerCallbackfinishBundle in interface BundleTriggerCallbackException - This method may throw exceptions. Throwing an exception will cause the
operation to fail and may trigger recovery.public void processWatermark(org.apache.flink.streaming.api.watermark.Watermark mark)
throws Exception
public void prepareSnapshotPreBarrier(long checkpointId)
throws Exception
public void finish()
throws Exception
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.