Class TwoOutputProcessOperator<IN,OUT_MAIN,OUT_SIDE>

java.lang.Object
org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT>
org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateStreamOperator<OUT>
org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateUdfStreamOperator<OUT_MAIN,org.apache.flink.datastream.api.function.TwoOutputStreamProcessFunction<IN,OUT_MAIN,OUT_SIDE>>
org.apache.flink.datastream.impl.operators.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.AsyncStateProcessing, org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncStateProcessingOperator
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:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected class 
    This is a special implementation of TimestampCollector that using side-output mechanism to emit data.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    protected org.apache.flink.streaming.runtime.watermark.extension.eventtime.EventTimeWatermarkHandler
     
     
    protected org.apache.flink.datastream.api.context.TwoOutputNonPartitionedContext<OUT_MAIN,OUT_SIDE>
     
    protected org.apache.flink.util.OutputTag<OUT_SIDE>
     
     
     
    protected Map<String,org.apache.flink.streaming.runtime.watermark.AbstractInternalWatermarkDeclaration<?>>
     

    Fields inherited from class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateUdfStreamOperator

    declarationContext, userFunction

    Fields inherited from class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateStreamOperator

    declarationManager

    Fields inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator

    combinedWatermark, config, lastRecordAttributes1, lastRecordAttributes2, latencyStats, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager
  • 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

    Modifier and Type
    Method
    Description
    void
     
    protected Object
     
    void
     
    protected Supplier<Long>
     
     
    protected org.apache.flink.datastream.api.context.TwoOutputNonPartitionedContext<OUT_MAIN,OUT_SIDE>
     
    protected org.apache.flink.datastream.api.context.ProcessingTimeManager
     
     
     
    protected org.apache.flink.streaming.api.operators.InternalTimerService<org.apache.flink.runtime.state.VoidNamespace>
     
    boolean
     
    void
     
    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

    asyncProcessWithKey, beforeInitializeStateHandler, drainStateRequests, getAsyncKeyedStateBackend, getCurrentKey, getDeclarationManager, getElementOrder, getInternalTimerService, getOrCreateKeyedState, getRecordProcessor, newKeySelected, postProcessElement, postProcessWatermark, prepareSnapshotPreBarrier, preProcessWatermark, preserveRecordOrderAndProcess, 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 class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    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 Details

    • mainCollector

      protected transient TimestampCollector<OUT_MAIN> mainCollector
    • sideCollector

      protected transient TimestampCollector<OUT_SIDE> sideCollector
    • context

      protected transient DefaultRuntimeContext context
    • partitionedContext

      protected transient DefaultTwoOutputPartitionedContext<OUT_MAIN,OUT_SIDE> partitionedContext
    • 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 Details

    • 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 Details

    • 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.AbstractAsyncStateStreamOperator<OUT_MAIN>
      Throws:
      Exception
    • endInput

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

      protected TimestampCollector<OUT_MAIN> getMainCollector()
    • getSideCollector

      public TimestampCollector<OUT_SIDE> getSideCollector()
    • currentKey

      protected Object currentKey()
    • getProcessorWithKey

      protected BiConsumer<Runnable,Object> getProcessorWithKey()
    • 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
    • isAsyncStateProcessingEnabled

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

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

      protected Supplier<Long> getEventTimeSupplier()