Class UnalignedWindowTableFunctionOperator

java.lang.Object
org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT>
org.apache.flink.table.runtime.operators.TableStreamOperator<org.apache.flink.table.data.RowData>
org.apache.flink.table.runtime.operators.window.tvf.operator.WindowTableFunctionOperatorBase
org.apache.flink.table.runtime.operators.window.tvf.operator.UnalignedWindowTableFunctionOperator
All Implemented Interfaces:
Serializable, org.apache.flink.api.common.state.CheckpointListener, org.apache.flink.streaming.api.operators.Input<org.apache.flink.table.data.RowData>, org.apache.flink.streaming.api.operators.KeyContext, org.apache.flink.streaming.api.operators.KeyContextHandler, org.apache.flink.streaming.api.operators.OneInputStreamOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>, 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,TimeWindow>, org.apache.flink.streaming.api.operators.YieldingOperator<org.apache.flink.table.data.RowData>

public class UnalignedWindowTableFunctionOperator extends WindowTableFunctionOperatorBase implements org.apache.flink.streaming.api.operators.Triggerable<org.apache.flink.table.data.RowData,TimeWindow>
The operator for unaligned window table function.

See more details about aligned window and unaligned window in WindowAggOperator.

Note: The operator only applies for Window TVF with set semantics (e.g SESSION) instead of row semantics (e.g TUMBLE/HOP/CUMULATE).

This operator emits result at the end of window instead of per record.

This operator will not compact changelog records.

This operator will keep the original order of input records when outputting.

See Also:
  • Nested Class Summary

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

    TableStreamOperator.ContextImpl
  • Field Summary

    Fields inherited from class org.apache.flink.table.runtime.operators.window.tvf.operator.WindowTableFunctionOperatorBase

    numNullRowTimeRecordsDropped, rowtimeIndex, shiftTimeZone, windowAssigner

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

    ctx, currentWatermark

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

    combinedWatermark, config, lastRecordAttributes1, lastRecordAttributes2, latencyStats, LOG, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager
  • Constructor Summary

    Constructors
    Constructor
    Description
    UnalignedWindowTableFunctionOperator(GroupWindowAssigner<TimeWindow> windowAssigner, org.apache.flink.api.common.typeutils.TypeSerializer<TimeWindow> windowSerializer, org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.table.data.RowData> inputSerializer, int rowtimeIndex, ZoneId shiftTimeZone)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    org.apache.flink.metrics.Counter
     
    org.apache.flink.metrics.Gauge<Long>
     
    void
    onEventTime(org.apache.flink.streaming.api.operators.InternalTimer<org.apache.flink.table.data.RowData,TimeWindow> timer)
     
    void
    onProcessingTime(org.apache.flink.streaming.api.operators.InternalTimer<org.apache.flink.table.data.RowData,TimeWindow> timer)
     
    void
     
    void
    processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<org.apache.flink.table.data.RowData> element)
     

    Methods inherited from class org.apache.flink.table.runtime.operators.window.tvf.operator.WindowTableFunctionOperatorBase

    collect, getNumNullRowTimeRecordsDropped

    Methods inherited from class org.apache.flink.table.runtime.operators.TableStreamOperator

    computeMemorySize, processWatermark, useSplittableTimers

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

    beforeInitializeStateHandler, finish, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, initializeState, isAsyncStateProcessingEnabled, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark1, processWatermark1, processWatermark2, processWatermark2, processWatermarkStatus, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setCurrentKey, setKeyContextElement1, setKeyContextElement2, 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.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
  • Constructor Details

    • UnalignedWindowTableFunctionOperator

      public UnalignedWindowTableFunctionOperator(GroupWindowAssigner<TimeWindow> windowAssigner, org.apache.flink.api.common.typeutils.TypeSerializer<TimeWindow> windowSerializer, org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.table.data.RowData> inputSerializer, int rowtimeIndex, ZoneId shiftTimeZone)
  • 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 WindowTableFunctionOperatorBase
      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 WindowTableFunctionOperatorBase
      Throws:
      Exception
    • processElement

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

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

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

      @VisibleForTesting public org.apache.flink.metrics.Counter getNumLateRecordsDropped()
    • getWatermarkLatency

      @VisibleForTesting public org.apache.flink.metrics.Gauge<Long> getWatermarkLatency()