Ejecuta plantillas

Una vez creada y organizada tu plantilla de Cloud Dataflow, ejecútala con Google Cloud Platform Console, la API de REST o la herramienta de línea de comandos de gcloud. Puedes implementar tus trabajos de plantilla de Cloud Dataflow desde varios entornos, incluidos el entorno estándar de App Engine y otros entornos restringidos.

Nota: Además del archivo de plantilla, la ejecución de la canalización con plantilla se basa en archivos que se habilitaron a etapas y referenciaron en el momento de la creación de la plantilla. Si mueves o quitas los archivos habilitados a etapas, el trabajo de canalización fallará.

Usa GCP Console

Puedes usar GCP Console para ejecutar plantillas proporcionadas por Google y personalizadas de Cloud Dataflow.

Plantillas que proporciona Google

Usa este comando para ejecutar una plantilla proporcionada por Google:

  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ve a la página de Cloud Dataflow
  3. Haz clic en CREAR UN TRABAJO A PARTIR DE UNA PLANTILLA.
  4. Botón Crear trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona la plantilla proporcionada por Google que quieras ejecutar en el menú desplegable Plantilla de Cloud Dataflow.
  6. Formulario de ejecución de una plantilla de WordCount
  7. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
  8. Ingresa los valores de tus parámetros en los campos de parámetros provistos. No necesitarás la sección Additional Parameters (Parámetros adicionales) cuando utilices una plantilla de Google.
  9. Haz clic en Ejecutar trabajo.

Plantillas personalizadas

Usa este comando para ejecutar una plantilla personalizada:

  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ve a la página de Cloud Dataflow
  3. Haz clic en CREAR UN TRABAJO A PARTIR DE UNA PLANTILLA.
  4. Botón Crear trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona Plantilla personalizada en el menú desplegable de Plantilla de Cloud Dataflow.
  6. Formulario de ejecución de una plantilla personalizada
  7. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
  8. Ingresa la ruta de tu archivo a una plantilla de Cloud Storage en el campo de la ruta de la plantilla de Cloud Storage.
  9. Si tu plantilla requiere de parámetros, haz clic en Add item (Agregar elemento) en la sección Additional Parameters (Parámetros adicionales). Ingresa el Nombre y el Valor del parámetro. Repite este paso para cada parámetro que necesites.
  10. Haz clic en Ejecutar trabajo.

Usa la API de REST

Para ejecutar una plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

Consulta la referencia de la API de REST de projects.templates.launch para obtener más información sobre los parámetros disponibles.

Ejemplo 1: plantilla personalizada, trabajo en lotes

Esta solicitud projects.templates.launch de ejemplo crea un trabajo en lotes a partir de una plantilla que lee un archivo de texto y escribe un archivo de texto de salida. Si la solicitud se ejecuta de manera correcta, el cuerpo de la respuesta contendrá una instancia de LaunchTemplateResponse.

Debes modificar los valores siguientes:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre de trabajo a elección. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
  • Reemplaza [YOUR_BUCKET_NAME] por el nombre de tu depósito de Cloud Storage.
  • Establece gcsPath en la ubicación de Cloud Storage del archivo de plantilla.
  • Establece parameters en la lista de pares clave-valor.
  • Configura tempLocation en una ubicación para la que tengas permiso de escritura. Este valor es obligatorio para ejecutar plantillas de Google.
    POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://[YOUR_BUCKET_NAME]/templates/TemplateName
    {
        "jobName": "[JOB_NAME]",
        "parameters": {
            "inputFile" : "gs://[YOUR_BUCKET_NAME]/input/my_input.txt",
            "outputFile": "gs://[YOUR_BUCKET_NAME]/output/my_output"
        },
        "environment": {
            "tempLocation": "gs://[YOUR_BUCKET_NAME]/temp",
            "zone": "us-central1-f"
        }
    }

Ejemplo 2: plantilla personalizada, trabajo de transmisión

La solicitud projects.templates.launch crea un trabajo de transmisión a partir de una plantilla que lee desde un tema de Cloud Pub/Sub y escribe en una tabla de BigQuery. La tabla de BigQuery debe existir con anterioridad, con el esquema adecuado. Si se ejecuta de manera correcta, el cuerpo de la respuesta contendrá una instancia de LaunchTemplateResponse.

Debes modificar los valores siguientes:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre de trabajo a elección. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
  • Reemplaza [YOUR_BUCKET_NAME] por el nombre del depósito de Cloud Storage.
  • Reemplaza [YOUR_TOPIC_NAME] por el nombre de tu tema de Cloud Pub/Sub.
  • Reemplaza [YOUR_DATASET] por tu conjunto de datos de BigQuery y [YOUR_TABLE_NAME] por el nombre de tu tabla de BigQuery.
  • Establece gcsPath en la ubicación de Cloud Storage del archivo de plantilla.
  • Establece parameters en la lista de pares clave-valor.
  • Configura tempLocation en una ubicación para la que tengas permiso de escritura. Este valor es obligatorio para ejecutar plantillas de Google.
    POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://[YOUR_BUCKET_NAME]/templates/TemplateName
    {
        "jobName": "[JOB_NAME]",
        "parameters": {
            "topic": "projects/[YOUR_PROJECT_ID]/topics/[YOUR_TOPIC_NAME]",
            "table": "[YOUR_PROJECT_ID]:[YOUR_DATASET].[YOUR_TABLE_NAME]"
        },
        "environment": {
            "tempLocation": "gs://[YOUR_BUCKET_NAME]/temp",
            "zone": "us-central1-f"
        }
    }

Usa bibliotecas cliente de la API de Google

Considera usar las bibliotecas cliente de la API de Google para realizar llamadas a la API de REST de Cloud Dataflow con facilidad. En esta secuencia de comandos de ejemplo, se usa la biblioteca cliente de la API de Google para Python.

En este ejemplo, debes establecer las variables siguientes:

  • project: configura el ID del proyecto.
  • job: se establece en el nombre de trabajo único que elijas. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
  • template: se establece en la ubicación de Cloud Storage del archivo de plantilla.
  • parameters: se establece en un diccionario con los parámetros de la plantilla.
from googleapiclient.discovery import build

# project = 'your-gcp-project'
# job = 'unique-job-name'
# template = 'gs://dataflow-templates/latest/Word_Count'
# parameters = {
#     'inputFile': 'gs://dataflow-samples/shakespeare/kinglear.txt',
#     'output': 'gs://<your-gcs-bucket>/wordcount/outputs',
# }

dataflow = build('dataflow', 'v1b3')
request = dataflow.projects().templates().launch(
    projectId=project,
    gcsPath=template,
    body={
        'jobName': job,
        'parameters': parameters,
    }
)

response = request.execute()

Para obtener más información sobre las opciones disponibles, consulta el método projects.templates.launch en la referencia de la API de REST de Cloud Dataflow.

Usa gcloud

Nota: Para usar la herramienta de línea de comandos de gcloud a fin de ejecutar plantillas, debes tener la versión 138.0.0 o posterior del SDK de Cloud.

La herramienta de línea de comandos de gcloud puede ejecutar una plantilla personalizada o una proporcionada por Google con el comando gcloud dataflow jobs run. Los ejemplos de ejecución de plantillas proporcionadas por Google se documentan en la página de plantillas proporcionadas por Google.

En los ejemplos siguientes de plantillas personalizadas, configura estos valores:

  • Reemplaza [JOB_NAME] por un nombre de trabajo a elección. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
  • Reemplaza [YOUR_BUCKET_NAME] por el nombre del depósito de Cloud Storage.
  • Debes incluir la marca --gcs-location. Establece --gcs-location en la ubicación de Cloud Storage del archivo de plantilla.
  • Establece --parameters en la lista de parámetros separados por comas para pasar al trabajo. No se admiten espacios ni valores entre las comas.

Ejemplo 1: plantilla personalizada, trabajo en lotes

En este ejemplo, se crea un trabajo en lotes a partir de una plantilla que lee un archivo de texto y escribe un archivo de texto de salida.

    gcloud dataflow jobs run [JOB_NAME] \
        --gcs-location gs://[YOUR_BUCKET_NAME]/templates/MyTemplate \
        --parameters inputFile=gs://[YOUR_BUCKET_NAME]/input/my_input.txt,outputFile=gs://[YOUR_BUCKET_NAME]/output/my_output

La solicitud muestra una respuesta con el siguiente formato.

    id: 2016-10-11_17_10_59-1234530157620696789
    projectId: [YOUR_PROJECT_ID]
    type: JOB_TYPE_BATCH

Ejemplo 2: Plantilla personalizada, trabajo de transmisión

En este ejemplo, se crea un trabajo de transmisión que lee a partir de un tema de Cloud Pub/Sub y escribe en una tabla de BigQuery. La tabla de BigQuery debe existir con anterioridad, con el esquema adecuado.

    gcloud dataflow jobs run [JOB_NAME] \
        --gcs-location gs://[YOUR_BUCKET_NAME]/templates/MyTemplate \
        --parameters topic=projects/project-identifier/topics/resource-name,table=my_project:my_dataset.my_table_name

La solicitud muestra una respuesta con el siguiente formato.

    id: 2016-10-11_17_10_59-1234530157620696789
    projectId: [YOUR_PROJECT_ID]
    type: JOB_TYPE_STREAMING

A fin de obtener una lista completa de las marcas para el comando gcloud dataflow jobs run, consulta la referencia de la herramienta de gcloud.

Supervisión y solución de problemas

La interfaz de Dataflow Monitoring te permite supervisar tus trabajos de Cloud Dataflow. Si un trabajo presenta errores, puedes encontrar sugerencias para solucionarlos, estrategias de depuración y un catálogo de errores comunes en la guía Solucionar problemas de tu canalización.

Actualiza tu canalización

Por el momento. no se admite la actualización de una canalización existente que usa una plantilla de Cloud Dataflow.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.