Dataflow Prime es una plataforma de procesamiento de datos sin servidores para canalizaciones de Apache Beam. Dataflow Prime se basa en Dataflow y usa una arquitectura de procesamiento y separada por estados. En los siguientes casos, Dataflow Prime podría mejorar la eficiencia de la canalización:
- Tu canalización se beneficiaría del Ajuste de escala automático vertical.
Dataflow Prime es compatible con canalizaciones por lotes y de transmisión. De forma predeterminada, Dataflow Prime usa Dataflow Shuffle y Dataflow Runner v2 para las canalizaciones por lotes.
Compatibilidad con versiones del SDK
Dataflow Prime es compatible con los siguientes SDK de Apache Beam:
SDK de Apache Beam para Python versión 2.21.0 o posterior
SDK de Apache Beam para Java, versión 2.30.0 o posterior
SDK de Apache Beam para Go versión 2.44.0 o posterior
Para descargar el paquete del SDK o leer las notas de la versión, consulta Descargas de Apache Beam.
Funciones de Dataflow Prime
A continuación, se muestra la lista de funciones compatibles de Dataflow Prime para diferentes tipos de canalizaciones:
- Ajuste de escala automático vertical (memoria) Admite canalizaciones de transmisión en Python, Java y Go.
- Ajuste adecuado (sugerencias de recursos). Admite canalizaciones por lotes en Python y Java.
- Visualizador de trabajos. Admite canalizaciones por lotes en Python y Java.
- Recomendaciones inteligentes. Admite canalizaciones de transmisión y por lotes en Python y Java.
- Canalizaciones de datos. Admite canalizaciones de transmisión y por lotes en Python y Java.
Las funciones de visualizador de trabajos, recomendaciones inteligentes y canalizaciones de datos también son compatibles con trabajos que no son de Dataflow Prime.
Ajuste de escala automático vertical
Esta función ajusta de forma automática la memoria disponible para las VM de trabajador de Dataflow a fin de que se adapte a las necesidades de la canalización y ayuda a prevenir errores de memoria insuficiente. En Dataflow Prime, el ajuste de escala automático vertical funciona junto con el ajuste de escala automático horizontal para escalar los recursos de forma dinámica.
Para obtener más información, consulta Ajuste de escala automático vertical.
Ajuste adecuado
Esta función usa sugerencias de recursos, una característica nueva de Apache Beam. Mediante las sugerencias de recursos, puedes especificar los requisitos de recursos para toda la canalización o para pasos específicos de la canalización. Esta función te permite crear trabajadores personalizados para diferentes pasos de una canalización. El ajuste adecuado te permite especificar recursos de canalización para maximizar la eficiencia, reducir los costos operativos y evitar errores de memoria insuficiente y otros errores de recursos. Es compatible con las sugerencias de memoria y recursos de GPU.
El ajuste correcto requiere Apache Beam 2.30.0 o una versión posterior.
Para obtener más información, consulta Ajuste adecuado.
Visualizador de trabajos
Esta función te permite ver el rendimiento de un trabajo de Dataflow y optimizar dicho rendimiento mediante la búsqueda de código ineficiente, incluidos los cuellos de botella en la paralelización. En la consola de Google Cloud, puedes hacer clic en cualquier trabajo de Dataflow en la página Trabajos para ver sus detalles. También puedes ver la lista de pasos asociados con cada etapa de la canalización.
Para obtener más información, consulta los Detalles de ejecución.
Recomendaciones inteligentes
Esta función te permite optimizar la canalización y solucionar sus problemas según las recomendaciones que se proporcionan en la pestaña Diagnóstico de la página de detalles del trabajo. En la consola de Google Cloud, puedes hacer clic en cualquier trabajo de Dataflow en la página Trabajos para ver sus detalles.
Para obtener más información, consulta Recomendaciones y diagnóstico.
Canalizaciones de datos
Esta función te permite programar trabajos, observar el uso de recursos, hacer un seguimiento de los objetivos de actualización de datos para la transmisión de datos y optimizar las canalizaciones.
Para obtener más información, consulta Trabaja con canalizaciones de datos.
Requisitos de cuotas y límites
Las cuotas y los límites son iguales para Dataflow y Dataflow Prime. Para obtener más información, consulta Cuotas y límites.
Si optas por las canalizaciones de datos, hay implicaciones adicionales para las cuotas y regiones.
Características no compatibles
Dataflow Prime no es compatible con los siguientes elementos:
Designación de tipos de VM específicos mediante la marca
--worker_machine_type
o--machine_type
para las canalizaciones de Python y--workerMachineType
para las canalizaciones de Java.Ver o usar SSH para acceder a VM de trabajador
La clase
OrderedListState
para canalizaciones de JavaUsar los Controles del servicio de VPC con ajuste de escala automático vertical Si habilitas Dataflow Prime y, luego, inicias un trabajo nuevo dentro de un perímetro de Controles del servicio de VPC, el trabajo usa Dataflow Prime sin ajuste de escala automático vertical.
Las canalizaciones de Java que cumplen con los siguientes requisitos pueden usar las clases
MapState
ySetState
:- usa Streaming Engine
- Usa la versión 2.58.0 o posterior del SDK de Apache Beam.
- no uses Runner v2
Todas las opciones de canalización que no se mencionaron de forma explícita ni en la tabla de comparación de atributos funcionan de la misma manera para Dataflow y Dataflow Prime.
Antes de usar Dataflow Prime
Para usar Dataflow Prime, puedes volver a usar el código de canalización existente y habilitar la opción Dataflow Prime a través de Cloud Shell o de manera programática.
Dataflow Prime es retrocompatible con trabajos por lotes que usan Dataflow Shuffle y trabajos de transmisión que usan Streaming Engine. Sin embargo, recomendamos probar las canalizaciones con Dataflow Prime antes de usarlas en un entorno de producción.
Si tu canalización de transmisión se ejecuta en producción, sigue estos pasos para usar Dataflow Prime:
Detén la canalización.
Habilita Dataflow Prime.
Vuelve a ejecutar la canalización.
Habilita Dataflow Prime
Para habilitar Dataflow Prime en una canalización, haz lo siguiente:
Habilita la API de Cloud Autoscaling.
Dataflow Prime usa la API de Cloud Autoscaling para ajustar la memoria de forma dinámica.
Habilita Prime en las opciones de canalización.
Puedes configurar las opciones de canalización de manera programática o mediante la línea de comandos. Para las versiones compatibles del SDK de Apache Beam, habilita la siguiente marca:
Java
--dataflowServiceOptions=enable_prime
Python
SDK de Apache Beam para Python versión 2.29.0 o posterior:
--dataflow_service_options=enable_prime
SDK de Apache Beam para Python versión 2.21.0 a 2.28.0:
--experiments=enable_prime
Go
--dataflow_service_options=enable_prime
Usa Dataflow Prime con plantillas
Si usas plantillas de Dataflow, puedes elegir habilitar Dataflow Prime de una de las siguientes maneras:
Para los trabajos que se iniciaron desde la página Crear trabajo desde plantilla:
Ve a la página Crear un trabajo a partir de una plantilla.
En el campo Experimento adicional, ingresa
enable_prime
.
Para los trabajos que se inician desde una plantilla a través de la interfaz de línea de comandos, pasa la marca
--additional-experiments=enable_prime
.Para habilitar Dataflow Prime cuando creas una plantilla, configura la marca
--experiments=enable_prime
.
Usa Dataflow Prime en notebooks de Apache Beam
Si usas un notebook de Apache Beam, puedes habilitar Dataflow Prime de manera programática mediante PipelineOptions
:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
Para obtener más información sobre cómo configurar las opciones de Dataflow en un notebook, consulta Inicia trabajos de Dataflow a partir de una canalización creada en el notebook.
Comparación de funciones entre Dataflow y Dataflow Prime
En la siguiente tabla, se comparan las funciones disponibles de ambas variantes de Dataflow.
Función | Dataflow Prime | Dataflow |
---|---|---|
Runner v2 | Función predeterminada sin opción de desactivar trabajos por lotes y opcional para trabajos de transmisión | Función predeterminada con una opción de desactivar trabajos por lotes y opcional para trabajos de transmisión |
Dataflow Shuffle para trabajos por lotes | Función predeterminada con opción para desactivarla | Función predeterminada con opción para desactivarla |
Streaming Engine para trabajos de transmisión | Función opcional para las canalizaciones de Java y siempre activa para las canalizaciones de Python | Función opcional para las canalizaciones de Java y siempre activa para las canalizaciones de Python desde la versión 2.45.0 |
Ajuste de escala automático horizontal | Función predeterminada con opción para desactivarla | Función predeterminada con opción para desactivarla |
Ajuste de escala automático vertical | Función predeterminada con opción para desactivarla | No aplicable |
Ajuste adecuado | Función opcional | Función opcional |
Facturación | Facturación sin servidores | Facturación estándar |
¿Qué sigue?
- Lee sobre las cuotas de Dataflow.
- Aprende a configurar las opciones de canalización.
- Consulta las opciones de canalización disponibles para las canalizaciones de Java y Python.
- Obtén más información sobre las funciones de ajuste automático de Dataflow Prime.
- Obtén más información sobre las GPU de Dataflow.