Von Pub/Sub zu BigQuery streamen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

In dieser Anleitung wird die Vorlage Pub/Sub-Thema zu BigQuery verwendet, um einen Dataflow-Vorlagenjob mithilfe der Google Cloud Console oder der Google Cloud CLI zu erstellen und auszuführen. Die Anleitung führt Sie durch ein Streaming-Pipeline-Beispiel, das JSON-codierte Nachrichten aus Pub/Sub liest, Nachrichtendaten mit dem Apache Beam SDK transformiert und die Ergebnisse in eine BigQuery-Tabelle schreibt.

Pipelines für Streaminganalyse und Datenintegration verwenden Pub/Sub zum Aufnehmen und Verteilen von Daten. Mit Pub/Sub können Sie Systeme für Ereignisersteller und -nutzer erstellen, die als Publisher und Abonnenten bezeichnet werden. Publisher senden Ereignisse asynchron an den Pub/Sub-Dienst und Pub/Sub liefert die Ereignisse dann an alle Dienste, die darauf reagieren müssen.

Dataflow ist ein vollständig verwalteter Dienst zum Transformieren und Anreichern von Daten im Streammodus (Echtzeit) und im Batchmodus. Es bietet eine vereinfachte Pipeline-Entwicklungsumgebung, die das Apache Beam SDK verwendet, um eingehende Daten zu transformieren und dann die transformierten Daten auszugeben.

Verwenden Sie ein Pub/Sub-BigQuery-Abo, wenn Sie Nachrichten direkt in BigQuery schreiben möchten, ohne Dataflow für die Datentransformation zu konfigurieren.

Lernziele

  • Erstellen Sie ein Pub/Sub-Thema.
  • Erstellen Sie ein BigQuery-Dataset mit einer Tabelle und einem Schema.
  • Verwenden Sie eine von Google bereitgestellte Streamingvorlage, um Daten mit Dataflow aus Ihrem Pub/Sub-Thema zu BigQuery zu streamen.
  • Erstellen Sie eine benutzerdefinierte Funktion (User-Defined Function, UDF), um die von Google bereitgestellte Streamingvorlage zu erweitern.

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

  • Dataflow
  • Pub/Sub
  • Cloud Storage
  • Cloud Scheduler
  • BigQuery

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 dieser Anleitung können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweis

In diesem Abschnitt erfahren Sie, wie Sie ein Projekt auswählen, APIs aktivieren und Ihrem Nutzerkonto und dem Worker-Dienstkonto die entsprechenden Rollen zuweisen. Weisen Sie in einer Produktionsumgebung nicht die Inhaberrolle zu. Verwenden Sie stattdessen die entsprechenden Dataflow-spezifischen Berechtigungen und Rollen.

  1. 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  4. Dataflow, Compute Engine, Logging, Cloud Storage, Cloud Storage JSON, BigQuery, Pub/Sub, Resource Manager, and Cloud Scheduler APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  7. Dataflow, Compute Engine, Logging, Cloud Storage, Cloud Storage JSON, BigQuery, Pub/Sub, Resource Manager, and Cloud Scheduler APIs aktivieren.

    Aktivieren Sie die APIs

  8. Ihr Nutzerkonto muss die Rolle Dienstkontonutzer haben, um die Schritte in dieser Anleitung ausführen zu können. Das Compute Engine-Standarddienstkonto muss die folgenden Rollen haben: Dataflow-Worker, Dataflow Admin, Pub/Sub-Bearbeiter, Storage-Objekt-Administrator und BigQuery-Dateneditor. So fügen Sie die erforderlichen Rollen in der Google Cloud Console hinzu:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.
      Zu IAM
    2. Wählen Sie Ihr Projekt aus.
    3. Klicken Sie in der Zeile mit Ihrem Nutzerkonto auf Hauptkonto bearbeiten und dann auf Weitere Rolle hinzufügen.
    4. Wählen Sie in der Drop-down-Liste die Rolle Dienstkontonutzer aus.
    5. Klicken Sie in der Zeile mit dem Compute Engine-Standarddienstkonto auf Hauptkonto bearbeiten und dann auf Weitere Rolle hinzufügen.
    6. Wählen Sie aus der Drop-down-Liste die Rolle Dataflow-Worker aus.
    7. Wiederholen Sie den Vorgang für die Rollen Dataflow-Administrator, Pub/Sub-Bearbeiter, Storage-Objekt-Administrator und BigQuery-Dateneditor und klicken Sie dann auf Speichern.

      Weitere Informationen zum Zuweisen von Rollen finden Sie unter IAM-Rolle über die Konsole zuweisen.

  9. Wenn Sie die Google Cloud CLI verwenden, um diese Anleitung abzuschließen, installieren und initialisieren Sie die Google Cloud CLI. Wenn Sie diese Anleitung mit der Google Cloud Console ausführen, überspringen Sie diesen Schritt.
  10. Wenn Sie diese Anleitung über die Google Cloud CLI ausführen, erstellen Sie Anmeldedaten für Ihr Google-Konto:

    gcloud auth application-default login

Beispielquelle und -senke erstellen

In diesem Abschnitt wird Folgendes erstellt:

  • Streaming-Datenquelle mit Pub/Sub
  • Dataset, um Daten in BigQuery zu laden

Cloud Storage-Bucket erstellen

Erstellen Sie zuerst einen Cloud Storage-Bucket mit der Cloud Console oder der Google Cloud CLI. Dieser Bucket wird von der Dataflow-Pipeline als temporärer Speicherort verwendet.

Console

  1. Wechseln Sie in der Google Cloud Console zum Cloud Storage-Browser.

    Zur Cloud Storage-Seite

  2. Klicken Sie auf Bucket erstellen.

  3. Geben Sie auf der Seite Bucket erstellen bei Bucket benennen einen Namen ein, der die Anforderungen für Bucket-Namen erfüllt. Cloud Storage-Bucket-Namen müssen global eindeutig sein. Wählen Sie nicht die anderen Optionen aus.

  4. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl gsutil mb aus:

gsutil mb gs://BUCKET_NAME

Ersetzen Sie BUCKET_NAME durch einen Namen für den Cloud Storage-Bucket, der den Anforderungen für Bucket-Namen entspricht. Cloud Storage-Bucket-Namen müssen global eindeutig sein.

Pub/Sub-Thema und -Abo erstellen

Erstellen Sie ein Pub/Sub-Thema und dann ein Abo für dieses Thema.

Console

So erstellen Sie ein Thema:

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

    Themen aufrufen

  2. Klicken Sie auf Thema erstellen.

  3. Geben Sie im Feld Themen-ID eine ID für das Thema ein. Weitere Informationen zum Benennen eines Themas finden Sie unter Richtlinien für die Benennung eines Themas oder eines Abos.

  4. Behalten Sie die Option Standardabo hinzufügen bei. Wählen Sie nicht die anderen Optionen aus.

  5. Klicken Sie auf Thema erstellen.

gcloud CLI

Führen Sie den Befehl gcloud pubsub topics create aus, um ein Thema zu erstellen. Informationen zum Benennen eines Abos finden Sie unter Richtlinien für die Benennung eines Themas oder Abos.

gcloud pubsub topics create TOPIC_ID

Ersetzen Sie TOPIC_ID durch einen Namen für Ihr Pub/Sub-Thema.

Führen Sie den Befehl gcloud pubsub subscriptions create aus, um ein Abo für Ihr Thema zu erstellen:

gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_ID

Ersetzen Sie SUBSCRIPTION_ID durch einen Namen für Ihr Pub/Sub-Abo.

Cloud Scheduler-Jobs erstellen und ausführen

Erstellen und führen Sie zwei Cloud Scheduler-Jobs aus: einen, der "positive Bewertungen" veröffentlicht, und einen zweiten, der "negative Bewertungen" in Ihrem Pub/Sub-Thema veröffentlicht.

Console

Erstellen Sie einen Cloud Scheduler-Job für positive Bewertungen.

  1. Gehen Sie in der Konsole zur Seite Cloud Scheduler:

    Zur Seite "Cloud Scheduler"

  2. Klicken Sie auf die Schaltfläche Job erstellen.

  3. Geben Sie den Namen positive-ratings-publisher ein.

  4. Wählen Sie eine Region für die Ausführung des Jobs aus. Wählen Sie eine Dataflow-Region in der Nähe des Standorts, an dem die Befehle in dieser Anleitung ausgeführt werden. Der Wert der Variablen REGION muss ein gültiger Regionsname sein. Weitere Informationen zu Regionen und Standorten finden Sie unter Dataflow-Standorte.

  5. Geben Sie die Häufigkeit der Ausführung des Jobs im Format unix-cron an: * * * * *.

    Weitere Informationen finden Sie unter Zeitpläne für Cronjobs konfigurieren.

  6. Wählen Sie Ihre Zeitzone unter "Timezone" aus.

  7. Klicken Sie auf Weiter.

  8. Wählen Sie in der Drop-down-Liste Ziel die Option Pub/Sub aus.

  9. Wählen Sie den Namen Ihres Themas aus der Drop-down-Liste aus.

  10. Fügen Sie den folgenden Nachrichtenstring hinzu, der an Ihr Ziel gesendet werden soll:{"url": "https://beam.apache.org/", "review": "positive"}

  11. Klicken Sie auf Erstellen.

Sie haben jetzt einen Cronjob, der jede Minute eine Nachricht mit einer positiven Bewertung an Ihr Pub/Sub-Thema sendet. Ihre Cloud-Funktion hat dieses Thema abonniert.

Erstellen Sie einen Cloud Scheduler-Job für negative Bewertungen.

  1. Klicken Sie in der Console auf der Seite Cloud Scheduler auf die Schaltfläche Job erstellen.

  2. Geben Sie den Namen negative-ratings-publisher ein.

  3. Wählen Sie eine Region für die Ausführung des Jobs aus.

  4. Geben Sie die Häufigkeit der Ausführung des Jobs im Format unix-cron an: */2 * * * *.

    Weitere Informationen finden Sie unter Zeitpläne für Cronjobs konfigurieren.

  5. Wählen Sie Ihre Zeitzone unter "Timezone" aus.

  6. Klicken Sie auf Weiter.

  7. Wählen Sie in der Drop-down-Liste Ziel die Option Pub/Sub aus.

  8. Wählen Sie den Namen Ihres Themas aus der Drop-down-Liste aus.

  9. Fügen Sie den folgenden Nachrichtenstring hinzu, der an Ihr Ziel gesendet werden soll:{"url": "https://beam.apache.org/", "review": "negative"}

  10. Klicken Sie auf Erstellen.

Sie haben jetzt einen Cronjob, der alle zwei Minuten eine Nachricht mit einer negativen Bewertung an Ihr Pub/Sub-Thema sendet. Ihre Cloud-Funktion hat dieses Thema abonniert.

gcloud

  1. Verwenden Sie den Befehl gcloud scheduler jobs create, um einen Cloud Scheduler-Job für diese Anleitung zu erstellen. Mit diesem Schritt wird ein Publisher für "positive Bewertungen" erstellt, der eine Nachricht pro Minute veröffentlicht.

    gcloud scheduler jobs create pubsub positive-ratings-publisher \
      --schedule="* * * * *" \
      --location=DATAFLOW_REGION \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "positive"}'
    

    Ersetzen Sie DATAFLOW_REGION durch den regionalen Endpunkt für die Bereitstellung Ihres Dataflow-Jobs. Wählen Sie eine Dataflow-Region in der Nähe des Standorts, an dem die Befehle in dieser Anleitung ausgeführt werden. Der Wert der Variablen REGION muss ein gültiger Regionsname sein. Weitere Informationen zu Regionen und Standorten finden Sie unter Dataflow-Standorte.

  2. Verwenden Sie den Befehl gcloud scheduler jobs run, um den Cloud Scheduler-Job zu starten.

    gcloud scheduler jobs run --location=DATAFLOW_REGION positive-ratings-publisher
    
  3. Erstellen und führen Sie einen weiteren ähnlichen Publisher für "negative Bewertungen" aus, der alle zwei Minuten eine Nachricht veröffentlicht. Mit diesem Schritt wird ein Publisher für "negative Bewertungen" erstellt, der alle zwei Minuten eine Nachricht veröffentlicht.

    gcloud scheduler jobs create pubsub negative-ratings-publisher \
      --schedule="*/2 * * * *" \
      --location=DATAFLOW_REGION  \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "negative"}'
    
  4. Starten Sie den zweiten Cloud Scheduler-Job.

    gcloud scheduler jobs run --location=DATAFLOW_REGION negative-ratings-publisher
    

BigQuery-Dataset erstellen

Erstellen Sie ein BigQuery-Dataset und eine Tabelle mit dem entsprechenden Schema für Ihr Pub/Sub-Thema.

Console

BigQuery-Dataset erstellen

  1. Öffnen Sie in der Google Cloud Console die Seite "BigQuery".

    Zur Seite "BigQuery"

  2. Wählen Sie im Bereich Explorer das Projekt aus, in dem Sie das Dataset erstellen möchten.

  3. Maximieren Sie die Option Aktionen und klicken Sie auf Dataset erstellen.

  4. Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:

    • Geben Sie unter Dataset-ID tutorial_dataset ein.
    • Unter Speicherort der Daten können Sie einen geografischen Standort für das Dataset auswählen. Nach der Erstellung des Datasets kann der Standort nicht mehr geändert werden.

    • Wählen Sie nicht die anderen Optionen aus.

    • Klicken Sie auf Dataset erstellen.

Erstellen Sie eine BigQuery-Tabelle mit einem Schema.

  1. Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie das Dataset tutorial_dataset aus.

  2. Maximieren Sie die Option Aktionen und klicken Sie auf Öffnen.

  3. Klicken Sie im Detailfeld auf Tabelle erstellen.

  4. Wählen Sie auf der Seite Create table (Tabelle erstellen) im Abschnitt Source (Quelle) die Option Empty table (Leere Tabelle) aus.

  5. Gehen Sie auf der Seite Tabelle erstellen im Abschnitt Ziel folgendermaßen vor:

    • Prüfen Sie, ob für Dataset-Name der Wert tutorial_dataset festgelegt ist.
    • Geben Sie im Feld Tabellenname tutorial ein.
    • Achten Sie darauf, dass der Tabellentyp auf Native Tabelle eingestellt ist.
  6. Geben Sie im Abschnitt Schema die Schemadefinition ein. Klicken Sie auf Als Text bearbeiten und geben Sie das folgende Tabellenschema als JSON-Array ein.

    [
      {
        "mode": "NULLABLE",
        "name": "url",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "review",
        "type": "STRING"
      }
    ]
    
  7. Behalten Sie für Partitions- und Clustereinstellungen den Standardwert No partitioning bei.

  8. Übernehmen Sie im Abschnitt Erweiterte Optionen ebenfalls den Standardwert für Verschlüsselung, und zwar Google-managed key. Dataflow verschlüsselt standardmäßig ruhende Kundendaten.

  9. Klicken Sie auf Tabelle erstellen.

gcloud

Erstellen Sie das Dataset mit dem Befehl bq mk.

bq --location=DATAFLOW_REGION mk \
PROJECT_ID:tutorial_dataset

Ersetzen Sie dabei PROJECT_ID durch die Projekt-ID Ihres Zielprojekts.

Verwenden Sie den Befehl bq mk mit dem Flag --table oder -t, um eine Tabelle in Ihrem Dataset zu erstellen.

bq mk \
    --table \
    PROJECT_ID:tutorial_dataset.tutorial \
    url:STRING,review:STRING

Benutzerdefinierte Funktion (UDF) erstellen

Sie können optional eine JavaScript-UDF erstellen, um die von Google bereitgestellte Vorlage "Pub/Sub-Thema für BigQuery" zu erweitern. Mit UDFs können Sie Datentransformationen definieren, die in der Vorlage nicht vorhanden sind, und sie in die Vorlage einfügen.

Die folgende UDF validiert die URLs der eingehenden Bewertungen. Bewertungen ohne URLs oder falsche URLs werden an eine andere Ausgabetabelle mit dem Suffix _error_records weitergeleitet, auch als Tabelle für unzustellbare Nachrichten bezeichnet, im selben Projekt und Dataset.

JavaScript

/**
 * User-defined function (UDF) to transform events
 * as part of a Dataflow template job.
 *
 * @param {string} inJson input Pub/Sub JSON message (stringified)
 */
 function process(inJson) {
    const obj = JSON.parse(inJson);
    const includePubsubMessage = obj.data && obj.attributes;
    const data = includePubsubMessage ? obj.data : obj;

    if (!data.hasOwnProperty('url')) {
      throw new Error("No url found");
    } else if (data.url !== "https://beam.apache.org/") {
      throw new Error("Unrecognized url");
    }

    return JSON.stringify(obj);
  }

Speichern Sie dieses JavaScript-Snippet in dem zuvor erstellten Cloud Storage-Bucket.

Pipeline ausführen

Führen Sie eine Streaming-Pipeline mit der von Google bereitgestellten Vorlage Pub/Sub-Thema zu BigQuery aus. Die Pipeline erhält eingehende Daten aus dem Pub/Sub-Thema und gibt die Daten in Ihr BigQuery-Dataset aus.

Console

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

    ZU JOBS

  2. Klicken Sie auf Job aus Vorlage erstellen.

  3. Geben Sie einen Jobnamen für Ihren Dataflow-Job ein.

  4. Wählen Sie für die Dataflow-Vorlage die Vorlage Pub/Sub-Thema zu BigQuery aus.

  5. Geben Sie unter Pub/Sub-Eingabethema Folgendes ein:

    projects/PROJECT_ID/topics/TOPIC_ID
    

    Ersetzen Sie PROJECT_ID durch die Projekt-ID des Projekts, in dem Sie das BigQuery-Dataset erstellt haben, und TOPIC_ID durch den Namen Ihres Pub/Sub-Themas.

  6. Geben Sie für BigQuery-Ausgabetabelle Folgendes ein:

    PROJECT_ID:tutorial_dataset.tutorial
    
  7. Geben Sie unter Temporärer Speicherort Folgendes ein:

    gs://BUCKET_NAME/temp/
    

    Ersetzen Sie BUCKET_NAME durch den Namen Ihres Cloud Storage-Buckets. Der Ordner temp speichert temporäre Dateien, z. B. den bereitgestellten Pipelinejob.

  8. Klicken Sie optional auf Optionale Parameter anzeigen, um eine UDF für den Job einzubeziehen.

    Geben Sie für JavaScript-UDF-Pfad in Cloud Storage Folgendes ein:

    gs://BUCKET_NAME/dataflow_udf_transform.js
    

    Geben Sie unter JavaScript-UDF-Name Folgendes ein:

    process
    
  9. Klicken Sie auf Job ausführen.

Wenn Sie prüfen möchten, ob die Vorlage Nachrichten an eine Tabelle für unzustellbare Nachrichten weiterleiten kann, veröffentlichen Sie einige Bewertungen ohne URLs oder falsche URLs.

  1. Zur Seite Pub/Sub-Themen

  2. Klicken Sie auf Ihren TOPIC_ID.

  3. Wechseln Sie zum Abschnitt Nachrichten.

  4. Klicken Sie auf Nachricht veröffentlichen.

  5. Geben Sie einige Bewertungen ohne URLs oder falsche URLs in Nachrichtentext ein. Beispiel:

    {"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}
    
  6. Klicken Sie auf Veröffentlichen.

gcloud

Führen Sie die Vorlage in Ihrer Shell oder Ihrem Terminal mit dem Befehl gcloud dataflow jobs run aus.

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/PubSub_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputTopic=projects/PROJECT_ID/topics/TOPIC_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial

Ersetzen Sie JOB_NAME durch einen eindeutigen Namen Ihrer Wahl.

Optional können Sie die Vorlage mit der UDF ausführen:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/PubSub_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputTopic=projects/PROJECT_ID/topics/TOPIC_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial,\
javascriptTextTransformGcsPath=gs://BUCKET_NAME/dataflow_udf_transform.js,\
javascriptTextTransformFunctionName=process

Wenn Sie prüfen möchten, ob die Vorlage Nachrichten an eine Tabelle für unzustellbare Nachrichten weiterleiten kann, veröffentlichen Sie einige Bewertungen ohne URLs oder falsche URLs. Beispiel:

gcloud pubsub topics publish TOPIC_ID \
  --message='{"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}'

Ergebnisse ansehen

Sehen Sie sich die Daten an, die in Ihren BigQuery-Tabellen geschrieben wurden.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.
    Zur Seite „BigQuery“

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial`
    LIMIT 1000
    

    Es kann bis zu einer Minute dauern, bis Daten in der Tabelle angezeigt werden.

    Die Abfrage gibt Zeilen zurück, die in den letzten 24 Stunden zu Ihrer Tabelle hinzugefügt wurden. Sie können Abfragen auch mit Standard-SQL ausführen.

    Wenn Sie davon ausgehen, dass einige Fehlerdatensätze in Ihre Dead-Letter-Tabelle geschrieben werden, verwenden Sie in der Abfrage den Tabellennamen tutorial_error_records. Beispiel:

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
    LIMIT 1000
    

gcloud

Prüfen Sie die Ergebnisse in BigQuery mit der folgenden Abfrage:

bq query --use_legacy_sql=false 'SELECT * FROM `'"PROJECT_ID.tutorial_dataset.tutorial"'`'

Während diese Pipeline ausgeführt wird, können Sie jede Minute neue Zeilen an die BigQuery-Tabelle anhängen.

Wenn Sie davon ausgehen, dass einige Fehlerdatensätze in Ihre Dead-Letter-Tabelle geschrieben werden, verwenden Sie in der Abfrage den Tabellennamen tutorial_error_records. Beispiel:

SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
LIMIT 1000

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.

Projekt löschen

Am einfachsten können Sie weitere Kosten vermeiden, wenn Sie das Google Cloud-Projekt löschen, das Sie für die Anleitung erstellt haben.

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Einzelne Ressourcen löschen

Dataflow-Pipeline anhalten

Console

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

    ZU JOBS

  2. Klicken Sie auf den Job, den Sie beenden möchten.

    Zum Beeinden eines Jobs muss der Status des Jobs Wird ausgeführt sein.

  3. Klicken Sie auf der Seite mit den Jobdetails auf Beenden.

  4. Klicken Sie auf Abbrechen.

  5. Klicken Sie auf Job anhalten, um die Auswahl zu bestätigen.

gcloud

Verwenden Sie den Befehl gcloud dataflow jobs, um Ihren Dataflow-Job abzubrechen.

gcloud dataflow jobs list \
  --filter 'NAME=JOB_NAME AND STATE=Running' \
  --format 'value(JOB_ID)' \
  --region "DATAFLOW_REGION" \
  | xargs gcloud dataflow jobs cancel --region "DATAFLOW_REGION"

Google Cloud-Projektressourcen bereinigen

Console

  1. Löschen Sie die Cloud Scheduler-Jobs.
    1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
      Zur Seite "Scheduler"
    2. Wählen Sie Ihre Jobs aus.
    3. Klicken Sie oben auf der Seite auf Löschen und bestätigen Sie den Löschvorgang.
  2. Löschen Sie das Pub/Sub-Thema und -Abo.
    1. Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Themen auf.
      Zur Seite "Pub/Sub-Themen"
    2. Wählen Sie das von Ihnen erstellte Thema aus.
    3. Klicken Sie auf Löschen, um das Thema endgültig zu löschen.
    4. Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Abos auf.
    5. Wählen Sie das mit Ihrem Thema erstellte Abo aus.
    6. Klicken Sie auf Löschen, um das Abo endgültig zu löschen.
  3. Löschen Sie die BigQuery-Tabelle und das Dataset.
    1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.
      Zu „BigQuery“
    2. Maximieren Sie im Bereich Explorer Ihr Projekt.
    3. Klicken Sie neben dem Dataset, das Sie löschen möchten, auf  Aktionen ansehen und dann auf Löschen.
  4. Löschen Sie den Cloud Storage-Bucket.
    1. Wechseln Sie in der Google Cloud Console zum Cloud Storage-Browser.
      Zur Seite „Cloud Storage“
    2. Wählen Sie den Bucket aus, den Sie löschen möchten, klicken Sie auf Löschen und folgen Sie der Anleitung.

gcloud

  1. Verwenden Sie den Befehl gcloud scheduler jobs delete, um die Cloud Scheduler-Jobs zu löschen.

    gcloud scheduler jobs delete negative-ratings-publisher --location=DATAFLOW_REGION
    
    gcloud scheduler jobs delete positive-ratings-publisher --location=DATAFLOW_REGION
    
  2. Verwenden Sie die Befehle gcloud pubsub subscriptions delete und gcloud pubsub topics delete, um das Pub/Sub-Abo und -Thema zu löschen.

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    gcloud pubsub topics delete TOPIC_ID
    
  3. Verwenden Sie zum Löschen der BigQuery-Tabelle den Befehl bq rm.

    bq rm -f -t PROJECT_ID:tutorial_dataset.tutorial
    
  4. Löschen Sie das BigQuery-Dataset. Das Dataset allein verursacht keine Gebühren.

  5. Verwenden Sie den Befehl gsutil rm, um den Cloud Storage-Bucket zu löschen. Für den Bucket fallen keine Gebühren an.

Anmeldedaten entfernen

  1. Optional: Widerrufen Sie die von Ihnen erstellten Anmeldedaten für die Authentifizierung und löschen Sie die lokale Datei mit den Anmeldedaten:

    gcloud auth application-default revoke
  2. Optional: Widerrufen Sie Anmeldedaten von der gcloud-CLI.

    gcloud auth revoke
  3. Wenn Sie Ihr Projekt beibehalten, widerrufen Sie die Rollen, die Sie dem Compute Engine-Standarddienstkonto zugewiesen haben.

  4. Console

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen
    2. Wählen Sie ein Projekt, einen Ordner oder eine Organisation aus.
    3. Suchen Sie die Zeile mit dem Hauptkonto, dessen Zugriff Sie widerrufen möchten. Klicken Sie in dieser Zeile auf Hauptkonto bearbeiten.
    4. Klicken Sie für alle Rollen, die entzogen werden sollen, auf Löschen  und dann auf Speichern.

    gcloud

    Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus:

    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/bigquery.dataEditor
    • roles/pubsub.editor
    • roles/storage.objectAdmin
    gcloud projects remove-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
          --role=ROLE

Nächste Schritte