apache_beam.io.external.gcp.pubsub module

class apache_beam.io.external.gcp.pubsub.ReadFromPubsubSchema(topic, subscription, id_label, with_attributes, timestamp_attribute)

Bases: tuple

Create new instance of ReadFromPubsubSchema(topic, subscription, id_label, with_attributes, timestamp_attribute)

id_label: str | None

Alias for field number 2

subscription: str | None

Alias for field number 1

timestamp_attribute: str | None

Alias for field number 4

topic: str | None

Alias for field number 0

with_attributes: bool

Alias for field number 3

class apache_beam.io.external.gcp.pubsub.ReadFromPubSub(topic=None, subscription=None, id_label=None, with_attributes=False, timestamp_attribute=None, expansion_service=None)[source]

Bases: PTransform

An external PTransform for reading from Cloud Pub/Sub.

Experimental; no backwards compatibility guarantees. It requires special preparation of the Java SDK. See https://github.com/apache/beam/issues/19728.

Initializes ReadFromPubSub.

Parameters:
  • topic – Cloud Pub/Sub topic in the form “projects/<project>/topics/<topic>”. If provided, subscription must be None.

  • subscription – Existing Cloud Pub/Sub subscription to use in the form “projects/<project>/subscriptions/<subscription>”. If not specified, a temporary subscription will be created from the specified topic. If provided, topic must be None.

  • id_label – The attribute on incoming Pub/Sub messages to use as a unique record identifier. When specified, the value of this attribute (which can be any string that uniquely identifies the record) will be used for deduplication of messages. If not provided, we cannot guarantee that no duplicate data will be delivered on the Pub/Sub stream. In this case, deduplication of the stream will be strictly best effort.

  • with_attributes – True - output elements will be PubsubMessage objects. False - output elements will be of type bytes (message data only).

  • timestamp_attribute

    Message value to use as element timestamp. If None, uses message publishing time as the timestamp.

    Timestamp values should be in one of two formats:

    • A numerical value representing the number of milliseconds since the Unix epoch.

    • A string in RFC 3339 format, UTC timezone. Example: 2015-10-29T23:41:41.123Z. The sub-second component of the timestamp is optional, and digits beyond the first three (i.e., time units smaller than milliseconds) may be ignored.

URN = 'beam:transform:org.apache.beam:pubsub_read:v1'
expand(pbegin)[source]
class apache_beam.io.external.gcp.pubsub.WriteToPubsubSchema(topic, id_label, timestamp_attribute)

Bases: tuple

Create new instance of WriteToPubsubSchema(topic, id_label, timestamp_attribute)

id_label: str | None

Alias for field number 1

timestamp_attribute: str | None

Alias for field number 2

topic: str

Alias for field number 0

class apache_beam.io.external.gcp.pubsub.WriteToPubSub(topic, with_attributes=False, id_label=None, timestamp_attribute=None, expansion_service=None)[source]

Bases: PTransform

An external PTransform for writing messages to Cloud Pub/Sub.

Experimental; no backwards compatibility guarantees. It requires special preparation of the Java SDK. See https://github.com/apache/beam/issues/19728.

Initializes WriteToPubSub.

Parameters:
  • topic – Cloud Pub/Sub topic in the form “/topics/<project>/<topic>”.

  • with_attributes – True - input elements will be PubsubMessage objects. False - input elements will be of type bytes (message data only).

  • id_label – If set, will set an attribute for each Cloud Pub/Sub message with the given name and a unique value. This attribute can then be used in a ReadFromPubSub PTransform to deduplicate messages.

  • timestamp_attribute – If set, will set an attribute for each Cloud Pub/Sub message with the given name and the message’s publish time as the value.

URN = 'beam:transform:org.apache.beam:pubsub_write:v1'
expand(pvalue)[source]