Class ConstraintEnforcer
- 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.sink.ConstraintEnforcer
-
- All Implemented Interfaces:
Serializable
,CheckpointListener
,Input<RowData>
,KeyContext
,KeyContextHandler
,OneInputStreamOperator<RowData,RowData>
,StreamOperator<RowData>
,StreamOperatorStateHandler.CheckpointedStreamOperator
,YieldingOperator<RowData>
@Internal public class ConstraintEnforcer extends TableStreamOperator<RowData> implements OneInputStreamOperator<RowData,RowData>
ProcessesRowData
to enforce the following constraints:NOT NULL
column constraint of a sink tableCHAR(length)
/@{code VARCHAR(length)}: trim string values to comply with thelength
defined in their corresponding types.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ConstraintEnforcer.Builder
Helper builder, so that theConstraintEnforcer
can be instantiated with only the NOT NULL constraint validation, only the CHAR/VARCHAR length validation, only the BINARY/VARBINARY length validation or combinations of them, or all of them.static class
ConstraintEnforcer.FieldInfo
Helper POJO to keep info about CHAR/VARCHAR/BINARY/VARBINARY fields, used to determine if trimming or padding is needed.-
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.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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getOperatorName()
Return the operator name.static ConstraintEnforcer.Builder
newBuilder()
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<RowData> element)
Processes one element that arrived on this input of theMultipleInputStreamOperator
.-
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
close, finish, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, 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, processWatermark1, 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, 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
close, finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
-
-
-
-
Method Detail
-
getOperatorName
public String getOperatorName()
Description copied from class:AbstractStreamOperator
Return the operator name. If the runtime context has been set, then the task name with subtask index is returned. Otherwise, the simple class name is returned.- Overrides:
getOperatorName
in classAbstractStreamOperator<RowData>
- Returns:
- If runtime context is set, then return task name with subtask index. Otherwise return simple class name.
-
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.
-
newBuilder
public static ConstraintEnforcer.Builder newBuilder()
-
processElement
public void processElement(StreamRecord<RowData> 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<RowData>
- Throws:
Exception
-
-