Usa la interfaz de línea de comandos de Dataflow

Cuando ejecutas tu canalización con el servicio administrado de Dataflow, puedes obtener información sobre tu trabajo de Dataflow mediante la interfaz de línea de comandos de Dataflow. La interfaz de línea de comandos de Dataflow pertenece a la herramienta de línea de comandos en el SDK de Cloud.

Si prefieres interactuar y ver tus trabajos de Dataflow con Cloud Console, usa la interfaz de supervisión de Dataflow.

Instala el componente de línea de comandos de Dataflow

Para usar la interfaz de línea de comandos de Dataflow desde tu terminal local, instala y configura el SDK de Cloud.

La interfaz de línea de comandos de Dataflow está disponible automáticamente para Cloud Shell.

Ejecuta los comandos

Interactúa con la interfaz de línea de comandos de Dataflow mediante la ejecución de los comandos disponibles. Para ver la lista de comandos de Dataflow disponibles, escribe el siguiente comando en tu shell o terminal:

  gcloud dataflow --help

Como se ve en el resultado, el comando de Dataflow tiene los siguientes tres grupos: flex-template, jobs y sql.

Comandos de la plantilla flexible

El grupo de subcomandos flex-template te permite trabajar con plantillas de Dataflow Flex. Se admiten las siguientes operaciones:

  • build: compila un archivo de plantilla flexible a partir de los parámetros especificados.
  • run: ejecuta un trabajo desde la ruta de acceso especificada.

Para ejecutar una plantilla, debes crear un archivo de especificación de plantilla que esté almacenado en un bucket de Cloud Storage. El archivo de especificación de plantilla contiene toda la información necesaria para ejecutar el trabajo, como la información del SDK y los metadatos. Además, el archivo metadata.json contiene información sobre la plantilla, como el nombre, la descripción y los parámetros de entrada. Después de crear el archivo de especificación de la plantilla, puedes compilar la plantilla flexible con Java o Python.

Para crear y ejecutar una plantilla flexible con gcloud command-line tool, consulta el instructivo Usar plantillas flexibles.

Comandos jobs

El grupo de subcomandos jobs te permite ejecutar trabajos de Dataflow en tu proyecto. Se admiten las siguientes operaciones:

  • cancel: cancela todos los trabajos que coinciden con los argumentos de la línea de comandos.
  • describe: da salida al objeto de trabajo resultante de la API de Get.
  • drain: agota todos los trabajos que coinciden con los argumentos de la línea de comandos.
  • list: muestra una lista de todos los trabajos de un proyecto en particular, que se filtran de forma opcional según la región.
  • run: ejecuta un trabajo desde la ruta de acceso especificada.
  • show: muestra una descripción breve del trabajo dado.

Para obtener una lista de todos los trabajos de Dataflow de su proyecto, ejecute el siguiente comando en su shell o terminal:

gcloud dataflow jobs list

El comando muestra una lista de tus trabajos actuales. El siguiente es un resultado de muestra:

  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

Con el trabajo ID que se muestra para cada trabajo, puedes ejecutar el comando describe a fin de mostrar más información sobre un trabajo.

gcloud dataflow jobs describe JOB_ID

Reemplaza JOB_ID con el trabajo ID de uno de los trabajos de Dataflow de tu proyecto.

Por ejemplo, si ejecutas el comando para el ID de trabajo 2015-02-09_11_39_40-15635991037808002875, el siguiente es un resultado de muestra:

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

Para formatear el resultado en JSON, ejecuta el comando con la opción --format=json:

gcloud --format=json dataflow jobs describe JOB_ID

Reemplaza JOB_ID con el trabajo ID de uno de los trabajos de Dataflow de tu proyecto.

El siguiente resultado de muestra tiene el formato 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"
}

Comandos de SQL

El grupo de subcomandos sql te permite trabajar con Dataflow SQL. El comando gcloud Dataflow sql query acepta y ejecuta una consulta de SQL especificada por el usuario en Dataflow.

Por ejemplo, para ejecutar una consulta de SQL simple en un trabajo de Dataflow que lee de un conjunto de datos de BigQuery y escribe en otro conjunto de datos de BigQuery, ejecute la siguiente información en su shell o 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

Reemplaza lo siguiente:

  • PROJECT_ID: un nombre global único para tu proyecto
  • JOB_NAME: un nombre para tu trabajo de Dataflow
  • OUTPUT_DATASET: un nombre para el conjunto de datos de salida
  • OUTPUT_TABLE: un nombre para la tabla de salida

Iniciar un trabajo de Dataflow SQL puede tardar varios minutos. No puedes actualizar el trabajo después de crearlo. Los trabajos de Dataflow SQL usan el ajuste de escala automático y Dataflow elige automáticamente el modo de ejecución, ya sea por lotes o de transmisión. No puedes controlar este comportamiento para los trabajos de Dataflow SQL. Para detener los trabajos de Dataflow SQL, usa el comando Cancelcancel. No se admite la detención de un trabajo de Dataflow SQL con drain.

Si deseas obtener más información para usar los comandos de SQL para Dataflow, consulta la documentación de referencia de SQL y de gcloud Dataflow sql query.

Usa comandos con extremos regionales

La interfaz de línea de comandos de Dataflow admite extremos regionales desde la versión 176 de la herramienta de gcloud. Usa la opción --region con cualquier comando para especificar el extremo regional que administra tu trabajo.

Por ejemplo, gcloud dataflow jobs list enumera los trabajos de todas las regiones, pero gcloud dataflow jobs list --region=europe-west1 solo muestra los trabajos administrados desde europe-west1.