Class ColumnFamilyMapping (2.43.0)

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

Attributes

Name Description
row_key_schema :noindex: google.pubsub_v1.types.BigtableConfig.ColumnFamilyMapping.RowKeySchema
Optional. If set, the row key is constructed from the field names of the table's structured row key ({$universe.dns_names.final_documentation_domain}/bigtable/docs/manage-row-key-schemas). Note that if the field is nullable in the structured row key, then it need not be present in the message; null will be used instead. This field is a member of oneof_ key_definition.
delimited_key :noindex: google.pubsub_v1.types.BigtableConfig.ColumnFamilyMapping.DelimitedKey
Optional. If set, the row key is constructed from the given key fields and delimiter. All key fields must be present in the message; otherwise, the message remains in the subscription backlog. This field is a member of oneof_ key_definition.

Classes

DelimitedKey

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

Row key definition based on fields from the message.

RowKeySchema

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

Row key definition that reads the input message fields based on the field names of the table's structured row key ({$universe.dns_names.final_documentation_domain}/bigtable/docs/manage-row-key-schemas). Note that if the field is nullable in the structured row key, then it need not be present in the message; null will be used instead.