java.lang.Object
org.apache.flink.table.planner.plan.nodes.exec.ExecNodeBase<Object>
org.apache.flink.table.planner.plan.nodes.exec.common.CommonExecSink
All Implemented Interfaces:
ExecNode<Object>, ExecNodeTranslator<Object>, FusionCodegenExecNode, MultipleTransformationTranslator<Object>
Direct Known Subclasses:
BatchExecSink, StreamExecSink

public abstract class CommonExecSink extends ExecNodeBase<Object> implements MultipleTransformationTranslator<Object>
Base ExecNode to write data to an external sink defined by a DynamicTableSink.
  • Field Details

  • Constructor Details

    • CommonExecSink

      protected CommonExecSink(int id, ExecNodeContext context, org.apache.flink.configuration.ReadableConfig persistedConfig, DynamicTableSinkSpec tableSinkSpec, org.apache.flink.table.connector.ChangelogMode inputChangelogMode, boolean isBounded, List<InputProperty> inputProperties, org.apache.flink.table.types.logical.LogicalType outputType, String description)
  • Method Details

    • getSimplifiedName

      public String getSimplifiedName()
      Overrides:
      getSimplifiedName in class ExecNodeBase<Object>
    • getTableSinkSpec

      public DynamicTableSinkSpec getTableSinkSpec()
    • createSinkTransformation

      protected org.apache.flink.api.dag.Transformation<Object> createSinkTransformation(org.apache.flink.streaming.api.environment.StreamExecutionEnvironment streamExecEnv, ExecNodeConfig config, ClassLoader classLoader, org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> inputTransform, org.apache.flink.table.connector.sink.DynamicTableSink tableSink, int rowtimeFieldIndex, boolean upsertMaterialize, int[] inputUpsertKey)
    • applyUpsertMaterialize

      protected abstract org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> applyUpsertMaterialize(org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> inputTransform, int[] primaryKeys, int sinkParallelism, ExecNodeConfig config, ClassLoader classLoader, org.apache.flink.table.types.logical.RowType physicalRowType, int[] inputUpsertKey)
    • getPrimaryKeyIndices

      protected int[] getPrimaryKeyIndices(org.apache.flink.table.types.logical.RowType sinkRowType, org.apache.flink.table.catalog.ResolvedSchema schema)
    • getPhysicalRowType

      protected org.apache.flink.table.types.logical.RowType getPhysicalRowType(org.apache.flink.table.catalog.ResolvedSchema schema)