Class BigtableSourceConfig<T>

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

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

No Query field, and none may be added. A Query is the client's request object, and holding one here would be wrong in three ways that a serialization round-trip does not reveal: it cannot be read back, since its target-id accessor is internal, it exposes no row set and its bound is only the minimal range enclosing what it holds — so nothing could log it, truncate it at a resume point, or compare two of them; its payload is the ReadRowsRequest wire form, which would pin a vendor format into the connector's own state; and it is mutable with a transient builder, so identity across a restore is not a property anyone should have to reason about. The ranges and the filter are held instead, and the query is built per read.

Ranges are copied in and copied out. The client's ByteStringRange is mutable and its mutators return the receiver, so a shared reference would let a caller change a running job's plan.

See Also:
  • Method Details

    • getTable

      public TableDestination getTable()
      Returns the table being read.
    • getDeserializer

      public BigtableRowDeserializationSchema<T> getDeserializer()
      Returns the deserializer turning rows into records.
    • getRanges

      public List<com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange> getRanges()
      Returns the ranges to read, normalised and coalesced, in key order and never empty.

      Fresh copies, because the ranges are mutable and this configuration is shared by every component of the source.

    • getFilter

      @Nullable public com.google.cloud.bigtable.data.v2.models.Filters.Filter getFilter()
      Returns the server-side filter to apply, or null when none was configured.
    • getAppProfileId

      @Nullable public String getAppProfileId()
      Returns the application profile to route through, or null for the default.
    • getServiceAccountKeyFile

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

      public RowKeySamplerFactory getSamplerFactory()
      Returns the factory the source mints one sampler per enumerator from.

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

    • getOpener

      public RowStreamOpener getOpener()
      Returns the opener the readers read through; a reader owns and closes it.
    • getMaxRowsPerFetch

      public int getMaxRowsPerFetch()
      Returns the most rows one fetch hands to the task thread.
    • getMaxBytesPerFetch

      public long getMaxBytesPerFetch()
      Returns the target maximum estimated bytes one fetch hands to the task thread.