Class BigtableConfig (2.43.0)

BigtableConfig(mapping=None, *, ignore_unknown_fields=False, **kwargs)

Configuration for a Bigtable subscription, which will write a Pub/Sub message to a Bigtable row. See the ColumnFamilyMapping documentation below for details on how the row keys and columns will be written.

.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

Classes

ColumnFamilyMapping

ColumnFamilyMapping(mapping=None, *, ignore_unknown_fields=False, **kwargs)

Configuration for writing a Pub/Sub message to a Bigtable row with a user-defined key and writing to column families.

If this field is set:

  • The subscription messages must be formatted as JSON.
  • The row key mapping is configured in the key_definition section.
  • The top-level fields will be written either:

    • By default, they will be written to the data column family with the field name as the column qualifier.
    • But if the field name matches an existing column family (except for the default data column), then that field will be written to that column family, either as a scalar or its next level nested fields if it's a JSON object.
  • The cell timestamp will be the message publish timestamp.

If the field is not set, the default behavior is to write:

  • row key: subscription name, message ID hash, and message ID delimited by #.
  • columns: message bytes written to a single column family data with an empty-string column qualifier.
  • cell timestamp: the message publish timestamp.

This message has oneof_ fields (mutually exclusive fields). For each oneof, at most one member field can be set at the same time. Setting any member of the oneof automatically clears all other members.

.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

State

State(value)

Possible states for a Bigtable subscription. Note: more states could be added in the future. Please code accordingly.

    - The Bigtable instance, table, or app profile does not
      exist.
    - The Pub/Sub service agent has not been granted the
      `appropriate Bigtable IAM permission
      bigtable.tables.mutateRows <{$universe.dns_names.final_documentation_domain}/bigtable/docs/access-control#permissions>`__
    - The bigtable.googleapis.com API is not enabled for the
      project
      (`instructions <{$universe.dns_names.final_documentation_domain}/service-usage/docs/enable-disable>`__)
SCHEMA_MISMATCH (5):
    Cannot write to Bigtable because of a missing column family
    (`data`), or if there is no structured row key for the
    subscription name + message ID, if because the app profile
    is not configured for single-cluster routing.
IN_TRANSIT_LOCATION_RESTRICTION (6):
    Cannot write to the destination because enforce_in_transit
    is set to true and the destination locations are not in the
    allowed regions.
VERTEX_AI_LOCATION_RESTRICTION (7):
    Cannot write to Bigtable because the table is not in the
    same location as where Vertex AI models used in
    `message_transform`\ s are deployed.

Attributes

Name Description
table :noindex: str
Optional. The unique name of the table to write messages to. Values are of the form projects/.
app_profile_id :noindex: str
Optional. The app profile to use for the Bigtable writes. If not specified, the "default" application profile will be used. The app profile must use single-cluster routing.
service_account_email :noindex: str
Optional. The service account to use to write to Bigtable. The subscription creator or updater that specifies this field must have iam.serviceAccounts.actAs permission on the service account. If not specified, the Pub/Sub `service agent
write_metadata :noindex: bool
Optional. When true, write the subscription name, message_id, publish_time, attributes, and ordering_key to additional columns in the table under the pubsub_metadata column family. The subscription name, message_id, and publish_time fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
column_family_mapping :noindex: google.pubsub_v1.types.BigtableConfig.ColumnFamilyMapping
Optional. Configuration that allows writing row keys and/or columns based on fields in the input message. The input message format must be JSON if this field is set. This field is a member of oneof_ message_mapping.
state :noindex: google.pubsub_v1.types.BigtableConfig.State
Output only. An output-only field that indicates whether or not the subscription can receive messages.