Änderungen mit optionalem Cloud Run-Funktionstrigger an Pub/Sub streamen


In dieser Anleitung erfahren Sie, wie Sie die Vorlage Bigtable-Änderungsstreams zu 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 vom Ereignisstream ausgelöst wird.

Dieses Tutorial richtet sich an technisch orientierte Nutzer, Bigtable schreiben, Code schreiben und Ereignisstreamingdienste verwenden.

Lernziele

In dieser Anleitung erfahren Sie, wie Sie Folgendes tun:

  • Erstellen Sie eine Bigtable-Tabelle mit einem aktivierten Änderungsstream.
  • Pub/Sub-Thema mit dem Bigtable-Änderungsstream erstellen Schema.
  • Mit der Vorlage einen Bigtable-Änderungsstream in einer Pub/Sub-Pipeline in Dataflow bereitstellen
  • Sehen Sie sich den Ereignisstream direkt in Pub/Sub oder in den Logs eines Cloud Run-Funktion.

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. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.

    Enable the APIs

  8. In the Google Cloud console, activate Cloud Shell.

    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.

  9. Aktualisieren und installieren Sie die cbt CLI.
    gcloud components update
    gcloud components install cbt

Pub/Sub-Thema erstellen

  1. Öffnen Sie in der Google Cloud Console die Pub/Sub-Seite Themen.

    Themen aufrufen

  2. Klicken Sie auf Thema erstellen.

  3. Legen Sie als ID bigtable-change-stream-topic fest.

  4. Wählen Sie Schema verwenden aus.

  5. 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.

    1. Legen Sie die Schema-ID auf bigtable-change-stream-schema fest.
    2. Legen Sie als Schematyp Avro fest.
    3. Fügen Sie Folgendes als Schemadefinition ein. Weitere Informationen zum finden Sie in der Vorlagendokumentation .
      {
          "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"]}
        ]
      }
    
    1. Klicken Sie auf Erstellen, um das Schema zu erstellen.
  6. Schließen Sie den Tab Schema erstellen, aktualisieren Sie die Schemaliste und wählen Sie ein neu definiertes Schema.

  7. Klicken Sie auf Erstellen, um das Thema anzulegen.

Optional: Cloud Run-Funktion erstellen

Vielleicht möchten Sie den Pub/Sub-Stream mit einem Cloud Run-Funktion.

  1. Klicken Sie auf der Seite Details für das Thema bigtable-change-stream-topic auf Cloud-Funktion auslösen.
  2. Geben Sie im Feld Funktionsname den Namen bt-ps-tutorial-function ein.
  3. 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 generiert, der den Änderungsstream bei Eingang ausgibt. Weitere Informationen zum Schreiben von Cloud Run-Funktionen finden Sie in der Dokumentation.
  4. Verwenden Sie für alle anderen Felder die Standardwerte.
  5. Klicken Sie auf Funktion bereitstellen.

Tabelle mit aktiviertem Änderungsstream erstellen

  1. Rufen Sie in der Google Cloud Console die Bigtable-Tabelle auf. Seite Instanzen.

    Zur Seite „VM-Instanzen“

  2. 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.

  3. Klicken Sie im linken Navigationsbereich auf Sicherungen.

  4. Klicken Sie auf Tabelle erstellen.

  5. Nennen Sie die Tabelle change-streams-pubsub-tutorial.

  6. Fügen Sie eine Spaltenfamilie mit dem Namen cf hinzu.

  7. Wählen Sie Änderungsstream aktivieren aus.

  8. Klicken Sie auf Erstellen.

Datenpipeline zum Erfassen des Änderungsstreams initialisieren

  1. Suchen Sie Ihre Tabelle auf der Bigtable-Seite Tabellen. change-streams-pubsub-tutorial
  2. Klicken Sie in der Spalte Änderungsstream auf Verbinden.
  3. Wählen Sie im Dialogfeld Pub/Sub aus.
  4. Klicken Sie auf Dataflow-Job erstellen.
  5. Legen Sie auf der Dataflow-Seite Job erstellen die Ausgabe fest. Pub/Sub-Themenname zu: bigtable-change-stream-topic.
  6. Legen Sie die Bigtable-Anwendungsprofil-ID auf default fest.
  7. Klicken Sie auf Job ausführen.
  8. Warten Sie, bis der Jobstatus Starting oder Running lautet, bevor Sie fortfahren. Sobald der Job in die Warteschlange gestellt wurde, dauert es etwa 5 Minuten.

Daten in Bigtable schreiben

  1. Schreiben Sie in Cloud Shell einige Zeilen in Bigtable, damit können Daten in den Pub/Sub-Stream geschrieben werden. Solange Sie die Daten nach dem Erstellen des Jobs schreiben, werden die Änderungen angezeigt. Sie müssen nicht warten, bis der Jobstatus running lautet.

    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

  1. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite auf. Seite Abos:

    Zu den Abos

  2. Klicken Sie auf das automatisch erstellte Abo für Ihr Thema bigtable-change-stream-topic. Er sollte bigtable-change-stream-topic-sub heißen.

  3. Rufen Sie den Tab Nachrichten auf.

  4. Klicken Sie auf Pull.

  5. Sehen Sie sich die Liste der Nachrichten an und prüfen Sie die von Ihnen geschriebenen Daten.

    Änderungsprotokollnachrichten in Pub/Sub

Optional: Änderungen in den Cloud Run-Funktionslogs ansehen

Wenn Sie eine Cloud Run-Funktion erstellt haben, können Sie die Änderungen in den Protokollen sehen.

  1. Rufen Sie in der Google Cloud Console Cloud Run-Funktionen auf.

    Zu den Cloud Run-Funktionen

  2. Klicken Sie auf die Funktion bt-ps-tutorial-function.

  3. Rufen Sie den Tab Logs auf.

  4. Der Schweregrad muss mindestens auf Info gesetzt sein, damit Sie den Messwert Logs.

  5. Sehen Sie sich die Protokolle an und prüfen Sie die von Ihnen geschriebenen Daten.

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

  1. Rufen Sie in der Google Cloud Console die Seite Bigtable-Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.

  3. Klicken Sie im linken Navigationsbereich auf Sicherungen.

  4. Suchen Sie die Tabelle change-streams-pubsub-tutorial.

  5. Klicken Sie auf Bearbeiten.

  6. Deaktivieren Sie Änderungsstream aktivieren.

  7. Klicken Sie auf Speichern.

  8. Öffnen Sie das Dreipunkt-Menü für die Tabelle.

  9. Klicken Sie auf Löschen und geben Sie den Namen der Tabelle ein, um den Vorgang zu bestätigen.

Änderungsstream-Pipeline anhalten

  1. Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.

    Zu „Jobs“

  2. Wählen Sie den Streaming-Job aus der Jobliste aus.

  3. Klicken Sie im Navigationsbereich auf Beenden.

  4. Brechen Sie im Dialogfeld Job anhalten die Pipeline ab und klicken Sie dann auf Beenden. Job ab.

Pub/Sub-Thema und -Abo löschen

  1. Öffnen Sie in der Google Cloud Console die Pub/Sub-Seite Themen.

    Themen aufrufen

  2. Wählen Sie das Thema bigtable-change-stream-topic aus.

  3. Klicken Sie auf Löschen und bestätigen Sie den Vorgang.

  4. Klicken Sie in der Seitenleiste auf Abos.

  5. Wählen Sie das Abo „bigtable-change-stream-topic-sub“ aus.

  6. Klicken Sie auf Löschen und bestätigen Sie den Vorgang.

Cloud Run-Funktion löschen

  1. Rufen Sie in der Google Cloud Console Cloud Run-Funktionen auf.

    Zu den Cloud Run-Funktionen

  2. Wählen Sie die Funktion bt-ps-tutorial-function aus.

  3. Klicken Sie auf Löschen und bestätigen Sie den Vorgang.

Nächste Schritte