Interface Sink<InputT,​CommT,​WriterStateT,​GlobalCommT>

  • Type Parameters:
    InputT - The type of the sink's input
    CommT - The type of information needed to commit data staged by the sink
    WriterStateT - The type of the sink writer's state
    GlobalCommT - The type of the aggregated committable
    All Superinterfaces:
    Serializable

    @Deprecated
    @PublicEvolving
    public interface Sink<InputT,​CommT,​WriterStateT,​GlobalCommT>
    extends Serializable
    Deprecated.
    Please use Sink or a derivative.
    This interface lets the sink developer build a simple sink topology, which could guarantee the exactly once semantics in both batch and stream execution mode if there is a Committer or GlobalCommitter. 1. The SinkWriter is responsible for producing the committable. 2. The Committer is responsible for committing a single committable. 3. The GlobalCommitter is responsible for committing an aggregated committable, which we call the global committable. The GlobalCommitter is always executed with a parallelism of 1. Note: Developers need to ensure the idempotence of Committer and GlobalCommitter.

    A sink must always have a writer, but committer and global committer are each optional and all combinations are valid.

    The Sink needs to be serializable. All configuration should be validated eagerly. The respective sink parts are transient and will only be created in the subtasks on the taskmanagers.