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.
| 限定符和类型 | 方法和说明 |
|---|---|
void |
close() |
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) |
dispose, getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, initializeState, initializeState, notifyCheckpointAborted, notifyCheckpointComplete, numEventTimeTimers, numProcessingTimeTimers, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService, setup, snapshotState, snapshotStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdispose, getMetricGroup, getOperatorID, initializeState, setKeyContextElement1, setKeyContextElement2, snapshotStatepublic 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 在接口中 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
Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.