In diesem Dokument wird beschrieben, wie Sie ein BigQuery-Abo erstellen. Sie können ein BigQuery-Abo über die Google Cloud Console, die Google Cloud CLI, die Clientbibliothek oder die Pub/Sub API erstellen.
Hinweise
Bevor Sie dieses Dokument lesen, sollten Sie mit Folgendem vertraut sein:
Der Workflow für BigQuery-Abos
Informationen zum Konfigurieren eines Themas für unzustellbare Nachrichten, um Nachrichtenfehler zu behandeln.
Sie sollten mit Pub/Sub und BigQuery vertraut sein und die folgenden Voraussetzungen erfüllen, bevor Sie ein BigQuery-Abo erstellen:
Es gibt eine BigQuery-Tabelle. Alternativ können Sie eine ID erstellen, wenn Sie das BigQuery-Abo erstellen, wie in den folgenden Abschnitten dieses Dokuments beschrieben.
Kompatibilität zwischen dem Schema des Pub/Sub-Themas und der BigQuery-Tabelle Wenn Sie eine nicht kompatible BigQuery-Tabelle hinzufügen, erhalten Sie eine entsprechende Fehlermeldung. Weitere Informationen finden Sie unter Schemakompatibilität.
Erforderliche Rollen und Berechtigungen
Im Folgenden finden Sie eine Liste von Richtlinien zu Rollen und Berechtigungen:
Wenn Sie ein Abo erstellen möchten, müssen Sie die Zugriffssteuerung auf Projektebene konfigurieren.
Sie benötigen auch Berechtigungen auf Ressourcenebene, wenn sich Ihre Abos und Themen in verschiedenen Projekten befinden, wie weiter unten in diesem Abschnitt erläutert.
Um ein BigQuery-Abo zu erstellen, muss entweder der Pub/Sub-Dienstagent oder ein benutzerdefiniertes Dienstkonto die Berechtigung zum Schreiben in die entsprechende BigQuery-Tabelle haben. Weitere Informationen zum Gewähren dieser Berechtigungen finden Sie im nächsten Abschnitt dieses Dokuments.
Sie können ein BigQuery-Abo in einem Projekt so konfigurieren, dass es in eine BigQuery-Tabelle in einem anderen Projekt schreibt.
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub-Editor (roles/pubsub.editor
) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von BigQuery-Abos benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von BigQuery-Abos erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen von BigQuery-Abos erforderlich:
-
Daten aus einem Abo abrufen:
pubsub.subscriptions.consume
-
So erstellst du ein Abo:
pubsub.subscriptions.create
-
So löschen Sie ein Abo:
pubsub.subscriptions.delete
-
Abo abschließen:
pubsub.subscriptions.get
-
Abo auflisten:
pubsub.subscriptions.list
-
Abo aktualisieren:
pubsub.subscriptions.update
-
So hängen Sie ein Abo an ein Thema an:
pubsub.topics.attachSubscription
-
Rufen Sie die IAM-Richtlinie für ein Abo ab:
pubsub.subscriptions.getIamPolicy
-
Konfigurieren Sie die IAM-Richtlinie für ein Abo:
pubsub.subscriptions.setIamPolicy
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Damit ein Nutzer in einem Projekt ein BigQuery-Abo in einem anderen Projekt erstellen kann, müssen Sie ihm in beiden Projekten die Rolle „Pub/Sub-Bearbeiter“ (roles/pubsub.editor
) gewähren. Dadurch erhalten Sie die erforderlichen Berechtigungen, um das neue BigQuery-Abo zu erstellen und an das ursprüngliche Thema anzuhängen. Mit der Rolle „Pub/Sub-Bearbeiter“ (roles/pubsub.editor
) für das Thema können Sie dem Thema auch BigQuery-Abos in einem anderen Projekt zuordnen.
Dienstkonten Rollen zuweisen
Einige Dienste haben Google Cloud verwaltete Dienstkonten Google Cloud, mit denen die Dienste auf Ihre Ressourcen zugreifen können. Diese Dienstkonten werden als Dienst-Agents bezeichnet. Pub/Sub erstellt und verwaltet für jedes Projekt einen Dienst-Agenten im Format service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
.
Sie können dem Pub/Sub-Dienstagenten oder einem benutzerdefinierten Dienstkonto die Berechtigung zum Schreiben in die BigQuery-Tabelle erteilen.
Wenn Sie dem Pub/Sub-Dienst-Agent die Berechtigung erteilen, kann jeder Nutzer, der berechtigt ist, ein Abo in Ihrem Projekt zu erstellen, in die BigQuery-Tabelle schreiben. Wenn Sie detailliertere Berechtigungen zum Schreiben in die BigQuery-Tabelle gewähren möchten, konfigurieren Sie stattdessen ein benutzerdefiniertes Dienstkonto.
Weitere Informationen zu IAM in BigQuery finden Sie unter BigQuery-Rollen und ‑Berechtigungen.
Dem Pub/Sub-Dienst-Agent BigQuery-Rollen zuweisen
Wenn Sie ein BigQuery-Abo mit dem Pub/Sub-Dienstagenten erstellen möchten, muss er zum Schreiben in die entsprechende BigQuery-Tabelle und zum Lesen der Tabellenmetadaten berechtigt sein.
Weisen Sie dem Pub/Sub-Dienst-Agent die Rolle „BigQuery-Datenbearbeiter“ (roles/bigquery.dataEditor
) zu. Sie können die Berechtigung für eine einzelne Tabelle oder für das gesamte Projekt gewähren.
Tabelle
Rufen Sie in der Google Cloud Console BigQuery Studio auf.
Geben Sie im Suchfeld Nach Name und Label filtern den Namen der Tabelle ein und drücken Sie die Eingabetaste.
Klicken Sie auf die Tabelle, für die Sie die Berechtigung gewähren möchten.
Wählen Sie für die Tabelle
> Weitere Aktionen > Freigeben > Berechtigungen aus.Alternativ können Sie auf die Tabelle und dann auf der Hauptseite auf Freigabe > Berechtigungen klicken.
Das Fenster Freigabeberechtigungen wird geöffnet.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie unter Principals hinzufügen den Namen Ihres Pub/Sub-Dienst-Agents für das Projekt ein, das das Abo enthält. Der Dienst-Agent hat das Format
service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
. Bei einem Projekt mitproject-number=112233445566
hat der Dienst-Agent beispielsweise das Formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
BigQuery
ein und wählen Sie die Rolle BigQuery-Datenbearbeiter aus.Klicken Sie auf Speichern.
Projekt
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres Pub/Sub-Dienst-Agents ein. Der Dienst-Agent hat das Format
service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
. Bei einem Projekt mitproject-number=112233445566
hat der Dienst-Agent beispielsweise das Formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Klicken Sie im Bereich Rollen zuweisen auf Weitere Rolle hinzufügen.
Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
BigQuery
ein und wählen Sie die Rolle BigQuery-Datenbearbeiter aus.Klicken Sie auf Speichern.
BigQuery-Rollen einem benutzerdefinierten Dienstkonto zuweisen
Wenn Sie ein benutzerdefiniertes Dienstkonto zum Schreiben in eine BigQuery-Tabelle verwenden möchten, müssen Sie die folgenden Berechtigungen festlegen:
- Das benutzerdefinierte Dienstkonto muss die Berechtigung zum Schreiben in die jeweilige BigQuery-Tabelle und zum Lesen der Tabellenmetadaten haben.
- Der Pub/Sub-Dienst-Agent muss die Berechtigung
iam.serviceAccounts.getAccessToken
für das benutzerdefinierte Dienstkonto haben. - Der Nutzer, der das Abo erstellt, muss die Berechtigung
iam.serviceAccounts.actAs
für das benutzerdefinierte Dienstkonto haben.
So erstellen Sie das Dienstkonto und gewähren Berechtigungen:
Erstellen Sie das benutzerdefinierte Dienstkonto. Das Dienstkonto muss sich im selben Projekt wie das Abo befinden.
Weisen Sie dem benutzerdefinierten Dienstkonto die Rolle „BigQuery-Datenbearbeiter“ (
roles/bigquery.dataEditor
) zu.Sie können die Berechtigung für das Dienstkonto für eine einzelne Tabelle im Projekt oder für alle Tabellen im Projekt gewähren. Weitere Informationen finden Sie im entsprechenden Abschnitt des Artikels BigQuery-Rollen dem Pub/Sub-Dienst-Agent zuweisen. Ersetzen Sie in der Anleitung die E-Mail-Adresse des Pub/Sub-Dienst-Agents durch die E-Mail-Adresse des benutzerdefinierten Dienstkontos.
Weisen Sie dem Pub/Sub-Dienstmitarbeiter die Berechtigung
iam.serviceAccounts.getAccessToken
für das benutzerdefinierte Dienstkonto oder für alle Dienstkonten im Projekt zu. Sie können diese Berechtigung erteilen, indem Sie dem Pub/Sub-Dienst-Agent die Rolleroles/iam.serviceAccountTokenCreator
zuweisen.Wählen Sie je nach Ihren Anforderungen die geeignete Methode aus.
Dienstkonto
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Geben Sie den Namen des benutzerdefinierten Dienstkontos in das Feld Filter ein.
Wählen Sie das Dienstkonto aus der Liste aus.
Klicken Sie auf Hauptkonten mit Zugriff.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres Pub/Sub-Dienstmitarbeiters für das Projekt mit dem Abo ein. Der Dienst-Agent hat das Format
service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
. Bei einem Projekt mitproject-number=112233445566
hat der Dienst-Agent beispielsweise das Formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Service Account
ein und wählen Sie die Rolle Ersteller von Dienstkonto-Tokens aus.Klicken Sie auf Speichern.
Projekt
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Abschnitt Hauptkonten hinzufügen den Namen Ihres benutzerdefinierten Dienstkontos ein.
Klicken Sie im Bereich Rollen zuweisen auf Weitere Rolle hinzufügen.
Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Service Account
ein und wählen Sie die Rolle Ersteller von Dienstkonto-Tokens aus.Klicken Sie auf Speichern.
Wenn Sie das benutzerdefinierte Dienstkonto erstellt haben, sollten Sie bereits die erforderliche iam.serviceAccounts.actAs
-Berechtigung haben. Wenn Sie einer anderen Person die Berechtigung für das Dienstkonto erteilen möchten, gehen Sie so vor:
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Geben Sie den Namen des benutzerdefinierten Dienstkontos in das Feld Filter ein.
Wählen Sie das Dienstkonto aus der Liste aus.
Klicken Sie auf Hauptkonten mit Zugriff.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Bereich Hauptkonten hinzufügen den Namen des Kontos ein, dem Sie Zugriff gewähren möchten.
Geben Sie im Drop-down-Menü Rolle auswählen die Zahl
Service Account
ein und wählen Sie die Rolle Dienstkontonutzer aus.Wenn es sich bei Ihrer BigQuery-Tabelle um eine Apache Iceberg-Tabelle handelt, gewähren Sie dem Pub/Sub-Dienstkonto außerdem die Rolle Storage-Administrator (
roles/storage.admin
), um auf den Cloud Storage-Bucket zuzugreifen.Klicken Sie auf Speichern.
Eigenschaften von BigQuery-Abos
Wenn Sie ein BigQuery-Abo konfigurieren, können Sie die folgenden Eigenschaften angeben.
Allgemeine Eigenschaften
Weitere Informationen zu den allgemeinen Aboeigenschaften, die Sie für alle Abos festlegen können
Schema des Themas verwenden
Mit dieser Option kann Pub/Sub das Schema des Pub/Sub-Themas verwenden, an das das Abo angehängt ist. Außerdem schreibt Pub/Sub die Felder in Nachrichten in die entsprechenden Spalten der BigQuery-Tabelle.
Beachten Sie bei Verwendung dieser Option die folgenden zusätzlichen Anforderungen:
Die Felder im Themaschema und im BigQuery-Schema müssen dieselben Namen haben und ihre Typen müssen miteinander kompatibel sein.
Alle optionalen Felder im Schema des Themas müssen auch im BigQuery-Schema optional sein.
Erforderliche Felder im Themaschema müssen nicht im BigQuery-Schema erforderlich sein.
Wenn es BigQuery-Felder gibt, die nicht im Themaschema vorhanden sind, müssen diese BigQuery-Felder im Modus
NULLABLE
sein.Wenn das Themaschema zusätzliche Felder enthält, die nicht im BigQuery-Schema vorhanden sind und gelöscht werden können, wählen Sie die Option Unbekannte Felder löschen aus.
Sie können nur eine der Aboeigenschaften auswählen: Themaschema verwenden oder Tabellenschema verwenden.
Wenn Sie die Option Schema des Themas verwenden oder Tabellenschema verwenden nicht auswählen, muss die BigQuery-Tabelle eine Spalte namens data
vom Typ BYTES
, STRING
oder JSON
haben. Pub/Sub schreibt die Nachricht in diese BigQuery-Spalte.
Änderungen am Pub/Sub-Themenschema oder am BigQuery-Tabellenschema werden möglicherweise nicht sofort wirksam, wenn Nachrichten in die BigQuery-Tabelle geschrieben werden. Wenn beispielsweise die Option Unbekannte Felder löschen aktiviert ist und ein Feld im Pub/Sub-Schema, aber nicht im BigQuery-Schema vorhanden ist, enthalten Nachrichten, die in die BigQuery-Tabelle geschrieben werden, das Feld möglicherweise auch dann nicht, wenn es dem BigQuery-Schema hinzugefügt wurde. Irgendwann werden die Schemas synchronisiert und nachfolgende Nachrichten enthalten das Feld.
Wenn Sie die Option Themenschema verwenden für Ihr BigQuery-Abo verwenden, können Sie auch BigQuery Change Data Capture (CDC) nutzen. CDC aktualisiert Ihre BigQuery-Tabellen durch Verarbeitung und Anwendung von Änderungen auf vorhandene 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 BigQuery-Change Data Capture.
Schema der Tabelle verwenden
Mit dieser Option kann Pub/Sub das Schema der BigQuery-Tabelle verwenden, um die Felder einer JSON-Nachricht in die entsprechenden Spalten zu schreiben. Beachten Sie bei Verwendung dieser Option die folgenden zusätzlichen Anforderungen:
Die Namen der einzelnen Spalten in der BigQuery-Tabelle dürfen nur Buchstaben (a–z, A–Z), Ziffern (0–9) oder Unterstriche (_) enthalten.
Veröffentlichte Nachrichten müssen im JSON-Format vorliegen.
Die folgenden JSON-Konvertierungen werden unterstützt:
JSON-Typ BigQuery-Datentyp string
NUMERIC
,BIGNUMERIC
,DATE
,TIME
,DATETIME
oderTIMESTAMP
number
NUMERIC
,BIGNUMERIC
,DATE
,TIME
,DATETIME
oderTIMESTAMP
- Wenn Sie
number
bisDATE
,DATETIME
,TIME
oderTIMESTAMP
-Conversions verwenden, muss die Zahl den unterstützten Darstellungen entsprechen. - Bei der Umwandlung von
number
inNUMERIC
oderBIGNUMERIC
sind Genauigkeit und Wertebereich auf die Werte beschränkt, die vom IEEE 754-Standard für Gleitkommaarithmetik akzeptiert werden. Wenn Sie eine hohe Genauigkeit oder einen größeren Wertebereich benötigen, verwenden Sie stattdessenstring
bisNUMERIC
oderBIGNUMERIC
-Conversions. - Bei der Verwendung von
string
- bisNUMERIC
- oderBIGNUMERIC
-Konvertierungen geht Pub/Sub davon aus, dass der String eine für Menschen lesbare Zahl ist (z.B."123.124"
). Wenn die Verarbeitung des Strings als für Menschen lesbare Zahl fehlschlägt, behandelt Pub/Sub den String als mit dem BigDecimalByteStringEncoder codierte Bytes.
- Wenn Sie
Wenn dem Thema des Abos ein Schema zugewiesen ist, muss die Eigenschaft „Nachrichtencodierung“ auf
JSON
festgelegt sein.Wenn BigQuery-Felder vorhanden sind, die nicht in den Nachrichten enthalten sind, müssen diese BigQuery-Felder sich im Modus
NULLABLE
befinden.Wenn die Nachrichten zusätzliche Felder enthalten, die nicht im BigQuery-Schema vorhanden sind und gelöscht werden können, wählen Sie die Option Unbekannte Felder löschen aus.
Sie können nur eine der Aboeigenschaften auswählen: Themaschema verwenden oder Tabellenschema verwenden.
Wenn Sie die Option Schema des Themas verwenden oder Tabellenschema verwenden nicht auswählen, muss die BigQuery-Tabelle eine Spalte namens data
vom Typ BYTES
, STRING
oder JSON
haben. Pub/Sub schreibt die Nachricht in diese BigQuery-Spalte.
Änderungen am BigQuery-Tabellenschema werden möglicherweise nicht sofort für Nachrichten übernommen, die in die BigQuery-Tabelle geschrieben werden. Wenn beispielsweise die Option Unbekannte Felder löschen aktiviert ist und ein Feld in den Nachrichten, aber nicht im BigQuery-Schema vorhanden ist, enthalten Nachrichten, die in die BigQuery-Tabelle geschrieben werden, das Feld möglicherweise auch dann nicht, wenn es dem BigQuery-Schema hinzugefügt wurde. Nach einiger Zeit wird das Schema synchronisiert und nachfolgende Nachrichten enthalten das Feld.
Wenn Sie für Ihr BigQuery-Abo die Option Tabellenschema verwenden verwenden, können Sie auch BigQuery Change Data Capture (CDC) nutzen. CDC aktualisiert Ihre BigQuery-Tabellen durch Verarbeitung und Anwendung von Änderungen auf vorhandene 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 BigQuery-Change Data Capture.
Unbekannte Felder löschen
Diese Option wird mit der Option Schema des Themas verwenden oder Schema der Tabelle verwenden verwendet. Wenn diese Option aktiviert ist, kann Pub/Sub alle Felder löschen, die im Schema des Themas oder in der Nachricht, aber nicht im BigQuery-Schema vorhanden sind. Felder, die nicht Teil des BigQuery-Schemas sind, werden beim Schreiben der Nachricht in die BigQuery-Tabelle gelöscht.
Wenn Unbekannte Felder löschen nicht festgelegt ist, werden Nachrichten mit zusätzlichen Feldern nicht in BigQuery geschrieben und verbleiben im Rückstand des Abos, es sei denn, Sie konfigurieren ein Thema für unzustellbare Nachrichten.
Die Einstellung Unbekannte Felder löschen hat keine Auswirkungen auf Felder, die weder im Pub/Sub-Thema-Schema noch im BigQuery-Tabellenschema definiert sind. In diesem Fall wird eine gültige Pub/Sub-Nachricht an das Abo gesendet. Da in BigQuery jedoch keine Spalten für diese zusätzlichen Felder definiert sind, werden sie beim Schreiben in BigQuery gelöscht. Um dieses Verhalten zu vermeiden, müssen alle Felder in der Pub/Sub-Nachricht auch im BigQuery-Tabellenschema enthalten sein.
Das Verhalten bei zusätzlichen Feldern kann auch vom verwendeten Schematyp (Avro, Protocol Buffer) und der Codierung (JSON, Binär) abhängen. Informationen dazu, wie sich diese Faktoren auf die Verarbeitung zusätzlicher Felder auswirken, finden Sie in der Dokumentation für Ihren spezifischen Schematyp und Ihre spezifische Codierung.
Metadaten schreiben
Mit dieser Option kann Pub/Sub die Metadaten jeder Nachricht in zusätzliche Spalten in der BigQuery-Tabelle schreiben. Andernfalls werden die Metadaten nicht in die BigQuery-Tabelle geschrieben.
Wenn Sie die Option Metadaten schreiben auswählen, muss die BigQuery-Tabelle die in der folgenden Tabelle beschriebenen Felder enthalten.
Wenn Sie die Option Metadaten schreiben nicht auswählen, ist für die BigQuery-Tabelle nur das Feld data
erforderlich, es sei denn, use_topic_schema
ist wahr. Wenn Sie sowohl die Option Metadaten schreiben als auch Schema des Themas verwenden auswählen, darf das Schema des Themas keine Felder mit Namen enthalten, die mit denen der Metadatenparameter übereinstimmen.
Diese Einschränkung gilt auch für CamelCase-Versionen dieser 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 |
attributes |
STRING oder JSON Ein JSON-Objekt mit allen Nachrichtenattributen. Außerdem enthält es zusätzliche Felder, die Teil der Pub/Sub-Nachricht sind, einschließlich des Sortierungsschlüssels, sofern vorhanden. |
BigQuery-Abo erstellen
Die folgenden Beispiele zeigen, wie Sie ein Abo mit BigQuery-Zustellung erstellen.
Console
- Rufen Sie in der Google Cloud Console die Seite Abos auf.
- Klicken Sie auf Abo erstellen.
- Geben Sie im Feld Abo-ID einen Namen ein.
Informationen zum Benennen eines Abos finden Sie unter Richtlinien für die Benennung eines Themas oder Abos.
- Wählen Sie im Drop-down-Menü ein Thema aus oder erstellen Sie ein Thema. Das Abo erhält Nachrichten aus dem Thema.
- Wählen Sie als Zustellungstyp In BigQuery schreiben aus.
- Wählen Sie das Projekt für die BigQuery-Tabelle aus.
- Wählen Sie einen vorhandenen Datensatz aus oder erstellen Sie einen neuen.
Weitere Informationen zum Erstellen eines Datasets finden Sie unter Datasets erstellen.
- Wählen Sie eine vorhandene Tabelle aus oder erstellen Sie eine neue.
Informationen zum Erstellen von Tabellen finden Sie unter Tabellen erstellen.
- Wir empfehlen dringend, Dead Letter-Funktionen zu aktivieren, um Fehler bei der Zustellung von Nachrichten zu behandeln.
Weitere Informationen finden Sie unter Themen für unzustellbare Nachrichten.
- Klicken Sie auf Erstellen.
Sie können ein Abo auch auf der Seite Themen erstellen. Diese Verknüpfung ist nützlich, um Themen mit Abos zu verknüpfen.
- Rufen Sie in der Google Cloud Console die Seite Themen auf.
- Klicken Sie neben dem Thema, für das Sie ein Abo erstellen möchten, auf more_vert.
- Wählen Sie im Kontextmenü Abo erstellen aus.
- Wählen Sie als Zustellungstyp In BigQuery schreiben aus.
- Wählen Sie das Projekt für die BigQuery-Tabelle aus.
- Wählen Sie einen vorhandenen Datensatz aus oder erstellen Sie einen neuen.
Weitere Informationen zum Erstellen eines Datasets finden Sie unter Datasets erstellen.
- Wählen Sie eine vorhandene Tabelle aus oder erstellen Sie eine neue.
Informationen zum Erstellen eines Datasets finden Sie unter Tabellen erstellen.
- Wir empfehlen dringend, Dead Letter-Funktionen zu aktivieren, um Fehler bei der Zustellung von Nachrichten zu behandeln.
Weitere Informationen finden Sie unter Themen für unzustellbare Nachrichten.
- Klicken Sie auf Erstellen.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Verwenden Sie den Befehl
gcloud pubsub subscriptions create
, um ein Pub/Sub-Abo zu erstellen:gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --bigquery-table=PROJECT_ID:DATASET_ID.TABLE_ID
Wenn Sie ein benutzerdefiniertes Dienstkonto verwenden möchten, geben Sie es als zusätzliches Argument an:
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --bigquery-table=PROJECT_ID:DATASET_ID.TABLE_ID --bigquery-service-account-email=SERVICE_ACCOUNT_NAME
Ersetzen Sie Folgendes:
- SUBSCRIPTION_ID: Gibt die ID des Abos an.
- TOPIC_ID: Gibt die ID des Themas an. Für das Thema ist ein Schema erforderlich.
- PROJECT_ID: Gibt die ID des Projekts an.
- DATASET_ID: Gibt die ID eines vorhandenen Datasets an. Weitere Informationen zum Erstellen eines Datensatzes finden Sie unter Datasets erstellen.
- TABLE_ID: Gibt die ID einer vorhandenen Tabelle an. Die Tabelle benötigt ein Feld vom Typ data, wenn Ihr Thema kein Schema hat. Informationen zum Erstellen einer Tabelle finden Sie unter Leere Tabelle mit einer Schemadefinition erstellen.
- SERVICE_ACCOUNT_NAME: Gibt den Namen des Dienstkontos an, das zum Schreiben in BigQuery verwendet werden soll.
C++
Folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
C#
Folgen Sie der Einrichtungsanleitung für C# in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C# API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Go
Folgen Sie der Einrichtungsanleitung für Go in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Java
Folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Node.js
Node.js
PHP
Folgen Sie der Einrichtungsanleitung für PHP in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub PHP API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Ruby
Folgen Sie der Einrichtungsanleitung für Ruby in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
BigQuery-Abo überwachen
Cloud Monitoring bietet eine Reihe von Messwerten, mit denen Sie Abos überwachen können.
Eine Liste aller verfügbaren Pub/Sub-Messwerte und ihre Beschreibungen finden Sie in der Monitoring-Dokumentation für Pub/Sub.
Sie können Abos auch in Pub/Sub überwachen.
Nächste Schritte
- Erstellen oder ändern Sie ein Abo mit
gcloud
-Befehlen. - Mit REST APIs ein Abo erstellen oder ändern
- Fehlerbehebung bei einem BigQuery-Abo