Utiliser l'interface de ligne de commande 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. L'interface de ligne de commande Dataflow fait partie de l'outil de ligne de commande du SDK Cloud.

Si vous préférez afficher et interagir avec vos tâches Dataflow à l'aide de Cloud Console, 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 le SDK Cloud.

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 interface système ou votre terminal :

  gcloud dataflow --help

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

Commandes de modèle Flex

Le sous-groupe 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 créer et exécuter un modèle Flex à l'aide de gcloud command-line tool, consultez le tutoriel Utiliser des modèles Flex.

Commandes des tâches

Le sous-groupe jobs vous permet de travailler avec des tâches 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 SQL

Le sous-groupe 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 tâches 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 points de terminaison régionaux

L'interface de ligne de commande Dataflow est compatible avec les points de terminaison régionaux depuis la version 176 de l'outil gcloud. Utilisez l'option --region avec n'importe quelle commande pour spécifier le point de terminaison régional qui gère votre tâche.

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.