In dieser Anleitung erfahren Sie, wie Sie die Vorlage Bigtable-Änderungsstreams für Pub/Sub verwenden, einschließlich der Einrichtung eines Themas und der Konfiguration der Vorlage. Optional können Sie eine Cloud Run-Funktion in der Programmiersprache Ihrer Wahl erstellen, die durch den Ereignisstream ausgelöst wird.
Diese Anleitung richtet sich an technische Nutzer, die mit Bigtable, dem Schreiben von Code und Ereignisstreamingdiensten vertraut sind.
Ziele
In dieser Anleitung wird Folgendes beschrieben:
- Bigtable-Tabelle mit aktiviertem Änderungsstream erstellen.
- Pub/Sub-Thema mit dem Bigtable-Änderungsstream-Schema erstellen.
- Bigtable-Änderungsstream mithilfe der Vorlage in einer Pub/Sub-Pipeline in Dataflow bereitstellen.
- Ereignisstream direkt in Pub/Sub oder in den Logs einer Cloud Run-Funktion ansehen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Verwenden Sie den Preisrechner.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Aktualisieren und installieren Sie die
cbtCLI .gcloud components update gcloud components install cbt
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Pub/Sub-Thema erstellen
Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Themen auf.
Klicken Sie auf Thema erstellen.
Legen Sie die ID auf
bigtable-change-stream-topicfest.Wählen Sie Schema verwenden aus.
Klicken Sie im Drop-down-Menü Pub/Sub-Schema auswählen auf Neues Schema erstellen. Daraufhin wird ein neuer Tab geöffnet, auf dem Sie das Schema definieren.
- Legen Sie die Schema-ID auf
bigtable-change-stream-schemafest. - Legen Sie den Schematyp auf Avro fest.
- Fügen Sie Folgendes als Schemadefinition ein. Weitere Informationen zum Schema finden Sie auf der Dokumentationsseite zur Vorlage.
{ "name" : "ChangelogEntryMessage", "type" : "record", "namespace" : "com.google.cloud.teleport.bigtable", "fields" : [ { "name" : "rowKey", "type" : "bytes"}, { "name" : "modType", "type" : { "name": "ModType", "type": "enum", "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]} }, { "name": "isGC", "type": "boolean" }, { "name": "tieBreaker", "type": "int"}, { "name": "columnFamily", "type": "string"}, { "name": "commitTimestamp", "type" : "long"}, { "name" : "sourceInstance", "type" : "string"}, { "name" : "sourceCluster", "type" : "string"}, { "name" : "sourceTable", "type" : "string"}, { "name": "column", "type" : ["null", "bytes"]}, { "name": "timestamp", "type" : ["null", "long"]}, { "name": "timestampFrom", "type" : ["null", "long"]}, { "name": "timestampTo", "type" : ["null", "long"]}, { "name" : "value", "type" : ["null", "bytes"]} ] }- Klicken Sie auf Erstellen , um das Schema zu erstellen.
- Legen Sie die Schema-ID auf
Schließen Sie den Tab Schema erstellen , aktualisieren Sie die Schemaliste und wählen Sie das neu definierte Schema aus.
Klicken Sie auf Erstellen , um das Thema zu erstellen.
Optional: Cloud Run-Funktion erstellen
Sie können den Pub/Sub-Stream mit einer Cloud Run-Funktion verarbeiten.
- Klicken Sie auf der Seite Details für das Thema
bigtable-change-stream-topicauf Cloud-Funktion auslösen . - Geben Sie im Feld Funktionsname den Namen
bt-ps-tutorial-functionein. - Klicken Sie im Bereich Quellcode auf das Drop-down-Menü Laufzeit und wählen Sie dann die gewünschte Laufzeit und Programmiersprache aus. Es wird ein
hello worldgeneriert, das den Änderungsstream ausgibt, sobald er eingeht. Weitere Informationen zum Schreiben von Cloud Run-Funktionen finden Sie in der Dokumentation. - Übernehmen Sie für alle anderen Felder die Standardwerte.
- Klicken Sie auf Funktion bereitstellen.
Tabelle mit aktiviertem Änderungsstream erstellen
Rufen Sie in der Google Cloud Console die Seite Instanzen von Bigtable auf.
Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.
Wenn keine Instanz verfügbar ist, erstellen Sie eine Instanz mit den Standardkonfigurationen in einer Region in Ihrer Nähe.
Klicken Sie im linken Navigationsbereich auf Tabellen.
Klicken Sie auf Tabelle erstellen.
Geben Sie der Tabelle den Namen
change-streams-pubsub-tutorial.Fügen Sie eine Spaltenfamilie mit dem Namen
cfhinzu.Wählen Sie Änderungsstream aktivieren aus.
Klicken Sie auf Erstellen.
Datenpipeline initialisieren, um den Änderungsstream zu erfassen
- Suchen Sie auf der Seite Tabellen von Bigtable nach der Tabelle
change-streams-pubsub-tutorial. - Klicken Sie in der Spalte Änderungsstream auf Verbinden.
- Wählen Sie im Dialogfeld Pub/Sub aus.
- Klicken Sie auf Dataflow-Job erstellen.
- Legen Sie auf der Dataflow-Seite Job erstellen den Namen des Pub/Sub-Ausgabethemas auf
bigtable-change-stream-topicfest. - Legen Sie die Bigtable-Anwendungsprofil-ID auf
defaultfest. - Klicken Sie auf Job ausführen.
- Warten Sie, bis der Jobstatus Wird gestartet oder Wird ausgeführt lautet, bevor Sie fortfahren. Das dauert etwa fünf Minuten, nachdem der Job in die Warteschlange gestellt wurde.
Daten in Bigtable schreiben
Schreiben Sie in der Cloud Shell einige Zeilen in Bigtable, damit das Änderungsprotokoll einige Daten in den Pub/Sub-Stream schreiben kann. Solange Sie die Daten nach dem Erstellen des Jobs schreiben, werden die Änderungen angezeigt. Sie müssen nicht warten, bis der Jobstatus
runninglautet.cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user123 cf:col1=abc cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user546 cf:col1=def cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user789 cf:col1=ghi
Änderungsprotokolle in Pub/Sub ansehen
Rufen Sie in der Google Cloud Console die Seite Pub/Sub Abos auf.
Klicken Sie auf das automatisch erstellte Abo für Ihr Thema
bigtable-change-stream-topic. Es sollte den Namenbigtable-change-stream-topic-subhaben.Rufen Sie den Tab Nachrichten auf.
Klicken Sie auf Pull.
Sehen Sie sich die Liste der Nachrichten an und rufen Sie die von Ihnen geschriebenen Daten auf.

Optional: Änderungen in den Cloud Run-Funktionslogs ansehen
Wenn Sie eine Cloud Run-Funktion erstellt haben, können Sie die Änderungen in den Logs ansehen.
Rufen Sie in der Google Cloud Console Cloud Run-Funktionen auf.
Klicken Sie auf die Funktion
bt-ps-tutorial-function.Rufen Sie den Tab Logs auf.
Legen Sie Schweregrad mindestens auf Info fest, damit Sie die Logs sehen können.
Sehen Sie sich die Logs an und rufen Sie die von Ihnen geschriebenen Daten auf.
Die Ausgabe sieht dann ungefähr so aus:
Pub/Sub message: {"rowKey":"user789","modType":"SET_CELL","isGC":false,"tieBreaker":0,"columnFamily":"cf","commitTimestamp":1695653833064548,"sourceInstance":"YOUR-INSTANCE","sourceCluster":"YOUR-INSTANCE-c1","sourceTable":"change-streams-pubsub-tutorial","column":{"bytes":"col1"},"timestamp":{"long":1695653832278000},"timestampFrom":null,"timestampTo":null,"value":{"bytes":"ghi"}}
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Bigtable-Tabelle löschen
Rufen Sie in der Google Cloud Console die Seite Instanzen von Bigtable auf.
Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.
Klicken Sie im linken Navigationsbereich auf Tabellen.
Suchen Sie die Tabelle
change-streams-pubsub-tutorial.Klicken Sie auf Bearbeiten.
Deaktivieren Sie Änderungsstream aktivieren.
Klicken Sie auf Speichern.
Öffnen Sie das Überlaufmenü für die Tabelle.
Klicken Sie auf Löschen und geben Sie den Tabellennamen zur Bestätigung ein.
Änderungsstream-Pipeline beenden
Rufen Sie in der Google Cloud Console die Dataflow-Jobs Seite auf.
Wählen Sie den Streaming-Job aus der Jobliste aus.
Klicken Sie im Navigationsbereich auf Beenden.
Beenden Sie im Dialogfeld Job beenden die Pipeline und klicken Sie dann auf Job beenden.
Pub/Sub-Thema und ‑Abo löschen
Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Themen auf.
Wählen Sie das Thema
bigtable-change-stream-topicaus.Klicken Sie auf Löschen und bestätigen Sie den Vorgang.
Klicken Sie in der Seitenleiste auf Abos.
Wählen Sie das Abo
bigtable-change-stream-topic-subaus.Klicken Sie auf Löschen und bestätigen Sie den Vorgang.
Cloud Run-Funktion löschen
Rufen Sie in der Google Cloud Console Cloud Run-Funktionen auf.
Wählen Sie die Funktion
bt-ps-tutorial-functionaus.Klicken Sie auf Löschen und bestätigen Sie den Vorgang.