Class StreamExecDeduplicate

java.lang.Object
org.apache.flink.table.planner.plan.nodes.exec.ExecNodeBase<org.apache.flink.table.data.RowData>
org.apache.flink.table.planner.plan.nodes.exec.stream.StreamExecDeduplicate
All Implemented Interfaces:
ExecNode<org.apache.flink.table.data.RowData>, ExecNodeTranslator<org.apache.flink.table.data.RowData>, FusionCodegenExecNode, SingleTransformationTranslator<org.apache.flink.table.data.RowData>, StreamExecNode<org.apache.flink.table.data.RowData>

@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>
Stream 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.
  • Field Details

  • Constructor Details

    • StreamExecDeduplicate

      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)
    • StreamExecDeduplicate

      public StreamExecDeduplicate(int id, ExecNodeContext context, org.apache.flink.configuration.ReadableConfig persistedConfig, int[] uniqueKeys, boolean isRowtime, boolean keepLastRow, boolean generateUpdateBefore, @Nullable List<StateMetadata> stateMetadataList, List<InputProperty> inputProperties, org.apache.flink.table.types.logical.RowType outputType, String description)
  • Method Details

    • translateToPlanInternal

      protected org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> translateToPlanInternal(PlannerBase planner, ExecNodeConfig config)
      Description copied from class: ExecNodeBase
      Internal method, translates this node into a Flink operator.
      Specified by:
      translateToPlanInternal in class ExecNodeBase<org.apache.flink.table.data.RowData>
      Parameters:
      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.