Usa Dataflow Prime

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:

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

  • Las clases MapState y OrderedListState para canalizaciones de Java

  • Programación flexible de recursos (FlexRS).

  • Usar 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.

  • Servicio de procesos múltiples de NVIDIA (MPS).

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:

  1. Detén la canalización.

  2. Habilita Dataflow Prime.

  3. Vuelve a ejecutar la canalización.

Habilita Dataflow Prime

Para habilitar Dataflow Prime en una canalización, haz lo siguiente:

  1. Habilita la API de Cloud Autoscaling.

    Habilitar la API

    Dataflow Prime usa la API de Cloud Autoscaling para ajustar la memoria de forma dinámica.

  2. 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:

  1. Para los trabajos que se iniciaron desde la página Crear trabajo desde plantilla:

    1. Ve a la página Crear un trabajo a partir de una plantilla.

      Ir a Crear un trabajo a partir de una plantilla

    2. En el campo Experimento adicional, ingresa enable_prime.

  2. 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.

  3. 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?