Utiliser l'interface de ligne de commande de Dataflow

Lorsque vous exécutez votre pipeline à l'aide du service géré Dataflow, vous pouvez obtenir des informations sur votre tâche Dataflow à l'aide de l'interface de ligne de commande Dataflow. Celle-ci fait partie de l'outil de ligne de commande de Google Cloud CLI.

Si vous préférez afficher et interagir avec vos tâches Dataflow à l'aide de la console Google Cloud, utilisez l'interface de surveillance Dataflow.

Installer le composant de ligne de commande Dataflow

Pour utiliser l'interface de ligne de commande Dataflow depuis votre terminal local, installez et configurez Google Cloud CLI.

Pour Cloud Shell, l'interface de ligne de commande Dataflow est automatiquement disponible.

Exécuter les commandes

Vous interagissez avec l'interface de ligne de commande Dataflow en exécutant les commandes disponibles. Pour afficher la liste des commandes Dataflow disponibles, saisissez la commande suivante dans votre shell ou votre terminal :

  gcloud dataflow --help

Comme le montre le résultat, la commande Dataflow comporte les quatre groupes suivants : flex-template, jobs, snapshots et sql.

Commandes de modèle Flex

La sous-commande flex-template vous permet de travailler avec des modèles Dataflow Flex. Les opérations suivantes sont acceptées :

  • build : crée un fichier de modèle Flex à partir des paramètres spécifiés.
  • run : exécute une tâche à partir du chemin spécifié.

Pour exécuter un modèle, vous devez créer un fichier de spécification de modèle stocké dans un bucket Cloud Storage. Le fichier de spécification de modèle contient toutes les informations nécessaires à l'exécution de la tâche, telles que les informations et les métadonnées du SDK. Le fichier metadata.json contient également des informations sur le modèle, telles que le nom, la description et les paramètres d'entrée. Après avoir créé le fichier de spécification de modèle, vous pouvez créer le modèle Flex à l'aide de Java ou de Python.

Pour en savoir plus sur la création et l'exécution d'un modèle Flex à l'aide de Google Cloud CLI, consultez le tutoriel Créer et exécuter des modèles Flex.

Commandes des tâches

La sous-commande jobs vous permet de travailler avec des jobs Dataflow dans votre projet. Les opérations suivantes sont acceptées :

  • cancel : annule toutes les tâches qui correspondent aux arguments de ligne de commande.
  • describe : renvoie l'objet "Job" obtenu à partir de l'API Get.
  • drain : draine toutes les tâches qui correspondent aux arguments de ligne de commande.
  • list : répertorie toutes les tâches d'un projet particulier, éventuellement filtrées par région.
  • run : exécute une tâche à partir du chemin spécifié.
  • show : affiche une brève description de la tâche donnée.

Pour obtenir la liste de toutes les tâches Dataflow de votre projet, exécutez la commande suivante dans votre interface système ou votre terminal :

gcloud dataflow jobs list

La commande renvoie la liste de vos tâches en cours. Voici un exemple de résultat :

  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

En utilisant la tâche ID affichée pour chaque tâche, vous pouvez exécuter la commande describe pour afficher plus d'informations sur une tâche.

gcloud dataflow jobs describe JOB_ID

Remplacez JOB_ID par la tâche ID de l'une des tâches Dataflow de votre projet.

Par exemple, si vous exécutez la commande pour l'ID de tâche 2015-02-09_11_39_40-15635991037808002875, voici un exemple de résultat :

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

Pour formater le résultat au format JSON, exécutez la commande avec l'option --format=json :

gcloud --format=json dataflow jobs describe JOB_ID

Remplacez JOB_ID par la tâche ID de l'une des tâches Dataflow de votre projet.

L'exemple de résultat suivant est au format JSON :

{
  "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"
}

Commandes d'instantanés

Le sous-groupe snapshots vous permet de travailler avec des instantanés Dataflow. Les opérations suivantes sont acceptées :

  • create : crée un instantané pour une tâche Dataflow.
  • delete : supprime un instantané Dataflow.
  • describe : décrit un instantané Dataflow.
  • list : répertorie tous les instantanés Dataflow d'un projet dans la région spécifiée, éventuellement filtrés par ID de tâche.

Pour en savoir plus sur l'utilisation des instantanés dans Dataflow, consultez la page Utiliser des instantanés Dataflow.

Commandes SQL

La sous-commande sql vous permet de travailler avec Dataflow SQL. La commande gcloud Dataflow sql query accepte et exécute une requête SQL spécifiée par l'utilisateur sur Dataflow.

Par exemple, pour exécuter une requête SQL simple sur une tâche Dataflow qui lit un ensemble de données BigQuery et écrit dans un autre ensemble de données BigQuery, exécutez la commande suivante dans votre interface système ou votre terminal :

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

Remplacez l'élément suivant :

  • PROJECT_ID : nom unique attribué à votre projet
  • JOB_NAME : nom de votre tâche Dataflow
  • OUTPUT_DATASET : nom de l'ensemble de données de sortie
  • OUTPUT_TABLE : nom de la table de sortie

Le démarrage d'une tâche Dataflow SQL peut prendre plusieurs minutes. Vous ne pouvez pas mettre à jour la tâche après l'avoir créée. Les tâches Dataflow SQL utilisent l'autoscaling et Dataflow choisit automatiquement le mode d'exécution soit par lot, soit par flux. Vous ne pouvez pas contrôler ce comportement pour les tâches Dataflow SQL. Pour arrêter des jobs Dataflow SQL, utilisez la commande cancel. L'arrêt d'une tâche Dataflow SQL avec drain n'est pas pris en charge.

Pour en savoir plus sur l'utilisation des commandes SQL pour Dataflow, consultez la documentation de référence sur Dataflow SQL et gcloud Dataflow sql query.

Utiliser des commandes avec des régions

L'interface de ligne de commande Dataflow est compatible avec les régions à partir de la version 176 de la gcloud CLI. Utilisez l'option --region avec n'importe quelle commande pour spécifier la région qui gère votre job.

Par exemple, gcloud dataflow jobs list répertorie les tâches de toutes les régions, mais gcloud dataflow jobs list --region=europe-west1 ne répertorie que les tâches gérées à partir de europe-west1.