@ExecNodeMetadata(name="stream-exec-deduplicate", version=1, consumedOptions={"table.exec.mini-batch.enabled","table.exec.mini-batch.size","table.exec.deduplicate.insert-update-after-sensitive-enabled","table.exec.deduplicate.mini-batch.compact-changes-enabled"}, producedTransformations="deduplicate", minPlanVersion=v1_15, minStateVersion=v1_15) public class StreamExecDeduplicate extends ExecNodeBase<org.apache.flink.table.data.RowData> implements StreamExecNode<org.apache.flink.table.data.RowData>, SingleTransformationTranslator<org.apache.flink.table.data.RowData>
ExecNode which deduplicate on keys and keeps only first row or last row. This node
is an optimization of StreamExecRank for some special cases. Compared to StreamExecRank, this node could use mini-batch and access less state.| Modifier and Type | Field and Description |
|---|---|
static String |
DEDUPLICATE_TRANSFORMATION |
static String |
FIELD_NAME_GENERATE_UPDATE_BEFORE |
static String |
FIELD_NAME_IS_ROWTIME |
static String |
FIELD_NAME_KEEP_LAST_ROW |
static String |
FIELD_NAME_UNIQUE_KEYS |
FIELD_NAME_CONFIGURATION, FIELD_NAME_DESCRIPTION, FIELD_NAME_ID, FIELD_NAME_INPUT_PROPERTIES, FIELD_NAME_OUTPUT_TYPE, FIELD_NAME_TYPE| Constructor and Description |
|---|
StreamExecDeduplicate(int id,
ExecNodeContext context,
org.apache.flink.configuration.ReadableConfig persistedConfig,
int[] uniqueKeys,
boolean isRowtime,
boolean keepLastRow,
boolean generateUpdateBefore,
List<InputProperty> inputProperties,
org.apache.flink.table.types.logical.RowType outputType,
String description) |
StreamExecDeduplicate(org.apache.flink.configuration.ReadableConfig tableConfig,
int[] uniqueKeys,
boolean isRowtime,
boolean keepLastRow,
boolean generateUpdateBefore,
InputProperty inputProperty,
org.apache.flink.table.types.logical.RowType outputType,
String description) |
| Modifier and Type | Method and Description |
|---|---|
protected org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> |
translateToPlanInternal(org.apache.flink.table.planner.delegation.PlannerBase planner,
ExecNodeConfig config)
Internal method, translates this node into a Flink operator.
|
accept, createFormattedTransformationDescription, createFormattedTransformationName, createTransformationDescription, createTransformationMeta, createTransformationMeta, createTransformationName, createTransformationUid, getContextFromAnnotation, getDescription, getId, getInputEdges, getInputProperties, getOutputType, getPersistedConfig, getSimplifiedName, inputsContainSingleton, replaceInputEdge, setCompiled, setInputEdges, translateToPlanclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaccept, getDescription, getId, getInputEdges, getInputProperties, getOutputType, replaceInputEdge, setCompiled, setInputEdgestranslateToPlanpublic static final String DEDUPLICATE_TRANSFORMATION
public static final String FIELD_NAME_UNIQUE_KEYS
public static final String FIELD_NAME_IS_ROWTIME
public static final String FIELD_NAME_KEEP_LAST_ROW
public static final String FIELD_NAME_GENERATE_UPDATE_BEFORE
public StreamExecDeduplicate(org.apache.flink.configuration.ReadableConfig tableConfig,
int[] uniqueKeys,
boolean isRowtime,
boolean keepLastRow,
boolean generateUpdateBefore,
InputProperty inputProperty,
org.apache.flink.table.types.logical.RowType outputType,
String description)
public StreamExecDeduplicate(int id,
ExecNodeContext context,
org.apache.flink.configuration.ReadableConfig persistedConfig,
int[] uniqueKeys,
boolean isRowtime,
boolean keepLastRow,
boolean generateUpdateBefore,
List<InputProperty> inputProperties,
org.apache.flink.table.types.logical.RowType outputType,
String description)
protected org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> translateToPlanInternal(org.apache.flink.table.planner.delegation.PlannerBase planner,
ExecNodeConfig config)
ExecNodeBasetranslateToPlanInternal in class ExecNodeBase<org.apache.flink.table.data.RowData>planner - The planner.config - per-ExecNode configuration that contains the merged configuration from
various layers which all the nodes implementing this method should use, instead of
retrieving configuration from the planner. For more details check ExecNodeConfig.Copyright © 2014–2022 The Apache Software Foundation. All rights reserved.