Package org.apache.flink.cep.operator
Class CepOperator<IN,KEY,OUT>
- java.lang.Object
-
- org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT>
-
- org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator<OUT,PatternProcessFunction<IN,OUT>>
-
- org.apache.flink.cep.operator.CepOperator<IN,KEY,OUT>
-
- Type Parameters:
IN
- Type of the input elementsKEY
- Type of the key on which the input stream is keyedOUT
- Type of the output elements
- All Implemented Interfaces:
Serializable
,CheckpointListener
,Input<IN>
,KeyContext
,KeyContextHandler
,OneInputStreamOperator<IN,OUT>
,OutputTypeConfigurable<OUT>
,StreamOperator<OUT>
,StreamOperatorStateHandler.CheckpointedStreamOperator
,Triggerable<KEY,VoidNamespace>
,UserFunctionProvider<PatternProcessFunction<IN,OUT>>
,YieldingOperator<OUT>
@Internal public class CepOperator<IN,KEY,OUT> extends AbstractUdfStreamOperator<OUT,PatternProcessFunction<IN,OUT>> implements OneInputStreamOperator<IN,OUT>, Triggerable<KEY,VoidNamespace>
CEP pattern operator for a keyed input stream. For each key, the operator creates aNFA
and a priority queue to buffer out of order elements. Both data structures are stored using the managed keyed state.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator
userFunction
-
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 CepOperator(TypeSerializer<IN> inputSerializer, boolean isProcessingTime, NFACompiler.NFAFactory<IN> nfaFactory, EventComparator<IN> comparator, AfterMatchSkipStrategy afterMatchSkipStrategy, PatternProcessFunction<IN,OUT> function, OutputTag<IN> lateDataOutputTag)
-
Method Summary
All Methods Instance 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.void
initializeState(StateInitializationContext context)
Stream operators with state which can be restored need to override this hook method.void
onEventTime(InternalTimer<KEY,VoidNamespace> timer)
Invoked when an event-time timer fires.void
onProcessingTime(InternalTimer<KEY,VoidNamespace> 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
processElement(StreamRecord<IN> element)
Processes one element that arrived on this input of theMultipleInputStreamOperator
.protected void
setup(StreamTask<?,?> containingTask, StreamConfig config, Output<StreamRecord<OUT>> output)
boolean
useSplittableTimers()
Can be overridden to disable splittable timers for this particular operator even if config option is enabled.-
Methods inherited from class org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator
finish, getUserFunction, getUserFunctionParameters, notifyCheckpointAborted, notifyCheckpointComplete, setOutputType, snapshotState
-
Methods inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, isAsyncStateProcessingEnabled, isUsingCustomRawKeyedState, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, 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, 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 Detail
-
CepOperator
public CepOperator(TypeSerializer<IN> inputSerializer, boolean isProcessingTime, NFACompiler.NFAFactory<IN> nfaFactory, @Nullable EventComparator<IN> comparator, @Nullable AfterMatchSkipStrategy afterMatchSkipStrategy, PatternProcessFunction<IN,OUT> function, @Nullable OutputTag<IN> lateDataOutputTag)
-
-
Method Detail
-
useSplittableTimers
public boolean useSplittableTimers()
Description copied from class:AbstractStreamOperator
Can be overridden to disable splittable timers for this particular operator even if config option is enabled. By default, splittable timers are disabled.- Overrides:
useSplittableTimers
in classAbstractStreamOperator<OUT>
- Returns:
true
if splittable timers should be used (subject toStreamConfig.isUnalignedCheckpointsEnabled()
andStreamConfig.isUnalignedCheckpointsSplittableTimersEnabled()
.false
if splittable timers should never be used.
-
setup
protected void setup(StreamTask<?,?> containingTask, StreamConfig config, Output<StreamRecord<OUT>> output)
- Overrides:
setup
in classAbstractUdfStreamOperator<OUT,PatternProcessFunction<IN,OUT>>
-
initializeState
public void initializeState(StateInitializationContext context) throws Exception
Description copied from class:AbstractStreamOperator
Stream operators with state which can be restored need to override this hook method.- Specified by:
initializeState
in interfaceStreamOperatorStateHandler.CheckpointedStreamOperator
- Overrides:
initializeState
in classAbstractUdfStreamOperator<OUT,PatternProcessFunction<IN,OUT>>
- Parameters:
context
- context that allows to register different states.- Throws:
Exception
-
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<IN>
- Overrides:
open
in classAbstractUdfStreamOperator<OUT,PatternProcessFunction<IN,OUT>>
- 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<IN>
- Overrides:
close
in classAbstractUdfStreamOperator<OUT,PatternProcessFunction<IN,OUT>>
- Throws:
Exception
-
processElement
public void processElement(StreamRecord<IN> element) throws Exception
Description copied from interface:Input
Processes one element that arrived on this input of theMultipleInputStreamOperator
. This method is guaranteed to not be called concurrently with other methods of the operator.- Specified by:
processElement
in interfaceInput<IN>
- Throws:
Exception
-
onEventTime
public void onEventTime(InternalTimer<KEY,VoidNamespace> timer) throws Exception
Description copied from interface:Triggerable
Invoked when an event-time timer fires.- Specified by:
onEventTime
in interfaceTriggerable<IN,KEY>
- Throws:
Exception
-
onProcessingTime
public void onProcessingTime(InternalTimer<KEY,VoidNamespace> timer) throws Exception
Description copied from interface:Triggerable
Invoked when a processing-time timer fires.- Specified by:
onProcessingTime
in interfaceTriggerable<IN,KEY>
- Throws:
Exception
-
-