In dieser Anleitung erfahren Sie, wie Sie die Vorlage Bigtable Change Streams to Pub/Sub verwenden, ein Thema einrichten und die Vorlage konfigurieren. Optional können Sie eine Cloud Functions-Funktion in einer Programmiersprache Ihrer Wahl erstellen, die vom Ereignisstream ausgelöst wird.
Diese Anleitung richtet sich an technische Nutzer , die mit Bigtable, dem Schreiben von Code und Ereignisstreamingdiensten vertraut sind.
Lernziele
In dieser Anleitung erfahren Sie, wie Sie Folgendes tun:
- Erstellen Sie eine Bigtable-Tabelle mit aktiviertem Änderungsstream.
- Ein Pub/Sub-Thema mit dem Bigtable-Änderungsstreamschema erstellen.
- Stellen Sie mithilfe der Vorlage einen Bigtable-Änderungsstream in einer Pub/Sub-Pipeline in Dataflow bereit.
- Ereignisstream direkt in Pub/Sub oder in den Logs einer Cloud Functions-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.
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.
Hinweise
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Functions, and Cloud Storage APIs aktivieren.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Functions, and Cloud Storage APIs aktivieren.
-
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.
- Aktualisieren und installieren Sie die
cbt
-Befehlszeile.gcloud components update gcloud components install cbt
Pub/Sub-Thema erstellen
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Themen auf.
Klicken Sie auf Thema erstellen.
Legen Sie als ID
bigtable-change-stream-topic
fest.Wählen Sie Schema verwenden aus.
Klicken Sie im Drop-down-Menü Pub/Sub-Schema auswählen auf Neues Schema erstellen. Dadurch wird ein neuer Tab geöffnet, auf dem Sie das Schema definieren.
- Legen Sie als Schema-ID
bigtable-change-stream-schema
fest. - Legen Sie den Schematyp auf Avro fest.
- Fügen Sie Folgendes als Schemadefinition ein. Weitere Informationen zum Schema finden Sie auf der Dokumentationsseite für Vorlagen.
{ "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 als Schema-ID
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 Functions-Funktion erstellen
Möglicherweise möchten Sie den Pub/Sub-Stream mit einer Cloud Functions-Funktion verarbeiten.
- Klicken Sie auf der Seite Details für das Thema
bigtable-change-stream-topic
auf Cloud Functions-Funktion auslösen . - Geben Sie im Feld Funktionsname den Namen
bt-ps-tutorial-function
ein. - Klicken Sie im Bereich Quellcode auf das Drop-down-Menü Laufzeit und wählen Sie die gewünschte Laufzeit und Programmiersprache aus. Ein
hello world
wird generiert, das den Änderungsstream bei Eingang ausgibt. Weitere Informationen zum Schreiben von Cloud Functions-Funktionen finden Sie in der Dokumentation. - Verwenden 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 Bigtable-Seite Instanzen 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 Sicherungen.
Klicken Sie auf Tabelle erstellen.
Nennen Sie die Tabelle
change-streams-pubsub-tutorial
.Fügen Sie eine Spaltenfamilie mit dem Namen
cf
hinzu.Wählen Sie Änderungsstream aktivieren aus.
Klicken Sie auf Erstellen.
Datenpipeline initialisieren, um den Änderungsstream zu erfassen
- Suchen Sie auf der Bigtable-Seite Tabellen 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-topic
fest. - Legen Sie die Bigtable-Anwendungsprofil-ID auf
default
fest. - Klicken Sie auf Job ausführen.
- Warten Sie, bis der Jobstatus Wird gestartet oder Wird ausgeführt lautet, bevor Sie fortfahren. Es dauert etwa 5 Minuten, sobald der Job in die Warteschlange gestellt wurde.
Daten in Bigtable schreiben
Schreiben Sie in Cloud Shell einige Zeilen in Bigtable, damit das Änderungsprotokoll 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
running
wird.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
Änderungslogs in Pub/Sub ansehen
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Abos auf.
Klicken Sie auf das automatisch erstellte Abo für Ihr Thema
bigtable-change-stream-topic
. Er solltebigtable-change-stream-topic-sub
heißen.Gehe zum Tab Nachrichten.
Klicken Sie auf Pull.
Sehen Sie sich die Liste der Nachrichten an und sehen Sie sich die von Ihnen verfassten Daten an.
Optional: Änderungen in den Cloud Functions-Logs ansehen
Wenn Sie eine Cloud Functions-Funktion erstellt haben, können Sie die Änderungen in den Logs ansehen.
Rufen Sie in der Google Cloud Console Cloud Functions auf.
Klicken Sie auf die Funktion
bt-ps-tutorial-function
.Rufen Sie den Tab Logs auf.
Achten Sie darauf, dass der Schweregrad mindestens auf Info festgelegt ist, damit Sie die Logs sehen können.
Sehen Sie sich die Logs an und sehen Sie sich die von Ihnen geschriebenen Daten an.
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 Bigtable-Seite Instanzen auf.
Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.
Klicken Sie im linken Navigationsbereich auf Sicherungen.
Suchen Sie die Tabelle
change-streams-pubsub-tutorial
.Klicken Sie auf Bearbeiten.
Deaktivieren Sie die Option Änderungsstream aktivieren.
Klicken Sie auf Speichern.
Öffnen Sie das Dreipunkt-Menü der Tabelle.
Klicken Sie auf Löschen und geben Sie zur Bestätigung den Tabellennamen ein.
Änderungsstreampipeline anhalten
Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.
Wählen Sie den Streaming-Job aus der Jobliste aus.
Klicken Sie im Navigationsbereich auf Beenden.
Brechen Sie die Pipeline im Dialogfeld Job anhalten ab und klicken Sie dann auf Job anhalten.
Pub/Sub-Thema und -Abo löschen
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Themen auf.
Wählen Sie das Thema
bigtable-change-stream-topic
aus.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-sub
aus.Klicken Sie auf Löschen und bestätigen Sie den Vorgang.
Cloud Functions-Funktion löschen
Rufen Sie in der Google Cloud Console Cloud Functions auf.
Wählen Sie die Funktion
bt-ps-tutorial-function
aus.Klicken Sie auf Löschen und bestätigen Sie den Vorgang.