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

@ExecNodeMetadata(name="stream-exec-sink", version=1, consumedOptions={"table.exec.sink.not-null-enforcer","table.exec.sink.type-length-enforcer","table.exec.sink.upsert-materialize","table.exec.sink.keyed-shuffle","table.exec.sink.rowtime-inserter"}, producedTransformations={"constraint-validator","partitioner","upsert-materialize","timestamp-inserter","sink"}, minPlanVersion=v1_15, minStateVersion=v1_15) public class StreamExecSink extends CommonExecSink implements StreamExecNode<Object>
Stream ExecNode to write data into an external sink defined by a DynamicTableSink.
  • Field Details

    • FIELD_NAME_INPUT_CHANGELOG_MODE

      public static final String FIELD_NAME_INPUT_CHANGELOG_MODE
      See Also:
    • FIELD_NAME_REQUIRE_UPSERT_MATERIALIZE

      public static final String FIELD_NAME_REQUIRE_UPSERT_MATERIALIZE
      See Also:
    • FIELD_NAME_INPUT_UPSERT_KEY

      public static final String FIELD_NAME_INPUT_UPSERT_KEY
      See Also:
    • STATE_NAME

      public static final String STATE_NAME
      New introduced state metadata to enable operator-level state TTL configuration.
      See Also:
  • Constructor Details

    • StreamExecSink

      public StreamExecSink(org.apache.flink.configuration.ReadableConfig tableConfig, DynamicTableSinkSpec tableSinkSpec, org.apache.flink.table.connector.ChangelogMode inputChangelogMode, InputProperty inputProperty, org.apache.flink.table.types.logical.LogicalType outputType, boolean upsertMaterialize, int[] inputUpsertKey, String description)
    • StreamExecSink

      public StreamExecSink(int id, ExecNodeContext context, org.apache.flink.configuration.ReadableConfig persistedConfig, DynamicTableSinkSpec tableSinkSpec, org.apache.flink.table.connector.ChangelogMode inputChangelogMode, boolean upsertMaterialize, @Nullable List<StateMetadata> stateMetadataList, int[] inputUpsertKey, 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.
    • 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