Class TwoOutputProcessOperator<IN,​OUT_MAIN,​OUT_SIDE>

  • All Implemented Interfaces:
    Serializable, org.apache.flink.api.common.state.CheckpointListener, org.apache.flink.streaming.api.operators.BoundedOneInput, org.apache.flink.streaming.api.operators.Input<IN>, org.apache.flink.streaming.api.operators.KeyContext, org.apache.flink.streaming.api.operators.KeyContextHandler, org.apache.flink.streaming.api.operators.OneInputStreamOperator<IN,​OUT_MAIN>, org.apache.flink.streaming.api.operators.OutputTypeConfigurable<OUT_MAIN>, org.apache.flink.streaming.api.operators.StreamOperator<OUT_MAIN>, org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperator, org.apache.flink.streaming.api.operators.UserFunctionProvider<org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,​OUT_MAIN,​OUT_SIDE>>, org.apache.flink.streaming.api.operators.YieldingOperator<OUT_MAIN>, org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncKeyOrderedProcessing, org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncKeyOrderedProcessingOperator
    Direct Known Subclasses:
    BaseKeyedTwoOutputProcessOperator

    public class TwoOutputProcessOperator<IN,​OUT_MAIN,​OUT_SIDE>
    extends org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateUdfStreamOperator<OUT_MAIN,​org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,​OUT_MAIN,​OUT_SIDE>>
    implements org.apache.flink.streaming.api.operators.OneInputStreamOperator<IN,​OUT_MAIN>, org.apache.flink.streaming.api.operators.BoundedOneInput
    Operator for TwoOutputStreamProcessFunction.

    We support the second output via flink side-output mechanism.

    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      TwoOutputProcessOperator​(org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,​OUT_MAIN,​OUT_SIDE> userFunction, org.apache.flink.util.OutputTag<OUT_SIDE> outputTag)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      protected Object currentKey()  
      void endInput()  
      protected Supplier<Long> getEventTimeSupplier()  
      protected TimestampCollector<OUT_MAIN> getMainCollector()  
      protected org.apache.flink.datastream.api.context.TwoOutputNonPartitionedContext<OUT_MAIN,​OUT_SIDE> getNonPartitionedContext()  
      protected org.apache.flink.datastream.api.context.ProcessingTimeManager getProcessingTimeManager()  
      protected BiConsumer<Runnable,​Object> getProcessorWithKey()  
      TimestampCollector<OUT_SIDE> getSideCollector()  
      protected org.apache.flink.streaming.api.operators.InternalTimerService<org.apache.flink.runtime.state.VoidNamespace> getTimerService()  
      boolean isAsyncKeyOrderedProcessingEnabled()  
      void open()  
      void processElement​(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<IN> element)  
      void processWatermarkInternal​(org.apache.flink.runtime.event.WatermarkEvent watermark)  
      • Methods inherited from class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateUdfStreamOperator

        finish, getUserFunction, initializeState, notifyCheckpointAborted, notifyCheckpointComplete, setOutputType, setup, snapshotState
      • Methods inherited from class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateStreamOperator

        createAsyncExecutionController, getKeySelectorForAsyncKeyedContext
      • Methods inherited from class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncKeyOrderedStreamOperator

        asyncProcessWithKey, beforeInitializeStateHandler, drainStateRequests, getAsyncKeyedStateBackend, getCurrentKey, getDeclarationManager, getElementOrder, getInternalTimerService, getOrCreateKeyedState, getRecordProcessor, handleAsyncException, newKeySelected, postProcessElement, postProcessWatermark, prepareSnapshotPreBarrier, preProcessWatermark, preserveRecordOrderAndProcess, processNonRecord, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark, processWatermark1, processWatermark1Internal, processWatermark2, processWatermark2Internal, processWatermarkStatus, processWatermarkStatus, reportOrForwardLatencyMarker, setAsyncKeyedContextElement, setKeyContextElement1, setKeyContextElement2
      • Methods inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator

        getContainingTask, getExecutionConfig, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, isUsingCustomRawKeyedState, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2, processWatermarkStatus1, processWatermarkStatus2, setCurrentKey, setMailboxExecutor, setProcessingTimeService, snapshotState, useSplittableTimers
      • Methods inherited from interface org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncKeyOrderedProcessing

        getRecordProcessor
      • Methods inherited from interface org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncKeyOrderedProcessingOperator

        asyncProcessWithKey, getDeclarationManager, getElementOrder, postProcessElement, preserveRecordOrderAndProcess, setAsyncKeyedContextElement
      • Methods inherited from interface org.apache.flink.api.common.state.CheckpointListener

        notifyCheckpointAborted, notifyCheckpointComplete
      • Methods inherited from interface org.apache.flink.streaming.api.operators.Input

        processLatencyMarker, processRecordAttributes, processWatermark, processWatermark, processWatermarkStatus
      • Methods inherited from interface org.apache.flink.streaming.api.operators.KeyContext

        getCurrentKey, setCurrentKey
      • Methods inherited from interface org.apache.flink.streaming.api.operators.KeyContextHandler

        hasKeyContext
      • Methods inherited from interface org.apache.flink.streaming.api.operators.OneInputStreamOperator

        setKeyContextElement
      • Methods inherited from interface org.apache.flink.streaming.api.operators.StreamOperator

        finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
    • Field Detail

      • nonPartitionedContext

        protected transient org.apache.flink.datastream.api.context.TwoOutputNonPartitionedContext<OUT_MAIN,​OUT_SIDE> nonPartitionedContext
      • outputTag

        protected org.apache.flink.util.OutputTag<OUT_SIDE> outputTag
      • watermarkDeclarationMap

        protected transient Map<String,​org.apache.flink.streaming.runtime.watermark.AbstractInternalWatermarkDeclaration<?>> watermarkDeclarationMap
      • eventTimeWatermarkHandler

        protected transient org.apache.flink.streaming.runtime.watermark.extension.eventtime.EventTimeWatermarkHandler eventTimeWatermarkHandler
    • Constructor Detail

      • TwoOutputProcessOperator

        public TwoOutputProcessOperator​(org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,​OUT_MAIN,​OUT_SIDE> userFunction,
                                        org.apache.flink.util.OutputTag<OUT_SIDE> outputTag)
    • Method Detail

      • open

        public void open()
                  throws Exception
        Specified by:
        open in interface org.apache.flink.streaming.api.operators.StreamOperator<IN>
        Overrides:
        open in class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateUdfStreamOperator<OUT_MAIN,​org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,​OUT_MAIN,​OUT_SIDE>>
        Throws:
        Exception
      • processElement

        public void processElement​(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<IN> element)
                            throws Exception
        Specified by:
        processElement in interface org.apache.flink.streaming.api.operators.Input<IN>
        Throws:
        Exception
      • processWatermarkInternal

        public void processWatermarkInternal​(org.apache.flink.runtime.event.WatermarkEvent watermark)
                                      throws Exception
        Overrides:
        processWatermarkInternal in class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncKeyOrderedStreamOperator<OUT_MAIN>
        Throws:
        Exception
      • endInput

        public void endInput()
                      throws Exception
        Specified by:
        endInput in interface org.apache.flink.streaming.api.operators.BoundedOneInput
        Throws:
        Exception
      • currentKey

        protected Object currentKey()
      • getNonPartitionedContext

        protected org.apache.flink.datastream.api.context.TwoOutputNonPartitionedContext<OUT_MAIN,​OUT_SIDE> getNonPartitionedContext()
      • getProcessingTimeManager

        protected org.apache.flink.datastream.api.context.ProcessingTimeManager getProcessingTimeManager()
      • close

        public void close()
                   throws Exception
        Specified by:
        close in interface org.apache.flink.streaming.api.operators.StreamOperator<IN>
        Overrides:
        close in class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateUdfStreamOperator<OUT_MAIN,​org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,​OUT_MAIN,​OUT_SIDE>>
        Throws:
        Exception
      • isAsyncKeyOrderedProcessingEnabled

        public boolean isAsyncKeyOrderedProcessingEnabled()
        Specified by:
        isAsyncKeyOrderedProcessingEnabled in interface org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncKeyOrderedProcessing
        Overrides:
        isAsyncKeyOrderedProcessingEnabled in class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncKeyOrderedStreamOperator<OUT_MAIN>
      • getTimerService

        protected org.apache.flink.streaming.api.operators.InternalTimerService<org.apache.flink.runtime.state.VoidNamespace> getTimerService()
      • getEventTimeSupplier

        protected Supplier<Long> getEventTimeSupplier()