Kurzanleitung zu SQL

In dieser Kurzanleitung erfahren Sie, wie Sie eine SQL-Syntax schreiben, um ein öffentlich verfügbares Pub/Sub-Thema abzufragen. Die SQL-Abfrage führt eine Dataflow-Pipeline aus und die Ergebnisse der Pipeline werden in eine BigQuery-Tabelle geschrieben.

Zum Ausführen eines Dataflow SQL-Jobs können Sie die Google Cloud Console, die auf einem lokalen Computer installierte Google Cloud-CLI oder Cloud Shell verwenden. Zusätzlich zur Cloud Console müssen Sie in diesem Beispiel entweder einen lokalen Computer oder Cloud Shell verwenden.

Hinweis

  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 Google Cloud-Projekt muss aktiviert sein.

  4. Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Resource Manager, und Google Cloud Data Catalog 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 Google Cloud-Projekt muss aktiviert sein.

  7. Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Resource Manager, und Google Cloud Data Catalog APIs aktivieren.

    Aktivieren Sie die APIs

gcloud-CLI installieren und initialisieren

  • Laden Sie das gcloud-Befehlszeilen-Paket für Ihr Betriebssystem herunter und installieren und konfigurieren Sie die gcloud-Befehlszeile.

    Je nach Internetverbindung kann der Download eine Weile dauern.

BigQuery-Dataset erstellen

In dieser Kurzanleitung veröffentlicht die Dataflow SQL-Pipeline ein BigQuery-Dataset in einer BigQuery-Tabelle, die Sie im nächsten Abschnitt erstellen.

  • BigQuery-Dataset mit dem Namen taxirides erstellen:

    bq mk taxirides
    

Pipeline ausführen

  • Führen Sie eine Dataflow-SQL-Pipeline aus, die die Anzahl der Fahrgäste pro Minute berechnet. Dazu werden Daten aus einem öffentlich verfügbaren Pub/Sub-Thema zu Taxifahrten verwendet. Mit diesem Befehl wird auch eine BigQuery-Tabelle mit dem Namen passengers_per_minute zum Speichern der Datenausgabe erstellt.

    gcloud dataflow sql query \
        --job-name=dataflow-sql-quickstart \
        --region=us-central1 \
        --bigquery-dataset=taxirides \
        --bigquery-table=passengers_per_minute \
    'SELECT
         TUMBLE_START("INTERVAL 60 SECOND") as period_start,
         SUM(passenger_count) AS pickup_count,
    FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
    WHERE
        ride_status = "pickup"
    GROUP BY
        TUMBLE(event_timestamp, "INTERVAL 60 SECOND")'
    

    Es kann eine Weile dauern, bis der Dataflow SQL-Job ausgeführt wird.

Im Folgenden werden die in der Dataflow SQL-Pipeline verwendeten Werte beschrieben:

  • dataflow-sql-quickstart: der Name des Dataflow-Jobs
  • us-central1: die Region, in der der Job ausgeführt wird
  • taxirides: der Name des BigQuery-Datasets, das als Senke verwendet wird
  • passengers_per_minute: der Name der BigQuery-Tabelle
  • taxirides-realtime: der Name des Pub/Sub-Themas, das als Quelle verwendet wird

Der SQL-Befehl fragt das Pub/Sub-Thema taxirides-realtime nach der Gesamtzahl der Fahrgäste ab, die alle 60 Sekunden mitgenommen werden. Dieses öffentliche Thema basiert auf dem öffentlichen Dataset "NYC Taxi & Limousine Commission".

Ergebnisse aufrufen

  • Prüfen Sie, ob die Pipeline ausgeführt wird.

    Console

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

      ZU JOBS

    2. Klicken Sie in der Liste der Jobs auf dataflow-sql-quickstart.

    3. Achten Sie im Bereich Jobinfo darauf, dass das Feld Jobstatus auf Wird ausgeführt gesetzt ist.

      Der Start des Jobs kann einige Minuten dauern. Der Jobstatus ist auf In Warteschlange gesetzt, bis der Job gestartet wird.

    4. Prüfen Sie auf dem Tab Jobgrafik, ob jeder Schritt ausgeführt wird.

      Nach dem Start des Jobs kann es einige Minuten dauern, bis die Schritte ausgeführt werden.

      Die Dataflow-Jobgrafik mit zwei zusammengesetzten Schritten Grafik: Der erste Schritt wird 6 Minuten und 45 Sekunden und der zweite Schritt 1 Sekunde lang ausgeführt

    5. Rufen Sie in der Cloud Console die Seite BigQuery auf.

      BigQuery aufrufen

    6. Fügen Sie im Editor die folgende SQL-Abfrage ein und klicken Sie auf Ausführen:

      'SELECT *
      FROM taxirides.passengers_per_minute
      ORDER BY pickup_count DESC
      LIMIT 5'
      

      Diese Abfrage gibt die größten Aktivität-Intervalle aus der Tabelle passengers_per_minute zurück.

    gcloud

    1. Rufen Sie die Liste der Dataflow-Jobs ab, die in Ihrem Projekt ausgeführt werden:

      gcloud dataflow jobs list
      
    2. Weitere Informationen zum Job dataflow-sql-quickstart abrufen:

      gcloud dataflow jobs describe JOB_ID
      

      Ersetzen Sie JOB_ID durch die Job-ID des dataflow-sql-quickstart-Jobs aus Ihrem Projekt.

    3. Geben Sie die Intervalle mit der größten Aktivität aus der Tabelle passengers_per_minute zurück.

      bq query \
      'SELECT *
      FROM taxirides.passengers_per_minute
      ORDER BY pickup_count DESC
      LIMIT 5'
      

Bereinigen

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

  1. Rufen Sie zum Abbrechen des Dataflow-Jobs die Seite Jobs auf.

    ZU JOBS

  2. Klicken Sie in der Liste der Jobs auf dataflow-sql-quickstart.

  3. Klicken Sie auf Beenden  > Abbrechen > Job anhalten

  4. Löschen Sie das Dataset taxirides.

    bq rm taxirides
    
  5. Geben Sie y ein, um den Löschvorgang zu bestätigen.

Nächste Schritte