Class AsyncStateWindowJoinOperator

java.lang.Object
org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT>
org.apache.flink.runtime.asyncprocessing.operators.AbstractAsyncStateStreamOperator<OUT>
org.apache.flink.table.runtime.operators.AsyncStateTableStreamOperator<org.apache.flink.table.data.RowData>
org.apache.flink.table.runtime.operators.join.window.asyncprocessing.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:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.flink.table.runtime.operators.AsyncStateTableStreamOperator

    AsyncStateTableStreamOperator.ContextImpl
  • Field Summary

    Fields inherited from class org.apache.flink.table.runtime.operators.AsyncStateTableStreamOperator

    ctx, currentWatermark

    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

    Modifier and Type
    Method
    Description
    void
     
    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
     
    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.table.runtime.operators.AsyncStateTableStreamOperator

    computeMemorySize, preProcessWatermark, useSplittableTimers

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

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

    • 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