public class TwoOutputProcessOperator<IN,OUT_MAIN,OUT_SIDE> extends AbstractAsyncStateUdfStreamOperator<OUT_MAIN,TwoOutputStreamProcessFunction<IN,OUT_MAIN,OUT_SIDE>> implements OneInputStreamOperator<IN,OUT_MAIN>, BoundedOneInput
TwoOutputStreamProcessFunction
.
We support the second output via flink side-output mechanism.
Modifier and Type | Class and Description |
---|---|
protected class |
TwoOutputProcessOperator.SideOutputCollector
This is a special implementation of
TimestampCollector that using side-output
mechanism to emit data. |
Modifier and Type | Field and Description |
---|---|
protected DefaultRuntimeContext |
context |
protected TimestampCollector<OUT_MAIN> |
mainCollector |
protected TwoOutputNonPartitionedContext<OUT_MAIN,OUT_SIDE> |
nonPartitionedContext |
protected OutputTag<OUT_SIDE> |
outputTag |
protected TimestampCollector<OUT_SIDE> |
sideCollector |
userFunction
chainingStrategy, config, lastRecordAttributes1, lastRecordAttributes2, latencyStats, LOG, metrics, output, processingTimeService, stateKeySelector1, stateKeySelector2, timeServiceManager
Constructor and Description |
---|
TwoOutputProcessOperator(TwoOutputStreamProcessFunction<IN,OUT_MAIN,OUT_SIDE> userFunction,
OutputTag<OUT_SIDE> outputTag) |
Modifier and Type | Method and Description |
---|---|
void |
endInput()
It is notified that no more data will arrive from the input.
|
protected TimestampCollector<OUT_MAIN> |
getMainCollector() |
TimestampCollector<OUT_SIDE> |
getSideCollector() |
void |
open()
This method is called immediately before any elements are processed, it should contain the
operator's initialization logic, e.g.
|
void |
processElement(StreamRecord<IN> element)
Processes one element that arrived on this input of the
MultipleInputStreamOperator . |
close, finish, getUserFunction, initializeState, notifyCheckpointAborted, notifyCheckpointComplete, setOutputType, setup, snapshotState
getElementOrder, getInternalTimerService, getRecordProcessor, isAsyncStateProcessingEnabled, postProcessElement, preserveRecordOrderAndProcess, setAsyncKeyedContextElement, snapshotState
getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, isUsingCustomRawKeyedState, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
setKeyContextElement
close, finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
notifyCheckpointAborted, notifyCheckpointComplete
getCurrentKey, setCurrentKey
processLatencyMarker, processRecordAttributes, processWatermark, processWatermarkStatus
makeRecordProcessor
hasKeyContext
protected transient TimestampCollector<OUT_MAIN> mainCollector
protected transient TimestampCollector<OUT_SIDE> sideCollector
protected transient DefaultRuntimeContext context
protected transient TwoOutputNonPartitionedContext<OUT_MAIN,OUT_SIDE> nonPartitionedContext
public void open() throws Exception
AbstractStreamOperator
The default implementation does nothing.
open
in interface StreamOperator<OUT_MAIN>
open
in class AbstractAsyncStateUdfStreamOperator<OUT_MAIN,TwoOutputStreamProcessFunction<IN,OUT_MAIN,OUT_SIDE>>
Exception
- An exception in this method causes the operator to fail.public void processElement(StreamRecord<IN> element) throws Exception
Input
MultipleInputStreamOperator
.
This method is guaranteed to not be called concurrently with other methods of the operator.processElement
in interface Input<IN>
Exception
public void endInput() throws Exception
BoundedOneInput
WARNING: It is not safe to use this method to commit any transactions or other side
effects! You can use this method to flush any buffered data that can later on be committed
e.g. in a CheckpointListener.notifyCheckpointComplete(long)
.
NOTE: Given it is semantically very similar to the StreamOperator.finish()
method. It might be dropped in favour of the other method at some point in time.
endInput
in interface BoundedOneInput
Exception
protected TimestampCollector<OUT_MAIN> getMainCollector()
public TimestampCollector<OUT_SIDE> getSideCollector()
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.