Class BigtableChangeStreamSourceConfig<T>

java.lang.Object
io.github.flink.gcp.connector.bigtable.source.BigtableChangeStreamSourceConfig<T>
Type Parameters:
T - the record type the deserializer produces
All Implemented Interfaces:
Serializable

@Internal public final class BigtableChangeStreamSourceConfig<T> extends Object implements Serializable
Everything the Change Streams source was built with, assembled by the builder and carried into the job graph.

Every value is reached through a getter, including from inside this package. The class offers one access mechanism rather than two, so what the configuration exposes can be read from its getters alone.

An unset value is a null field carrying Nullable, never an Optional one: Optional models a result that may be absent, while a nullable field is configuration nobody set.

The seams — the opener, the restore resolver and the coordinator client — are held as the objects the source hands to its reader and enumerator, which is why this configuration is only as serializable as they are.

See Also:
  • Method Details

    • getTable

      public TableDestination getTable()
      Returns the table whose change stream is read.
    • getDeserializer

      public BigtableChangeStreamDeserializationSchema<T> getDeserializer()
      Returns the deserializer turning change-stream mutations into records.
    • getAppProfileId

      public String getAppProfileId()
      Returns the single-cluster application profile the change stream is read through.
    • getServiceAccountKeyFile

      @Nullable public String getServiceAccountKeyFile()
      Returns the service-account key-file path, or null to use ADC.
    • getStartPosition

      public StartPosition getStartPosition()
      Returns the position a fresh start reads from.
    • getResumeFallback

      @Nullable public StartPosition getResumeFallback()
      Returns the position a partition restarts from when its restored position has fallen out of retention, or null when none was configured, in which case such a restore fails the job rather than advancing over unavailable records.
    • getBoundedTimestamp

      @Nullable public Instant getBoundedTimestamp()
      Returns the timestamp that bounds the read, or null for an unbounded read.
    • getMaxConcurrentStreamsPerSubtask

      public int getMaxConcurrentStreamsPerSubtask()
      Returns the most partition streams one source subtask keeps open at a time.
    • getMutationFilter

      public BigtableChangeStreamMutationFilter getMutationFilter()
      Returns the entry filter applied to every mutation before it is deserialized.
    • getOpener

      public ChangeStreamOpener getOpener()
      Returns the opener a reader reads partitions through; the reader owns and closes it.
    • getRestoreResolver

      public ChangeStreamRestoreResolver getRestoreResolver()
      Returns the resolver a reader checks a restored split against; the reader owns it.
    • getCoordinatorClientFactory

      public ChangeStreamCoordinatorClientFactory getCoordinatorClientFactory()
      Returns the factory the source mints one coordinator client per enumerator from.

      A factory rather than a client because the JobManager holds one source object for a job's whole life, so a client here would be shared by every enumerator a coordinator reset builds (docs/adr/0128).