All Implemented Interfaces:
BatchExecNode<Object>, ExecNode<Object>, ExecNodeTranslator<Object>, FusionCodegenExecNode, MultipleTransformationTranslator<Object>

@ExecNodeMetadata(name="batch-exec-sink", version=1, consumedOptions={"table.exec.sink.not-null-enforcer","table.exec.sink.type-length-enforcer"}, producedTransformations={"constraint-validator","partitioner","sink"}, minPlanVersion=v2_0, minStateVersion=v2_0) public class BatchExecSink extends CommonExecSink implements BatchExecNode<Object>
Batch ExecNode to write data into an external sink defined by a DynamicTableSink.
  • Constructor Details

    • BatchExecSink

      public BatchExecSink(org.apache.flink.configuration.ReadableConfig tableConfig, DynamicTableSinkSpec tableSinkSpec, InputProperty inputProperty, org.apache.flink.table.types.logical.LogicalType outputType, String description)
    • BatchExecSink

      public BatchExecSink(int id, ExecNodeContext context, org.apache.flink.configuration.ReadableConfig persistedConfig, DynamicTableSinkSpec tableSinkSpec, List<InputProperty> inputProperties, org.apache.flink.table.types.logical.LogicalType outputType, String description)
  • Method Details

    • translateToPlanInternal

      protected org.apache.flink.api.dag.Transformation<Object> 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<Object>
      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.
    • getPhysicalRowType

      protected org.apache.flink.table.types.logical.RowType getPhysicalRowType(org.apache.flink.table.catalog.ResolvedSchema schema)
      Overrides:
      getPhysicalRowType in class CommonExecSink
    • applyUpsertMaterialize

      protected 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)
      Specified by:
      applyUpsertMaterialize in class CommonExecSink
    • getPrimaryKeyIndices

      protected int[] getPrimaryKeyIndices(org.apache.flink.table.types.logical.RowType sinkRowType, org.apache.flink.table.catalog.ResolvedSchema schema)
      Overrides:
      getPrimaryKeyIndices in class CommonExecSink