Dataflow-Befehlszeile verwenden

Wenn Sie Ihre Pipeline mit dem verwalteten Dataflow-Dienst ausführen, können Sie Informationen über Ihren Dataflow-Job über die Dataflow-Befehlszeile abrufen. Die Dataflow-Befehlszeile ist Teil des Befehlszeilentools in der Google Cloud-Befehlszeile.

Wenn Sie Ihre Dataflow-Jobs lieber in der Google Cloud Console aufrufen und mit ihnen interagieren möchten, verwenden Sie die Monitoring-Oberfläche von Dataflow.

Dataflow-Befehlszeilenkomponente installieren

Wenn Sie die Dataflow-Befehlszeile von Ihrem lokalen Terminal aus verwenden möchten, installieren und konfigurieren Sie Google Cloud CLI.

Für Cloud Shell ist die Dataflow-Befehlszeile automatisch verfügbar.

Die Befehle ausführen

Die Interaktion mit der Dataflow-Befehlszeile erfolgt durch die Ausführung der verfügbaren Befehle. Geben Sie folgenden Befehl in der Shell oder im Terminal ein, um die Liste der verfügbaren Dataflow-Befehle aufzurufen:

  gcloud dataflow --help

Wie in der Ausgabe dargestellt, enthält der Dataflow-Befehl die folgenden vier Gruppen: flex-template, jobs, snapshots und sql.

Flex-Vorlagenbefehle

Die Unterbefehlsgruppe flex-template ermöglicht Ihnen die Arbeit mit Dataflow Flex-Vorlagen. Die folgenden Vorgänge werden unterstützt:

  • build: Erstellt eine Flex-Vorlagendatei aus den angegebenen Parametern.
  • run: Führt einen Job über den angegebenen Pfad aus.

Zum Ausführen einer Vorlage müssen Sie eine Vorlagenspezifikationsdatei erstellen, die in einem Cloud Storage-Bucket gespeichert ist. Die Vorlagenspezifikationsdatei enthält alle erforderlichen Informationen, um den Job auszuführen, z. B. die SDK-Informationen und Metadaten. Darüber hinaus enthält die Datei metadata.json Informationen zur Vorlage, z. B. den Namen, eine Beschreibung und Eingabeparameter. Nachdem Sie die Vorlagenspezifikationsdatei erstellt haben, können Sie die Flex-Vorlage mithilfe von Java oder Python erstellen.

Informationen zum Erstellen und Ausführen einer Flex-Vorlage mit der Google Cloud CLI finden Sie in der Anleitung Flex-Vorlagen erstellen und ausführen.

Befehle vom Typ "Jobs"

Mit der Unterbefehlsgruppe jobs können Sie mit Dataflow-Jobs in Ihrem Projekt arbeiten. Die folgenden Vorgänge werden unterstützt:

  • cancel: Bricht alle den Befehlszeilenargumenten entsprechende Jobs ab.
  • describe: Gibt das aus der Get API resultierende Jobobjekt aus.
  • drain: Bricht alle den Befehlszeilenargumenten entsprechende Jobs ab.
  • list: Listet alle Jobs in einem bestimmten Projekt auf, die optional nach Region gefiltert werden können.
  • run: Führt einen Job über den angegebenen Pfad aus.
  • show: Zeigt eine kurze Beschreibung des entsprechenden Jobs an.

Führen Sie folgenden Befehl in der Shell oder im Terminal aus, um eine Liste aller Dataflow-Jobs in Ihrem Projekt abzurufen:

gcloud dataflow jobs list

Der Befehl gibt eine Liste Ihrer aktuellen Jobs zurück. Hier ein Beispiel für eine Ausgabe:

  ID                                        NAME                                    TYPE   CREATION_TIME        STATE   REGION
  2015-06-03_16_39_22-4020553808241078833   wordcount-janedoe-0603233849            Batch  2015-06-03 16:39:22  Done    us-central1
  2015-06-03_16_38_28-4363652261786938862   wordcount-johndoe-0603233820            Batch  2015-06-03 16:38:28  Done    us-central1
  2015-05-21_16_24_11-17823098268333533078  bigquerytornadoes-johndoe-0521232402    Batch  2015-05-21 16:24:11  Done    europe-west1
  2015-05-21_13_38_06-16409850040969261121  bigquerytornadoes-johndoe-0521203801    Batch  2015-05-21 13:38:06  Done    us-central1
  2015-05-21_13_17_18-18349574013243942260  bigquerytornadoes-johndoe-0521201710    Batch  2015-05-21 13:17:18  Done    europe-west1
  2015-05-21_12_49_37-9791290545307959963   wordcount-johndoe-0521194928            Batch  2015-05-21 12:49:37  Done    us-central1
  2015-05-20_15_54_51-15905022415025455887  wordcount-johndoe-0520225444            Batch  2015-05-20 15:54:51  Failed  us-central1
  2015-05-20_15_47_02-14774624590029708464  wordcount-johndoe-0520224637            Batch  2015-05-20 15:47:02  Done    us-central1

Mit dem Job ID, der für jeden Job angezeigt wird, können Sie mit dem Befehl describe weitere Informationen zu einem Job aufrufen.

gcloud dataflow jobs describe JOB_ID

Ersetzen Sie JOB_ID durch den Job ID eines der Dataflow-Jobs aus Ihrem Projekt.

Wenn Sie beispielsweise den Befehl für die Job-ID 2015-02-09_11_39_40-15635991037808002875 ausführen, sieht das Beispiel so aus:

createTime: '2015-02-09T19:39:41.140Z'
currentState: JOB_STATE_DONE
currentStateTime: '2015-02-09T19:56:39.510Z'
id: 2015-02-09_11_39_40-15635991037808002875
name: tfidf-bchambers-0209193926
projectId: google.com:clouddfe
type: JOB_TYPE_BATCH

Führen Sie den Befehl mit der Option --format=json aus, um das Ergebnis in JSON zu formatieren:

gcloud --format=json dataflow jobs describe JOB_ID

Ersetzen Sie JOB_ID durch den Job ID eines der Dataflow-Jobs aus Ihrem Projekt.

Die folgende Beispielausgabe ist im JSON-Format formatiert:

{
  "createTime": "2015-02-09T19:39:41.140Z",
  "currentState": "JOB_STATE_DONE",
  "currentStateTime": "2015-02-09T19:56:39.510Z",
  "id": "2015-02-09_11_39_40-15635991037808002875",
  "name": "tfidf-bchambers-0209193926",
  "projectId": "google.com:clouddfe",
  "type": "JOB_TYPE_BATCH"
}

Befehle vom Typ "Snapshots"

Die Unterbefehlsgruppe snapshots ermöglicht Ihnen die Arbeit mit Dataflow Snapshots. Die folgenden Vorgänge werden unterstützt:

  • create: Erstellt einen Snapshot für einen Dataflow-Job.
  • delete: Löscht einen Dataflow-Snapshot.
  • describe: Beschreibt einen Dataflow-Snapshot.
  • list: Listet alle Dataflow-Snapshots in einem Projekt in der angegebenen Region auf, optional nach Job-ID gefiltert.

Weitere Informationen zur Verwendung von Snapshots in Dataflow finden Sie unter Dataflow-Snapshots verwenden.

SQL-Befehle

Die Unterbefehlsgruppe sql ermöglicht Ihnen die Arbeit mit Dataflow SQL. Der Befehl gcloud Dataflow sql query akzeptiert und führt eine benutzerdefinierte SQL-Abfrage in Dataflow aus.

Führen Sie beispielsweise in der Shell oder im Terminal Folgendes aus, um eine einfache SQL-Abfrage für einen Dataflow-Job auszuführen, der aus einem BigQuery-Dataset liest und in ein anderes BigQuery-Dataset schreibt:

gcloud dataflow sql query 'SELECT word FROM
bigquery.table.PROJECT_ID.input_dataset.input_table
where count > 3'
    --job-name=JOB_NAME \
    --region=us-west1 \
    --bigquery-dataset=OUTPUT_DATASET \
    --bigquery-table=OUTPUT_TABLE

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ein global eindeutiger Name für Ihr Projekt
  • JOB_NAME: Name des Dataflow-Jobs
  • OUTPUT_DATASET: Ein Name für das Ausgabe-Dataset
  • OUTPUT_TABLE: Ein Name für die Ausgabetabelle

Das Starten eines Dataflow SQL-Jobs kann einige Minuten dauern. Sie können den Job nach der Erstellung nicht mehr aktualisieren. Dataflow-SQL-Jobs nutzen Autoscaling und Dataflow wählt automatisch den Ausführungsmodus Batch oder Streaming. Sie können dieses Verhalten gegenüber Dataflow SQL-Jobs nicht steuern. Verwenden Sie den Befehl cancel, um Dataflow SQL-Jobs zu beenden. Das Beenden eines Dataflow SQL-Jobs per drain wird nicht unterstützt.

Weitere Informationen zur Verwendung von SQL-Befehlen für Dataflow finden Sie in der Dataflow-SQL-Referenz und in der Dokumentation zu gcloud Dataflow sql query.

Befehle mit Regionen verwenden

Die Dataflow-Befehlszeile unterstützt ab Version 176 der gcloud CLI Regionen. Verwenden Sie die Option --region mit einem beliebigen Befehl, um die Region anzugeben, in der Ihr Job verwaltet wird.

Beispiel: gcloud dataflow jobs list listet Jobs aus allen Regionen auf, gcloud dataflow jobs list --region=europe-west1 jedoch nur Jobs, die von europe-west1 verwaltet werden.