Für Änderungsstreams aktivierte Tabelle erstellen und Änderungen erfassen

Hier erfahren Sie, wie Sie eine Bigtable-Tabelle mit aktiviertem Änderungsstream einrichten, eine Änderungsstream-Pipeline ausführen, Änderungen an Ihrer Tabelle vornehmen und die Änderungen dann streamen.

Hinweise

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

    Go to project selector

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

  3. Enable the Dataflow, Cloud Bigtable API, and Cloud Bigtable Admin API APIs.

    Enable the APIs

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

    Activate Cloud Shell

Tabelle mit aktiviertem Änderungsstream erstellen

  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 diesen Schnellstart verwenden.

    Wenn Sie keine Instanz haben, 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. Geben Sie der Tabelle den Namen change-streams-quickstart.

  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. Führen Sie in Cloud Shell die folgenden Befehle aus, um den Code herunterzuladen und auszuführen.

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    cd java-docs-samples/bigtable/beam/change-streams
    mvn compile exec:java -Dexec.mainClass=ChangeStreamsHelloWorld \
    "-Dexec.args=--project=PROJECT_ID --bigtableProjectId=PROJECT_ID \
    --bigtableInstanceId=BIGTABLE_INSTANCE_ID --bigtableTableId=change-streams-quickstart \
    --runner=dataflow --region=BIGTABLE_REGION --experiments=use_runner_v2"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des verwendeten Projekts
    • BIGTABLE_INSTANCE_ID: die ID der Instanz, die die neue Tabelle enthalten soll
    • BIGTABLE_REGION: Die Region, in der sich Ihre Bigtable-Instanz befindet, z. B. us-east5
  2. Rufen Sie in der Google Cloud Console die Seite Dataflow auf.

    Zu Dataflow

  3. Klicken Sie auf den Job mit dem Namen changestreamquickstart.

  4. Klicken Sie unten auf dem Bildschirm auf Anzeigen, um das Logfeld zu öffnen.

  5. Klicken Sie auf Worker-Logs, um die Ausgabe des Änderungsstreams zu überwachen.

  6. Schreiben Sie in Cloud Shell einige Daten in Bigtable, um den Änderungsstreamprozess zu sehen.

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
    import change-streams-quickstart quickstart-data.csv column-family=cf
    
  7. Achten Sie in der Google Cloud Console darauf, dass für Schweregrad mindestens Info festgelegt ist.

  8. Die Worker-Logausgabe enthält Folgendes:

    Change captured: user123#2023,USER,SetCell,cf,col1,abc
    Change captured: user546#2023,USER,SetCell,cf,col1,def
    Change captured: user789#2023,USER,SetCell,cf,col1,ghi
    

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. Änderungsstream für die Tabelle deaktivieren

    gcloud bigtable instances tables update change-streams-quickstart --instance=BIGTABLE_INSTANCE_ID \
    --clear-change-stream-retention-period
    
  2. Löschen Sie die Tabelle change-streams-quickstart:

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID deletetable change-streams-quickstart
    
  3. Halten Sie die Änderungsstreampipeline an:

    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 beenden die Pipeline ab und klicken Sie dann auf Job beenden.

  4. Optional: Löschen Sie die Instanz, falls Sie eine neue für diesen Schnellstart erstellt haben:

    cbt deleteinstance BIGTABLE_INSTANCE_ID
    

Nächste Schritte