Abo-Properties

Pub/Sub-Aboattribute sind die Merkmale eines Abos. Sie können beim Erstellen oder Aktualisieren eines Abos Attribute für das Abo festlegen.

In diesem Dokument werden die verschiedenen Aboeigenschaften beschrieben. die Sie für ein Abo festlegen können.

Hinweise

Allgemeine Aboeigenschaften

Wenn Sie ein Abo erstellen, müssen Sie eine Reihe von Optionen um das Abo einzurichten. Einige dieser Eigenschaften sind allen Arten von und werden in den nächsten Abschnitten erläutert.

Aufbewahrungsdauer für Nachrichten

Die Option Nachrichtenaufbewahrungsdauer gibt an, wie lange Pub/Sub Nachrichten werden nach der Veröffentlichung aufbewahrt. Nach Ablauf der Nachrichtenaufbewahrungsdauer Pub/Sub verwirft die Nachricht unter Umständen unabhängig vom Bestätigungsstatus der Nachricht. So bewahren Sie bestätigte Nachrichten für Informationen zur Aufbewahrungsdauer von Nachrichten finden Sie unter Nachrichten wiedergeben und verwerfen.

Im Folgenden finden Sie die Werte für die Option Nachrichtenaufbewahrungsdauer:

  • Standardwert = 7 Tage
  • Mindestwert = 10 Minuten
  • Höchstwert = 7 Tage

Unbestätigte Nachrichten können durch inaktive Abos, Sicherungsanforderungen oder langsame Verarbeitung. Wenn Sie Nachrichten innerhalb von 24 Stunden verarbeiten können, werden die zusätzlichen Gebühren nicht anfallen. Neue Gebühren können Sie vermeiden, indem Sie diese Szenarien so verwalten:

  • Inaktive Abos: Inaktive Abos löschen um zu vermeiden, dass Gebühren für die Aufbewahrung von Abonachrichten anfallen.

  • Sicherungsspeicher. Wenn Sie die Aboaufbewahrung als Sicherungsspeicher verwenden, können Sie auch eine andere Speicheroption wie Aufbewahrung von Themennachrichten oder Aufbewahrung bestätigter Nachrichten. Bei der Aufbewahrung von Themennachrichten werden Nachrichten gespeichert einmal auf Themenebene und bleiben für alle Abos bei Bedarf zu nutzen.

  • Verarbeitungsverzögerungen. Fügen Sie nach Möglichkeit weitere Abonnenten hinzu, Nachrichten innerhalb eines Tages senden.

Bestätigte Nachrichten speichern

Wenn Sie die Aufbewahrungsdauer für Nachrichten festlegen, können Sie auch festlegen, ob Sie bestätigte Nachrichten aufbewahren möchten.

Mit der Option Bestätigte Nachrichten aufbewahren können Sie bestätigte Nachrichten aufbewahren. Nachrichten für die angegebene Nachrichtenaufbewahrungsdauer. Diese Option erhöht die Gebühren für die Speicherung von Nachrichten. Weitere Informationen finden Sie unter Speicherkosten.

Ablauffrist

Mit der Option Ablaufzeitraum können Sie Ihr Abo abzuschließen.

Abos ohne Aktivitäten oder Änderungen von Abonnenten die an die Abo-Properties vorgenommen wurden, ablaufen. Wenn Pub/Sub erkennt oder Abo-Properties aktualisieren, Die Zeit für das Löschen des Abos beginnt von vorn. Beispiele für Abonnentenaktivitäten Dazu gehören offene Verbindungen, aktive Pull- und erfolgreiche Push-Vorgänge.

Wenn Sie eine Ablauffrist angeben, muss der Wert länger sein als die im Feld Nachrichtenaufbewahrungsdauer.

Für die Option Ablaufzeitraum gelten folgende Werte:

  • Standardwert = 31 Tage
  • Mindestwert = 1 Tag

Um zu verhindern, dass ein Abo abläuft, legen Sie die Ablaufzeit auf never expire fest.

Bestätigungsfrist

Die Option Bestätigungsfrist gibt die ursprüngliche Frist an, nach der ein unbestätigte Nachricht erneut gesendet wird. Du kannst die Bestätigung verlängern Frist pro Nachricht durch Senden nachfolgender ModifyAckDeadline -Anfragen.

Für die Option Bestätigungsfrist gibt es folgende Werte:

  • Standardwert = 10 Sekunden
  • Mindestwert = 10 Sekunden
  • Höchstwert = 600 Sekunden

In einigen Fällen können Pub/Sub-Clientbibliotheken die Auslieferungsrate steuern und die Bestätigungsfrist dynamisch ändern. Dadurch kann die Nachricht vor der Bestätigung noch einmal gesendet werden. von Ihnen festgelegte Frist. Verwenden Sie minDurationPerAckExtension, um dieses Verhalten zu überschreiben. und maxDurationPerAckExtension. Weitere Informationen zur Verwendung dieser Werte finden Sie unter Unterstützung der genau einmaligen Zustellung in Clientbibliotheken.

Abo-Filter

Verwende die Option Abofilter, um einen String mit einem Filterausdruck. Wenn ein Abo einen Filter hat, stellt das Abo nur die Nachrichten zu die dem Filter entsprechen. Der Pub/Sub-Dienst bestätigt die Nachrichten, die nicht mit dem Filter übereinstimmen.

  • Sie können Nachrichten nach ihren Attributen filtern, aber nicht nach den Daten in der Nachricht.

  • Wenn kein Wert angegeben ist, werden Nachrichten und erhalten Abonnenten alle Nachrichten.

  • Filter können nach dem Anwenden nicht mehr geändert oder entfernt werden.

Wenn Sie Nachrichten aus einem Abo mit einem Filter erhalten, fallen keine Gebühren für ausgehenden Traffic für die von Pub/Sub angegebenen Nachrichten an. Für diese Nachrichten fallen Gebühren für die Nachrichtenzustellung und suchbezogene Speichergebühren an.

Weitere Informationen finden Sie unter Nachrichten aus einem Abo filtern.

Nachrichtenreihenfolge

Wenn für ein Abo die Nachrichtenreihenfolge aktiviert ist, wird der Abonnenten-Clients empfangen Nachrichten, die in derselben Region mit dem Reihenfolge, in der die Nachrichten vom Dienst empfangen wurden.

Bei der sortierten Zustellung werden Bestätigungen für spätere Nachrichten erst verarbeitet, wenn Bestätigungen für frühere Nachrichten verarbeitet wurden.

Die Publisher müssen Nachrichten mit einem Reihenfolgeschlüssel senden, Pub/Sub liefert Nachrichten in der richtigen Reihenfolge angezeigt.

Wenn nicht konfiguriert, ist Pub/Sub möglicherweise nicht Nachrichten in einer bestimmten Reihenfolge zuzustellen, auch wenn sie einen Reihenfolgeschlüssel haben.

Thema für unzustellbare Nachrichten

Wenn eine Nachricht nach einer bestimmten Nummer nicht zugestellt werden kann oder ein Abonnent die Nachricht nicht bestätigen kann, können Sie ein Thema für unzustellbare Nachrichten konfigurieren, in dem diese Nachrichten noch einmal veröffentlicht werden können.

Wenn Sie ein Thema für unzustellbare Nachrichten festlegen, können Sie auch die maximale Anzahl der Zustellungsversuche angeben. Im Folgenden finden Sie die Werte für die maximale Anzahl von Zustellungsversuchen für das Thema für unzustellbare Nachrichten:

  • Standardwert = 5 Zustellversuche
  • Mindestwert = 5 Zustellungsversuche
  • Höchstwert = 100 Zustellversuche

Wenn sich das Thema für unzustellbare Nachrichten in einem anderen Projekt als das Abo befindet, muss außerdem die Projekt-ID mit dem Thema für unzustellbare Nachrichten angeben.

Weitere Informationen finden Sie unter An Themen für unzustellbare Nachrichten weiterleiten.

Wiederholungsrichtlinie

Wenn die Bestätigungsfrist abläuft oder ein Abonnent mit negativer Bestätigung antwortet, kann Pub/Sub noch einmal senden. Dieser erneute Übermittlungsversuch wird als Wiederholungsrichtlinie des Abos bezeichnet.

Standardmäßig ist die Wiederholungsrichtlinie für ein Abo festgelegt auf verwenden Sie Sofort wiederholen. Bei dieser Option Pub/Sub sendet die Nachricht nach Ablauf der Bestätigungsfrist noch einmal abläuft oder ein Abonnent mit einer negativen Bestätigung antwortet.

Sie können den Wert auch auf Wiederholung nach exponentieller Backoff-Verzögerung setzen. In diesem Fall müssen Sie die maximalen und minimalen Backoff-Werte angeben.

Im Folgenden finden Sie einige Richtlinien zum Festlegen der Werte für Mindest-Backoff-Werte:

  • Wenn Sie den Maximalwert für die Backoff-Dauer festlegen, ist das der Standardwert für die Backoff-Dauer beträgt 10 Sekunden.

  • Wenn Sie den Mindestwert für die Backoff-Dauer festlegen, wird der Standardwert für beträgt die maximale Backoff-Dauer 600 Sekunden.

  • Sie können maximal 600 Sekunden festlegen.

Wiederholungsrichtlinie und Batch-Nachrichten

Wenn sich Nachrichten in einem Batch befinden, startet Pub/Sub die exponentielle Backoff, wenn eines der folgenden Ereignisse eintritt:

  • Der Abonnent sendet für jede Nachricht im Batch eine negative Bestätigung.

  • Die Bestätigungsfrist läuft ab.

Wiederholungsrichtlinie und Push-Abo

Wenn Sie Nachrichten von einem Push-Abo erhalten, sendet Pub/Sub Nachrichten nach dem Push-Backoff und nicht nach der exponentiellen Backoff-Dauer noch einmal. Wenn der Push-Backoff länger als die exponentielle Backoff-Dauer ist, sendet Pub/Sub nicht bestätigte Nachrichten nach dem Push-Backoff noch einmal.

Pull-Aboattribute

Beim Konfigurieren eines Pull-Abos können Sie Folgendes angeben: Eigenschaften.

Genau einmalige Zustellung

Genau einmalige Zustellung. Wenn festgelegt, erfüllt Pub/Sub genau einmalige Zustellung garantiert. Wenn keine Angabe gemacht wird, unterstützt das Abo mindestens einmalige Zustellung pro Nachricht.

Push-Aboeigenschaften

Beim Konfigurieren eines Push-Abos können Sie Folgendes angeben: Eigenschaften.

Endpunkte

Endpunkt-URL (erforderlich): Eine öffentlich zugängliche HTTPS-Adresse. Der Server für die Push-Übertragung Endpunkt muss ein gültiges SSL-Zertifikat haben, das von einer Zertifizierungsstelle signiert ist. Der Pub/Sub-Dienst sendet Nachrichten an Push-Endpunkte aus derselben Google Cloud-Region, in der der Pub/Sub-Dienst die Nachrichten speichert. Der Pub/Sub-Dienst sendet Nachrichten aus derselben Google Cloud-Region auf Best-Effort-Basis.

Pub/Sub erfordert für Push keinen Nachweis der Inhaberschaft mehr Abo-URL-Domains. Wenn Ihre Domain unerwartete POST-Anfragen erhält aus Pub/Sub verwenden, können Sie einen verdächtigen Missbrauch melden.

Authentifizierung

Authentifizierung aktivieren. Wenn diese Option aktiviert ist, enthalten Nachrichten, die von Pub/Sub an den Push-Endpunkt gesendet werden, einen Autorisierungsheader, damit der Endpunkt die Anfrage authentifizieren kann. Automatische Authentifizierung und Autorisierungsmechanismen sind für App Engine Standard- und Cloud Functions-Endpunkte verfügbar, die im selben Projekt wie das Abo gehostet werden.

Die Authentifizierungskonfiguration für ein authentifiziertes Push-Abo besteht aus einem vom Nutzer verwalteten Dienstkonto, und die Zielgruppenparameter, in einem create angegeben werden, Patchen oder ModifyPushConfig aufrufen. Sie müssen einem Dienst-Agent auch eine bestimmte Rolle zuweisen, wie in im nächsten Abschnitt.

  • Nutzerverwaltetes Dienstkonto (erforderlich). Das mit dem Push verknüpfte Dienstkonto Abo. Dieses Konto wird als email-Anforderung des generierten JSON-Webtokens (JWT) verwendet. Im Folgenden finden Sie eine Liste der Anforderungen für das Dienstkonto:

  • Zielgruppe: Ein einzelner String ohne Berücksichtigung der Groß- und Kleinschreibung, den der Webhook enthält verwendet, um die beabsichtigte Zielgruppe dieses bestimmten Tokens zu validieren.

  • Dienst-Agent (erforderlich).

    • Pub/Sub erstellt automatisch ein Dienstkonto für Sie mit dem Format service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com

    • Diesem Dienst-Agent muss die Berechtigung iam.serviceAccounts.getOpenIdToken (enthalten im roles/iam.serviceAccountTokenCreator Rolle), damit Pub/Sub JWT-Tokens für authentifizierte Push-Anfragen.

Entpacken der Nutzlast

Mit der Option Entpacken der Nutzlast aktivieren wird Pub/Sub entfernt. Nachrichten aller Metadaten der Nachricht mit Ausnahme der Nachrichtendaten. Mit Nutzlast werden die Nachrichtendaten direkt als HTTP-Text gesendet.

  • Metadaten schreiben Fügt zuvor entfernte Nachrichtenmetadaten wieder hinzu Anfrageheader.

BigQuery-Attribute

Wenn Sie als Abo-Zustellungstyp In BigQuery schreiben auswählen, können Sie die folgenden zusätzlichen Eigenschaften festlegen.

Schema des Themas verwenden

Mit dieser Option kann Pub/Sub das Schema des Pub/Sub-Themas an, Abo ist angehängt. Außerdem kann Pub/Sub schreibt die Felder in Nachrichten in den entsprechenden Spalten in der BigQuery-Tabelle.

Beachten Sie bei Verwendung dieser Option die folgenden zusätzlichen Anforderungen:

  • Die Felder im Schema des Themas und im BigQuery-Schema müssen dieselben Namen haben und ihre Typen müssen miteinander kompatibel sein.

  • Jedes optionale Feld im Schema des Themas muss ebenfalls optional im BigQuery-Schema.

  • Pflichtfelder im Schema des Themas müssen nicht im BigQuery-Schema erforderlich.

  • Wenn es BigQuery-Felder gibt, die in Schema des Themas werden diese BigQuery-Felder muss sich im Modus NULLABLE befinden.

  • Wenn das Schema des Themas zusätzliche Felder enthält, nicht im BigQuery-Schema vorhanden können gelöscht werden, wählen Sie die Option Unbekannte Felder löschen aus.

  • Sie können nur eine der Abo-Properties auswählen: Schema des Themas verwenden oder Tabellenschema verwenden.

Wenn Sie die Option Schema des Themas verwenden oder Tabellenschema verwenden nicht auswählen, dass die BigQuery-Tabelle eine Spalte mit dem Namen data Geben Sie BYTES, STRING oder JSON ein. Pub/Sub schreibt die Nachricht in diese BigQuery-Spalte.

Änderungen am Schema der Pub/Sub-Themen oder BigQuery-Tabellenschema tritt sofort mit Nachrichten in Kraft in die BigQuery-Tabelle geschrieben. Wenn zum Beispiel die Drop-down- die Option „Unbekannte Felder“ aktiviert ist und ein Feld in der Pub/Sub-Schema, aber nicht das BigQuery-Schema, Nachrichten, die in die BigQuery-Tabelle geschrieben wurden, enthalten möglicherweise nachdem es dem BigQuery-Schema hinzugefügt wurde. Schließlich Die Schemasynchronisierung und nachfolgende Nachrichten enthalten das Feld.

Wenn Sie die Option Schema des Themas verwenden für Ihre BigQuery-Datei verwenden können Sie auch die Vorteile der BigQuery-Änderung Data Capture (CDC). CDC aktualisiert Ihre BigQuery-Tabellen verarbeitet und Änderungen auf vorhandene Zeilen angewendet.

Weitere Informationen zu dieser Funktion finden Sie unter Tabellenaktualisierungen mit Change Data Capture streamen.

Informationen zur Verwendung dieses Features mit BigQuery-Abos Siehe BigQuery Change Data Capture.

Schema der Tabelle verwenden

Mit dieser Option kann Pub/Sub das Schema des BigQuery-Tabelle zum Schreiben der Felder einer JSON-Datei in die entsprechenden Spalten ein. Denken Sie bei Verwendung dieser Option daran, Prüfen Sie die folgenden zusätzlichen Anforderungen:

  • Veröffentlichte Nachrichten müssen im JSON-Format vorliegen.

  • Wenn das Thema des Abos ein Schema verknüpft hat, dann Die Eigenschaft für die Nachrichtencodierung muss auf JSON festgelegt sein.

  • Wenn es BigQuery-Felder gibt, die in müssen diese BigQuery-Felder im Modus NULLABLE sein.

  • Wenn die Nachrichten zusätzliche Felder enthalten, die in der und diese Felder können gelöscht werden, wählen Sie Unbekannte Felder löschen.

  • In der JSON-Nachricht die Werte DATE, DATETIME, TIME und TIMESTAMP müssen Ganzzahlen sein, die den unterstützten Darstellungen entsprechen.

  • In der JSON-Nachricht müssen die Werte NUMERIC und BIGNUMERIC in Bytes mit der Methode BigDecimalByteStringEncoder.

  • Sie können nur eine der Abo-Properties auswählen: Schema des Themas verwenden oder Tabellenschema verwenden.

Wenn Sie die Option Schema des Themas verwenden oder Tabellenschema verwenden nicht auswählen, dass die BigQuery-Tabelle eine Spalte mit dem Namen data Geben Sie BYTES, STRING oder JSON ein. Pub/Sub schreibt die Nachricht in diese BigQuery-Spalte.

Änderungen am BigQuery-Tabellenschema mit Nachrichten, die in die BigQuery-Tabelle geschrieben werden, sofort wirksam werden. Wenn beispielsweise die Option Unbekannte Felder löschen aktiviert ist und ein Feld die zwar in den Nachrichten vorhanden sind, aber nicht im BigQuery-Schema, Nachrichten, die in die BigQuery-Tabelle geschrieben wurden, enthalten möglicherweise nachdem es dem BigQuery-Schema hinzugefügt wurde. Schließlich Schema synchronisiert wird und nachfolgende Nachrichten das Feld enthalten.

Wenn Sie die Option Tabellenschema verwenden für Ihr BigQuery-Abo verwenden, auch Änderungsdatenerfassung (Change Data Capture, CDC) in BigQuery nutzen. CDC aktualisiert Ihre BigQuery-Tabellen, indem es Änderungen verarbeitet und auf vorhandene angewendet Zeilen.

Weitere Informationen zu dieser Funktion finden Sie unter Tabellenaktualisierungen mit Change Data Capture streamen.

Informationen zur Verwendung dieser Funktion mit BigQuery-Abos finden Sie unter Änderungsdatenerfassung in BigQuery.

Unbekannte Felder löschen

Diese Option wird mit dem Feld Schema des Themas verwenden oder Tabellenschema verwenden verwendet. Option. Mit dieser Option kann Pub/Sub jedes im Thema vorhandene Feld löschen Schema oder Nachricht, aber nicht im BigQuery-Schema. Ohne Drop unbekannt Felder festgelegt sind, werden Nachrichten mit zusätzlichen Feldern in BigQuery und verbleiben im Rückstand des Abos. Die in einem Fehlerstatus endet.

Metadaten schreiben

Mit dieser Option kann Pub/Sub Schreiben Sie die Metadaten jeder Nachricht in zusätzliche Spalten im BigQuery-Tabelle. Andernfalls sind die Metadaten nicht in die BigQuery-Tabelle geschrieben.

Wenn Sie die Option Metadaten schreiben auswählen, muss der Die BigQuery-Tabelle enthält die in der folgenden Tabelle beschriebenen Felder.

Wenn Sie die Option Metadaten schreiben nicht auswählen, benötigt die BigQuery-Tabelle nur das Feld data, es sei denn, use_topic_schema ist „wahr“. Wenn Sie sowohl Metadaten schreiben als auch Schemaoptionen des Themas verwenden, muss das Schema des Themas dürfen keine Felder enthalten, deren Namen mit denen der Metadatenparameter übereinstimmen. Diese Einschränkung gilt auch für Camelcase-Versionen dieser Snake-Case-Parameter.

Parameter
subscription_name

STRING

Name eines Abos.

message_id

STRING

ID einer Nachricht

publish_time

TIMESTAMP

Der Zeitpunkt der Veröffentlichung einer Nachricht.

data

BYTES, STRING oder JSON

Der Nachrichtentext.

Das Feld data ist für alle Ziele erforderlich BigQuery-Tabellen, die nicht die Option Verwenden Schema des Themas oder Tabellenschema verwenden. Wenn die vom Typ JSON ist, muss der Nachrichtentext gültigen JSON-Code.

attributes

STRING oder JSON

Ein JSON-Objekt, das alle Nachrichtenattribute enthält. Außerdem enthält zusätzliche Felder, die Teil des Pub/Sub-Nachricht mit dem Schlüssel falls vorhanden.

Cloud Storage-Attribute

Wenn Sie als Zustellungstyp für das Abo In Cloud Storage schreiben auswählen, gilt Folgendes: können Sie die folgenden zusätzlichen Eigenschaften festlegen.

Bucket-Name

Ein Cloud Storage-Bucket muss bereits vorhanden sein, bevor Sie einen erstellen Cloud Storage-Abo.

Die Nachrichten werden in Batches gesendet und im Cloud Storage-Bucket gespeichert. Ein einzelner Batch oder eine einzelne Datei wird als Objekt gespeichert. im Bucket.

Der Cloud Storage-Bucket muss Anforderer bezahlt deaktiviert.

Informationen zum Erstellen eines Cloud Storage-Bucket finden Sie unter Buckets erstellen

Präfix des Dateinamens, Suffix und Datum/Uhrzeit

Die von Cloud Storage generierten Cloud Storage-Ausgabedateien Abos werden als Objekte im Cloud Storage-Bucket gespeichert. Name des im Cloud Storage-Bucket gespeicherten Objekts hat Folgendes: Format: <file-prefix><UTC-date-time>_<uuid><file-suffix>.

Die folgende Liste enthält Details zum Dateiformat und zu den Feldern, die Sie anpassen können:

  • <file-prefix> ist das benutzerdefinierte Dateinamenpräfix. Dieses Feld ist optional.

  • <UTC-date-time> ist ein anpassbarer, automatisch generierter String basierend auf der Zeit wird das Objekt erstellt.

  • <uuid> ist ein automatisch generierter zufälliger String für das Objekt.

  • <file-suffix> ist das benutzerdefinierte Suffix des Dateinamens. Dieses Feld ist optional. Die Das Suffix des Dateinamens darf nicht auf „/“ enden.

  • Sie können das Präfix und Suffix des Dateinamens ändern:

    • Wenn beispielsweise der Wert des Dateinamenpräfixes prod_ ist und der Wert das Suffix des Dateinamens _archive lautet, ist ein Beispielobjektname prod_2023-09-25T04:10:00+00:00_uN1QuE_archive

    • Wenn Sie kein Präfix und Suffix des Dateinamens angeben, wird der gespeicherte Objektname im Cloud Storage-Bucket hat folgendes Format: <UTC-date-time>_<uuid>

    • Die Anforderungen für die Benennung von Cloud Storage-Objekten gelten auch für den Dateinamen Präfix und Suffix. Weitere Informationen finden Sie unter Informationen zu Cloud Storage-Objekten

  • Sie können ändern, wie Datum und Uhrzeit im Dateinamen angezeigt werden:

    • Erforderliche Datum/Uhrzeit-Matcher, die Sie nur einmal verwenden können: Jahr (YYYY oder YY), Monat (MM), Tag (DD), Stunde (hh), Minute (mm), Sekunde (ss). Beispielsweise ist YY-YYYY oder MMM ungültig.

    • Optionale Matchers, die Sie nur einmal verwenden können: Datum/Uhrzeit-Trennzeichen (T) und und Zeitzonenverschiebung (Z oder +00:00).

    • Optionale Elemente, die mehrmals verwendet werden können: Bindestrich (-), Unterstrich (_), Doppelpunkt (:) und Schrägstrich (/).

    • Wenn der Wert des Datums-/Uhrzeitformats für Dateinamen beispielsweise YYYY-MM-DD/hh_mm_ssZ ist ein Beispielobjektname prod_2023-09-25/04_10_00Z_uNiQuE_archive.

    • Wenn das Datetime-Format des Dateinamens mit einem Zeichen endet, das kein Matcher ist, ersetzt dieses Zeichen das Trennzeichen zwischen <UTC-date-time> und <uuid>. Wenn der Wert des Datums-/Uhrzeitformats für den Dateinamen beispielsweise YYYY-MM-DDThh_mm_ss- ist ein Beispielobjektname prod_2023-09-25T04_10_00-uNiQuE_archive.

Batchverarbeitung von Dateien

Mit Cloud Storage-Abos können Sie entscheiden, wann Sie Eine neue Ausgabedatei, die als Objekt in Cloud Storage gespeichert wird Bucket. Pub/Sub schreibt eine Ausgabedatei, wenn einer der bestimmte Batching-Bedingungen erfüllt. Im Folgenden sind die Cloud Storage-Batching-Bedingungen:

  • Maximale Dauer von Storage-Batch. Dies ist eine erforderliche Einstellung. Die Das Cloud Storage-Abo schreibt eine neue Ausgabedatei, wenn der angegebene Wert für die maximale Dauer wurde überschritten. Wenn Sie keine wenn Sie den Wert angeben, wird ein Standardwert von 5 Minuten angewendet. Folgende Werte sind für die maximale Dauer zulässig:

    • Mindestwert = 1 Minute
    • Standardwert = 5 Minuten
    • Höchstwert = 10 Minuten
  • Maximale Anzahl von Storage-Batchbyte. Diese Einstellung ist optional. Die Das Cloud Storage-Abo schreibt eine neue Ausgabedatei, der angegebene Wert der maximalen Byte wurde überschritten. Im Folgenden finden Sie Werte für maximale Byte:

    • Mindestwert = 1 KB
    • Maximalwert = 10 GiB

Sie können die maximale Dauer z. B. auf 6 Minuten Max. Byte als 2 GB. Wenn in der 4. Minute die Ausgabedatei einen Dateigröße von 2 GB abgeschlossen ist, schließt Pub/Sub die vorherige Datei in eine neue Datei schreiben.

Ein Cloud Storage-Abo schreibt möglicherweise in mehrere Dateien Cloud Storage-Bucket gleichzeitig ausführen. Wenn Sie Ihr Abo, bei dem jede sechste Minute eine neue Datei erstellt wird, Alle 6 Minuten werden mehrere Cloud Storage-Dateien erstellt.

Es kann vorkommen, dass Pub/Sub vor dem in den Bedingungen für die Datei-Batchverarbeitung konfigurierten Zeitpunkt liegt. Eine Datei kann auch den Wert für die maximale Bytezahl überschreiten, wenn das Abo empfängt Nachrichten, die größer sind als der Wert für die maximale Anzahl von Byte.

Dateiformat

Beim Erstellen eines Cloud Storage-Abos können Sie das Format der Ausgabedateien, die in einem Cloud Storage-Bucket als Text oder Avro.

  • Text: Die Nachrichten werden als Nur-Text gespeichert. Ein Zeilenumbruchzeichen trennt eine Nachricht von der vorherigen Nachricht in der Datei. Nur Nachricht Nutzlasten gespeichert werden, nicht Attribute oder andere Metadaten.

  • Avro: Die Nachrichten werden unter Apache Avro-Binärformat. Wenn Sie Avro auswählen, können Sie die folgenden zusätzlichen Eigenschaften aktivieren:

    • Write metadata (Metadaten schreiben): Mit dieser Option können Sie die Metadaten der Nachricht zusammen mit der Nachricht speichern. Metadaten wie subscription_name, message_id, publish_time und attributes werden in Felder der obersten Ebene im Avro-Ausgabeobjekt geschrieben, während alle anderen Nachrichtenattribute mit Ausnahme von Daten (z. B. ein order_key, falls vorhanden) als Einträge in die attributes-Zuordnung hinzugefügt werden.

      Wenn Metadaten schreiben deaktiviert ist, wird nur die Nachrichtennutzlast in das Avro-Ausgabeobjekt geschrieben. Hier ist das Avro-Schema für die Ausgabemeldungen mit deaktiviertem Schreibmetadaten:

      {
        "type": "record",
        "namespace": "com.google.pubsub",
        "name": "PubsubMessage",
        "fields": [
          { "name": "data", "type": "bytes" }
        ]
      }
      

      Hier ist das Avro-Schema für die Ausgabemeldungen mit aktiviertem Schreibmetadaten:

      {
        "type": "record",
        "namespace": "com.google.pubsub",
        "name": "PubsubMessageWithMetadata",
        "fields": [
          { "name": "subscription_name", "type": "string" },
          { "name": "message_id", "type": "string"  },
          { "name": "publish_time", "type": {
              "type": "long",
              "logicalType": "timestamp-micros"
            }
          },
          { "name": "attributes", "type": { "type": "map", "values": "string" } },
          { "name": "data", "type": "bytes" }
        ]
      }
      
    • Use topic schema (Schema des Themas verwenden): Mit dieser Option kann Pub/Sub die Schema des Pub/Sub-Themas, zu dem Das Abo wird beim Schreiben von Avro-Dateien angehängt.

      Beachten Sie bei Verwendung dieser Option die folgenden zusätzlichen Anforderungen:

      • Das Schema des Themas muss im Apache Avro-Format vorliegen.

      • Wenn sowohl Themaschema verwenden als auch Metadaten schreiben aktiviert sind, muss das Schema des Themas im Stammverzeichnis ein Record-Objekt haben. Pub/Sub erweitert die Felderliste des Eintrags um die Metadatenfelder. Der Datensatz darf daher keine Felder mit demselben Namen wie die Metadatenfelder (subscription_name, message_id, publish_time oder attributes) enthalten.

Nächste Schritte