Class AsyncStateWindowJoinOperator

  • All Implemented Interfaces:
    Serializable, org.apache.flink.api.common.state.CheckpointListener, org.apache.flink.streaming.api.operators.KeyContext, org.apache.flink.streaming.api.operators.KeyContextHandler, org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>, org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperator, org.apache.flink.streaming.api.operators.Triggerable<org.apache.flink.table.data.RowData,​Long>, org.apache.flink.streaming.api.operators.TwoInputStreamOperator<org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData>, org.apache.flink.streaming.api.operators.YieldingOperator<org.apache.flink.table.data.RowData>, org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncStateProcessing, org.apache.flink.streaming.runtime.operators.asyncprocessing.AsyncStateProcessingOperator

    public class AsyncStateWindowJoinOperator
    extends AsyncStateTableStreamOperator<org.apache.flink.table.data.RowData>
    implements org.apache.flink.streaming.api.operators.TwoInputStreamOperator<org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData>, org.apache.flink.streaming.api.operators.Triggerable<org.apache.flink.table.data.RowData,​Long>, org.apache.flink.streaming.api.operators.KeyContext
    A AsyncStateWindowJoinOperator implemented by async state api.

    This class is nearly identical with WindowJoinOperator, but extending from AbstractAsyncStateStreamOperator to integrate with asynchronous state access.

    Note: currently, AsyncStateWindowJoinOperator doesn't support early-fire and late-arrival. Thus, late elements (elements belong to emitted windows) will be simply dropped.

    Note: currently, AsyncStateWindowJoinOperator doesn't support DELETE or UPDATE_BEFORE input row.

    See Also:
    Serialized Form
    • Field Summary

      • 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
      AsyncStateWindowJoinOperator​(org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.table.data.RowData> leftSerializer, org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.table.data.RowData> rightSerializer, GeneratedJoinCondition generatedJoinCondition, int leftWindowEndIndex, int rightWindowEndIndex, boolean[] filterNullKeys, ZoneId shiftTimeZone, FlinkJoinType joinType)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void onEventTime​(org.apache.flink.streaming.api.operators.InternalTimer<org.apache.flink.table.data.RowData,​Long> timer)  
      void onProcessingTime​(org.apache.flink.streaming.api.operators.InternalTimer<org.apache.flink.table.data.RowData,​Long> timer)  
      void open()  
      void processElement1​(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element)  
      void processElement2​(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element)  
      • Methods inherited from class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateStreamOperator

        asyncProcessWithKey, beforeInitializeStateHandler, drainStateRequests, finish, getAsyncKeyedStateBackend, getCurrentKey, getDeclarationManager, getElementOrder, getInternalTimerService, getOrCreateKeyedState, getRecordProcessor, isAsyncStateProcessingEnabled, newKeySelected, postProcessElement, postProcessWatermark, prepareSnapshotPreBarrier, preserveRecordOrderAndProcess, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark, processWatermark1, processWatermark1Internal, processWatermark2, processWatermark2Internal, processWatermarkInternal, 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, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2, processWatermarkStatus1, processWatermarkStatus2, setCurrentKey, setMailboxExecutor, setProcessingTimeService, setup, snapshotState, snapshotState
      • Methods inherited from interface org.apache.flink.api.common.state.CheckpointListener

        notifyCheckpointAborted, notifyCheckpointComplete
      • 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.StreamOperator

        finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
      • Methods inherited from interface org.apache.flink.streaming.api.operators.TwoInputStreamOperator

        processLatencyMarker1, processLatencyMarker2, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark1, processWatermark2, processWatermark2, processWatermarkStatus1, processWatermarkStatus2
    • Constructor Detail

      • AsyncStateWindowJoinOperator

        public AsyncStateWindowJoinOperator​(org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.table.data.RowData> leftSerializer,
                                            org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.table.data.RowData> rightSerializer,
                                            GeneratedJoinCondition generatedJoinCondition,
                                            int leftWindowEndIndex,
                                            int rightWindowEndIndex,
                                            boolean[] filterNullKeys,
                                            ZoneId shiftTimeZone,
                                            FlinkJoinType joinType)
    • Method Detail

      • open

        public void open()
                  throws Exception
        Specified by:
        open in interface org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>
        Overrides:
        open in class AsyncStateTableStreamOperator<org.apache.flink.table.data.RowData>
        Throws:
        Exception
      • close

        public void close()
                   throws Exception
        Specified by:
        close in interface org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>
        Overrides:
        close in class org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateStreamOperator<org.apache.flink.table.data.RowData>
        Throws:
        Exception
      • processElement1

        public void processElement1​(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element)
                             throws Exception
        Specified by:
        processElement1 in interface org.apache.flink.streaming.api.operators.TwoInputStreamOperator<org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData>
        Throws:
        Exception
      • processElement2

        public void processElement2​(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element)
                             throws Exception
        Specified by:
        processElement2 in interface org.apache.flink.streaming.api.operators.TwoInputStreamOperator<org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData,​org.apache.flink.table.data.RowData>
        Throws:
        Exception
      • onProcessingTime

        public void onProcessingTime​(org.apache.flink.streaming.api.operators.InternalTimer<org.apache.flink.table.data.RowData,​Long> timer)
                              throws Exception
        Specified by:
        onProcessingTime in interface org.apache.flink.streaming.api.operators.Triggerable<org.apache.flink.table.data.RowData,​Long>
        Throws:
        Exception
      • onEventTime

        public void onEventTime​(org.apache.flink.streaming.api.operators.InternalTimer<org.apache.flink.table.data.RowData,​Long> timer)
                         throws Exception
        Specified by:
        onEventTime in interface org.apache.flink.streaming.api.operators.Triggerable<org.apache.flink.table.data.RowData,​Long>
        Throws:
        Exception