Plantillas de Dataflow

Las plantillas de Dataflow te permiten almacenar en etapa intermedia las canalizaciones en Google Cloud y ejecutarlas mediante Google Cloud Console, la herramienta de línea de comandos de gcloud o las llamadas a la API de REST. Las plantillas clásicas se almacenan en etapa intermedia como grafos de ejecución en Cloud Storage, mientras que las plantillas flexibles empaquetan la canalización como una imagen de Docker y la almacena en etapa intermedia en el Container Registry del proyecto. Puedes usar una de las plantillas que proporciona Google o crear las tuyas.

Las plantillas te proporcionan beneficios adicionales en comparación con la implementación sin plantillas de Dataflow, por ejemplo:

  • Ejecutar la canalización no requiere que vuelvas a compilar el código cada vez.
  • Puedes ejecutar las canalizaciones sin el entorno de desarrollo y las dependencias asociadas que son comunes en una implementación sin plantillas. Esto es útil para programar trabajos por lotes recurrentes.
  • Los parámetros del entorno de ejecución te permiten personalizar la ejecución de la canalización.
  • Los usuarios no técnicos pueden ejecutar plantillas mediante Google Cloud Console, la herramienta de línea de comandos de gcloud o la API de REST.

Compara trabajos sin plantillas y con plantillas

Las plantillas de Dataflow presentan un nuevo flujo de trabajo de desarrollo y ejecución que difiere del flujo de trabajo de ejecución de trabajos sin plantillas. El flujo de trabajo de la plantilla separa el paso de desarrollo del paso de ejecución.

Trabajos de Dataflow sin plantillas

Por lo general, el desarrollo de la canalización de Apache Beam y la ejecución de los trabajos se producen en un entorno de desarrollo.

Flujo de trabajo típico para trabajos de Dataflow sin plantillas:

  1. Los desarrolladores crean un entorno de desarrollo y desarrollan su canalización. El entorno incluye el SDK de Apache Beam y otras dependencias.
  2. Los usuarios ejecutan la canalización desde el entorno de desarrollo. El SDK de Apache Beam almacena en etapa intermedia archivos en Cloud Storage, crea un archivo de solicitud de trabajo y envía el archivo al servicio de Dataflow.

Trabajos de Dataflow con plantillas

Si usas plantillas clásicas o plantillas flexibles, la etapa de pruebas y la ejecución son pasos que se realizan por separado. Esta separación te brinda flexibilidad adicional para decidir quién puede ejecutar trabajos y desde dónde.

Este es el flujo de trabajo típico para trabajos de Dataflow con plantilla:

  1. Los desarrolladores crean un entorno de desarrollo y desarrollan su canalización. El entorno incluye el SDK de Apache Beam y otras dependencias.
  2. Este paso depende del tipo de plantilla que uses.
    • Plantillas clásicas. Los desarrolladores ejecutan la canalización y crean una plantilla. El SDK de Apache Beam almacena en etapa intermedia archivos en Cloud Storage, crea un archivo de plantilla (similar al de solicitud de trabajo) y guarda el archivo de plantilla en Cloud Storage.
    • Plantillas flexibles. Los desarrolladores empaquetan la canalización en una imagen de Docker y, luego, usan la herramienta de línea de comandos de gcloud para compilar y guardar el archivo de especificaciones de la plantilla flexible en Cloud Storage.
  3. Otros usuarios pueden ejecutar trabajos con facilidad mediante Cloud Console, la herramienta de línea de comandos de gcloud o la API de REST para enviar solicitudes de ejecución de archivos de plantillas al servicio de Dataflow.

Además, puedes clonar los trabajos de plantillas clásicas a través de la interfaz de usuario de supervisión de Dataflow. El formulario de envío para los trabajos clonados tiene valores de parámetros prepropagados. Sin embargo, se pueden modificar antes de ejecutar el trabajo.

Para clonar un trabajo, realiza los siguientes pasos:

  1. Navega hasta la página Detalles del trabajo del trabajo que deseas clonar.
  2. Haz clic en Clonar.
  3. Si es necesario, actualiza los parámetros del trabajo.
  4. Haz clic en Ejecutar trabajo para enviar el trabajo nuevo.

Evalúa qué tipo de plantilla usar

Las plantillas flexibles ofrecen más flexibilidad sobre las plantillas clásicas, ya que permiten que las pequeñas variaciones de los trabajos de Dataflow se inicien desde una sola plantilla y que se pueda usar cualquier E/S de origen o receptor. Para las plantillas clásicas, el grafo de ejecución se compila durante el proceso de creación de la plantilla. El grafo de ejecución para plantillas flexibles se crea de forma dinámica según los parámetros del entorno de ejecución que proporciona el usuario cuando se ejecuta la plantilla. Esto significa que cuando usas plantillas flexibles, puedes hacer pequeñas variaciones para realizar diferentes tareas con la misma plantilla subyacente, como cambiar los formatos de archivo de origen o de receptor.

Compara trabajos con plantillas

En la siguiente tabla, se resumen las similitudes y diferencias entre las plantillas clásicas y flexibles:
Función Plantillas clásicas Plantillas flexibles
Separar los pasos de etapa de pruebas y ejecución
Ejecutar la plantilla mediante Google Cloud Console, la herramienta de gcloud o las llamadas a la API de REST
Ejecutar la canalización sin volver a compilar el código
Ejecutar la canalización sin un entorno de desarrollo y dependencias asociadas
Personalizar la ejecución de canalizaciones con parámetros de entorno de ejecución
Ejecutar validaciones durante la construcción del grafo del trabajo para reducir errores de entorno de ejecución No
Poder cambiar el grafo de ejecución de trabajos después de crear la plantilla No
Poder actualizar trabajos de transmisión No
Admitir FlexRS No
Admitir parámetros de SQL No
Admitir interfaces de E/S más allá de ValueProvider No

La etapa de pruebas y la ejecución se realizan en diferentes pasos para los trabajos con plantillas clásicas y con plantillas flexibles. Sin embargo, los dos tipos de trabajos con plantillas dan como resultado diferentes artefactos de etapa de pruebas. Cuando usas plantillas clásicas, el artefacto almacenado en etapa intermedia es la plantilla con el grafo de ejecución serializado JSON. Con las plantillas flexibles, el artefacto almacenado en etapa intermedia es una imagen de Docker que contiene el archivo JAR o el código de Python.

Requisitos de la versión del SDK

Para crear tus propias plantillas, asegúrate de que la versión del SDK de Apache Beam admita la creación de plantillas.

Java: SDK 2.x

Si quieres crear plantillas con el SDK 2.x de Apache Beam para Java, debes tener la versión 2.0.0-beta3 o superior.

Python

Si quieres crear plantillas con el SDK 2.x de Apache Beam para Python, debes tener la versión 2.0.0 o superior.

Java: SDK 1.x

Para ejecutar plantillas con la herramienta de línea de comandos de gcloud, debes tener el SDK de Cloud versión 138.0.0 o posterior.

¿Qué sigue?