Class WindowJoinOperator
- java.lang.Object
-
- org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT>
-
- org.apache.flink.table.runtime.operators.TableStreamOperator<RowData>
-
- org.apache.flink.table.runtime.operators.join.window.WindowJoinOperator
-
- All Implemented Interfaces:
Serializable
,CheckpointListener
,KeyContext
,KeyContextHandler
,StreamOperator<RowData>
,StreamOperatorStateHandler.CheckpointedStreamOperator
,Triggerable<RowData,Long>
,TwoInputStreamOperator<RowData,RowData,RowData>
,YieldingOperator<RowData>
public abstract class WindowJoinOperator extends TableStreamOperator<RowData> implements TwoInputStreamOperator<RowData,RowData,RowData>, Triggerable<RowData,Long>, KeyContext
Streaming window join operator.Note: currently,
WindowJoinOperator
doesn't support early-fire and late-arrival. Thus late elements (elements belong to emitted windows) will be simply dropped.Note: currently,
WindowJoinOperator
doesn't support DELETE or UPDATE_BEFORE input row.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.table.runtime.operators.TableStreamOperator
TableStreamOperator.ContextImpl
-
-
Field Summary
Fields Modifier and Type Field Description protected TimestampedCollector<RowData>
collector
This is used for emitting elements with a given timestamp.protected JoinConditionWithNullFilters
joinCondition
protected RowDataSerializer
leftSerializer
protected RowDataSerializer
rightSerializer
-
Fields inherited from class org.apache.flink.table.runtime.operators.TableStreamOperator
ctx, currentWatermark
-
Fields inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
config, lastRecordAttributes1, lastRecordAttributes2, latencyStats, LOG, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
This method is called at the very end of the operator's life, both in the case of a successful completion of the operation, and in the case of a failure and canceling.abstract void
join(Iterable<RowData> leftRecords, Iterable<RowData> rightRecords)
void
onEventTime(InternalTimer<RowData,Long> timer)
Invoked when an event-time timer fires.void
onProcessingTime(InternalTimer<RowData,Long> timer)
Invoked when a processing-time timer fires.void
open()
This method is called immediately before any elements are processed, it should contain the operator's initialization logic, e.g. state initialization.void
processElement1(StreamRecord<RowData> element)
Processes one element that arrived on the first input of this two-input operator.void
processElement2(StreamRecord<RowData> element)
Processes one element that arrived on the second input of this two-input operator.-
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
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, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, 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.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, processWatermark2, processWatermarkStatus1, processWatermarkStatus2
-
-
-
-
Field Detail
-
leftSerializer
protected final RowDataSerializer leftSerializer
-
rightSerializer
protected final RowDataSerializer rightSerializer
-
joinCondition
protected transient JoinConditionWithNullFilters joinCondition
-
collector
protected transient TimestampedCollector<RowData> collector
This is used for emitting elements with a given timestamp.
-
-
Method Detail
-
open
public void open() throws Exception
Description copied from class:AbstractStreamOperator
This method is called immediately before any elements are processed, it should contain the operator's initialization logic, e.g. state initialization.The default implementation does nothing.
- Specified by:
open
in interfaceStreamOperator<RowData>
- Overrides:
open
in classTableStreamOperator<RowData>
- Throws:
Exception
- An exception in this method causes the operator to fail.
-
close
public void close() throws Exception
Description copied from interface:StreamOperator
This method is called at the very end of the operator's life, both in the case of a successful completion of the operation, and in the case of a failure and canceling.This method is expected to make a thorough effort to release all resources that the operator has acquired.
NOTE:It can not emit any records! If you need to emit records at the end of processing, do so in the
StreamOperator.finish()
method.- Specified by:
close
in interfaceStreamOperator<RowData>
- Overrides:
close
in classAbstractStreamOperator<RowData>
- Throws:
Exception
-
processElement1
public void processElement1(StreamRecord<RowData> element) throws Exception
Description copied from interface:TwoInputStreamOperator
Processes one element that arrived on the first input of this two-input operator. This method is guaranteed to not be called concurrently with other methods of the operator.- Specified by:
processElement1
in interfaceTwoInputStreamOperator<RowData,RowData,RowData>
- Throws:
Exception
-
processElement2
public void processElement2(StreamRecord<RowData> element) throws Exception
Description copied from interface:TwoInputStreamOperator
Processes one element that arrived on the second input of this two-input operator. This method is guaranteed to not be called concurrently with other methods of the operator.- Specified by:
processElement2
in interfaceTwoInputStreamOperator<RowData,RowData,RowData>
- Throws:
Exception
-
onProcessingTime
public void onProcessingTime(InternalTimer<RowData,Long> timer) throws Exception
Description copied from interface:Triggerable
Invoked when a processing-time timer fires.- Specified by:
onProcessingTime
in interfaceTriggerable<RowData,Long>
- Throws:
Exception
-
onEventTime
public void onEventTime(InternalTimer<RowData,Long> timer) throws Exception
Description copied from interface:Triggerable
Invoked when an event-time timer fires.- Specified by:
onEventTime
in interfaceTriggerable<RowData,Long>
- Throws:
Exception
-
-