Dataflow Prime es una plataforma de procesamiento de datos sin servidor para flujos de Apache Beam. Dataflow Prime, que se basa en Dataflow, usa una arquitectura separada por computación y estado. En los siguientes casos, Dataflow Prime puede mejorar la eficiencia de la canalización:
- Tu canal se beneficiaría del autoescalado vertical.
Dataflow Prime admite tanto las canalizaciones por lotes como las de streaming. De forma predeterminada, Dataflow Prime usa Dataflow Shuffle y Dataflow Runner v2 para los flujos de procesamiento por lotes.
Compatibilidad con versiones del SDK
Dataflow Prime admite los siguientes SDKs de Apache Beam:
Versión 2.21.0 o posterior del SDK de Apache Beam para Python
Versión 2.30.0 o posterior del SDK de Java de Apache Beam
Versión 2.44.0 o posterior del SDK de Go de Apache Beam
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 de Dataflow Prime admitidas para diferentes tipos de canalizaciones:
- Autoescalado vertical (memoria). Admite las canalizaciones de streaming en Python, Java y Go.
- Ajuste adecuado (sugerencias de recursos). Admite flujos de procesamiento por lotes en Python y Java.
- Visualizador de trabajos Admite flujos de procesamiento por lotes en Python y Java.
- Recomendaciones inteligentes. Admite tanto las canalizaciones de streaming como las de procesamiento por lotes en Python y Java.
- Flujos de procesamiento de datos. Admite tanto las canalizaciones de streaming como las de procesamiento por lotes en Python y Java.
Las funciones Visualizador de tareas, Recomendaciones inteligentes y Pipelines de datos también se admiten en tareas que no son de Dataflow Prime.
Autoescalado vertical
Esta función ajusta automáticamente la memoria disponible para las VMs de los trabajadores de Dataflow de forma que se adapte a las necesidades de la canalización y ayude a evitar errores de falta de memoria. En Dataflow Prime, el autoescalado vertical funciona junto con el autoescalado horizontal para escalar los recursos de forma dinámica.
Para obtener más información, consulta Autoescalado vertical.
Ajuste adecuado
Esta función usa pistas de recursos, una función de Apache Beam. Si usas sugerencias de recursos, puedes especificar los requisitos de recursos de toda la canalización o de pasos concretos 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 la canalización para maximizar la eficiencia, reducir los costes operativos y evitar errores de falta de memoria y otros recursos. Admite sugerencias de memoria y recursos de GPU.
Para que el ajuste sea correcto, se necesita Apache Beam 2.30.0 o una versión posterior.
Para obtener más información, consulta Ajuste correcto.
Visualizador de tareas
Esta función te permite ver el rendimiento de una tarea de Dataflow y optimizarlo buscando código ineficiente, incluidos los cuellos de botella de paralelización. En la consola de Google Cloud , puedes hacer clic en cualquier trabajo de Dataflow de la página Trabajos para ver los detalles del trabajo. También puede ver la lista de pasos asociados a cada fase de la canalización.
Para obtener más información, consulta Detalles de la ejecución.
Recomendaciones inteligentes
Esta función le permite optimizar y solucionar problemas de la canalización en función de 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 de la página Trabajos para ver los detalles del trabajo.
Para obtener más información, consulta Diagnóstico.
Flujos de procesamiento de datos
Esta función le permite programar trabajos, observar el uso de los recursos, hacer un seguimiento de los objetivos de actualización de los datos de streaming y optimizar las canalizaciones.
Para obtener más información, consulta Trabajar con flujos de datos.
Requisitos de cuotas y límites
Las cuotas y los límites son los mismos para Dataflow y Dataflow Prime. Para obtener más información, consulta Cuotas y límites.
Si eliges Data Pipelines, habrá otras implicaciones para las cuotas y las regiones.
Funciones no compatibles
Dataflow Prime no admite lo siguiente:
- Designar tipos de VM específicos mediante las marcas
--worker_machine_type
o--machine_type
para las canalizaciones de Python y--workerMachineType
para las canalizaciones de Java. - Ver o usar SSH para iniciar sesión en las VMs de trabajador.
- Programación flexible de recursos (FlexRS).
- Usar Controles de Servicio de VPC con escalado automático vertical. Si habilitas Dataflow Prime e inicias un nuevo trabajo dentro de un perímetro de Controles de Servicio de VPC, el trabajo usará Dataflow Prime sin autoescalado vertical.
- Servicio multiproceso (MPS) de NVIDIA.
- Las canalizaciones de Java que cumplan los siguientes requisitos pueden usar las clases
MapState
ySetState
:- usar Streaming Engine
- Usar las versiones 2.58.0 y posteriores del SDK de Apache Beam
- no usar Runner v2
Todas las opciones de canalización que no se hayan mencionado explícitamente anteriormente o en la tabla de comparación de funciones funcionan igual en Dataflow y Dataflow Prime.
Antes de usar Dataflow Prime
Para usar Dataflow Prime, puedes reutilizar el código de tu flujo de procesamiento y habilitar la opción de Dataflow Prime a través de Cloud Shell o mediante programación.
Dataflow Prime es compatible con las tareas por lotes que usan Dataflow Shuffle y las tareas de streaming que usan Streaming Engine. Sin embargo, te recomendamos que pruebes tus canalizaciones con Dataflow Prime antes de usarlas en un entorno de producción.
Si tu flujo de procesamiento de transmisión se está ejecutando en producción, sigue estos pasos para usar Dataflow Prime:
Detén el flujo de procesamiento.
Habilita Dataflow Prime.
Vuelve a ejecutar la canalización.
Habilitar Dataflow Prime
Para habilitar Dataflow Prime en un flujo de procesamiento, sigue estos pasos:
Habilita la API Cloud Autoscaling.
Dataflow Prime usa la API Cloud Autoscaling para ajustar la memoria de forma dinámica.
Habilita Prime en las opciones de tu flujo de procesamiento.
Puedes definir las opciones de la canalización de forma programática o mediante la línea de comandos. En las versiones compatibles del SDK de Apache Beam, habilita la siguiente marca:
Java
--dataflowServiceOptions=enable_prime
Python
Versión 2.29.0 o posterior del SDK de Apache Beam para Python:
--dataflow_service_options=enable_prime
Versión del SDK de Apache Beam para Python de la 2.21.0 a la 2.28.0:
--experiments=enable_prime
Go
--dataflow_service_options=enable_prime
Usar Dataflow Prime con plantillas
Si usas plantillas de Dataflow, puedes habilitar Dataflow Prime de una de las siguientes formas:
En el caso de las tareas iniciadas desde la página Crear tarea a partir de plantilla:
Ve a la página Crear tarea a partir de plantilla.
En el campo Additional experiment (Experimento adicional), introduce
enable_prime
.
En el caso de las tareas 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 al crear una plantilla, define la marca
--experiments=enable_prime
.
Usar Dataflow Prime en cuadernos de Apache Beam
Si usas un cuaderno de Apache Beam, puedes habilitar Dataflow Prime mediante programación con PipelineOptions
:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
Para obtener más información sobre cómo definir opciones de Dataflow en un cuaderno, consulta Iniciar tareas de Dataflow desde una canalización creada en tu cuaderno.
Comparación de funciones entre Dataflow y Dataflow Prime
En la siguiente tabla se comparan las funciones disponibles en ambas variantes de Dataflow.
Función | Dataflow Prime | Dataflow |
---|---|---|
Runner v2 | Función predeterminada que no se puede desactivar en las tareas por lotes y que es opcional en las tareas de streaming | Función predeterminada con una opción para desactivarla en las tareas por lotes y opcional en las tareas de streaming |
Shuffle de Dataflow para tareas por lotes | Función predeterminada con opción para desactivarla | Función predeterminada con opción para desactivarla |
Streaming Engine para tareas de streaming | Función opcional para las canalizaciones de Java y siempre activada para las canalizaciones de Python | Función opcional para las canalizaciones de Java y siempre activada para las canalizaciones de Python desde la versión 2.45.0 |
Autoescalado horizontal | Función predeterminada con opción para desactivarla | Función predeterminada con opción para desactivarla |
Autoescalado vertical | Función predeterminada con opción para desactivarla | No aplicable |
Ajuste adecuado | Función opcional | Función opcional |
Facturación | Facturación sin servidor | Facturación estándar |
Siguientes pasos
- Consulta las cuotas de Dataflow.
- Consulta cómo definir opciones de canalización.
- Consulta las opciones de canalización disponibles para las canalizaciones de Java y Python.
- Consulta más información sobre las funciones de ajuste automático de Dataflow Prime.
- Consulta más información sobre las GPUs de Dataflow.