Dataflow es un servicio completamente administrado que permite ejecutar canalizaciones de procesamiento de datos de transmisión y por lotes. Proporciona aprovisionamiento y administración automatizados de los recursos de procesamiento y entrega un procesamiento de datos coherente, confiable y del tipo “exactamente una vez”. Dataflow admite muchos casos de uso de procesamiento de datos, como el análisis de transmisiones, la IA en tiempo real, el procesamiento de datos de sensores y registros, y otros flujos de trabajo relacionados con la transformación de datos.
Crea una canalización o usa una plantilla
Si deseas crear una canalización de datos para Dataflow, usa Apache Beam, un modelo unificado de código abierto a fin de definir canalizaciones por lotes y de procesamiento de datos de transmisión. El modelo de programación de Apache Beam simplifica la mecánica del procesamiento de datos a gran escala. Con uno de los SDK de Apache Beam, puedes compilar un programa que define la canalización. Luego, ejecuta la canalización en Dataflow.
El modelo de Apache Beam proporciona abstracciones útiles que ocultan los detalles de bajo nivel del procesamiento distribuido, como la coordinación de trabajadores individuales y la fragmentación de conjuntos de datos. Dataflow administra completamente estos detalles de bajo nivel. Esto te permite concentrarte en la composición lógica de los trabajos de procesamiento de datos en lugar de en la organización física del procesamiento paralelo. Puedes enfocarte en lo que necesitas que haga tu trabajo en lugar de en cómo se ejecuta.
Si no deseas crear tu propia canalización, puedes usar una de las plantillas de Dataflow que proporciona Google. Estas plantillas definen transformaciones de datos comunes, como leer datos de transmisión de Pub/Sub y escribirlos en Cloud Storage, o leer datos de transmisión de Apache Kafka y escribirlos en BigQuery. También puedes crear tus propias plantillas personalizadas de Dataflow para compartir las canalizaciones entre una organización o un equipo.
Las plantillas de Dataflow te permiten empaquetar una canalización de Dataflow para su implementación. Cualquier persona con los permisos correctos puede usar la plantilla para implementar una canalización. Las plantillas separan el diseño de canalización de la implementación. Por ejemplo, un desarrollador puede crear una plantilla y un científico de datos puede implementarla más adelante mediante parámetros para personalizar el trabajo en el entorno de ejecución.
Características de Dataflow
Dataflow proporciona muchas funciones para ayudarte a ejecutar canalizaciones de datos seguras, confiables y rentables a gran escala. En esta sección, se describen algunas de las acciones que puedes realizar con Dataflow.
Escala horizontalmente con el ajuste de escala automático horizontal
Si está habilitado el ajuste de escala automático horizontal, Dataflow elige automáticamente la cantidad adecuada de instancias de trabajador necesarias para ejecutar el trabajo. Dataflow también puede reasignar de forma dinámica más o menos trabajadores durante el tiempo de ejecución para adaptarse a las características del trabajo.
Escala verticalmente con el ajuste de escala automático vertical
El Ajuste de escala automático vertical permite que Dataflow aumente o reduzca la escala de forma dinámica de la memoria disponible para los trabajadores a fin de que se adapte a los requisitos del trabajo. Está diseñado para hacer que los trabajos sean resistentes a los errores de memoria insuficiente y maximizar la eficiencia de la canalización. Dataflow supervisa tu canalización, detecta situaciones en las que los trabajadores carecen de memoria o la superan y, luego, las reemplaza por trabajadores nuevos con más o menos memoria.
Ejecuta canalizaciones sin servidores
Puedes ejecutar la canalización sin servidores con Dataflow Prime. Dataflow Prime es una plataforma de procesamiento de datos sin servidores basada en Dataflow. Dataflow Prime utiliza una arquitectura separada por procesamiento y por estado, y también incluye funciones diseñadas para mejorar la eficiencia y aumentar la productividad. Las canalizaciones que usan Dataflow Prime se benefician de la administración automatizada y optimizada de recursos, la reducción de costos operativos y las capacidades de diagnóstico mejoradas.
Optimiza recursos por etapa de canalización
El ajuste adecuado de Dataflow crea grupos de recursos específicos de la etapa que están optimizados para cada etapa de canalización a fin de reducir el desperdicio de recursos.
Supervisa trabajos
Usa la interfaz de supervisión para ver los trabajos de Dataflow y también interactuar con ellos. La interfaz de supervisión muestra una lista de tus trabajos de Dataflow, una representación gráfica de cada canalización, detalles sobre el estado de cada trabajo, vínculos a información sobre los servicios de Google Cloud en ejecución en tu canalización, cualquier error o advertencia que se producen durante un trabajo y diagnósticos y métricas adicionales.
Visualiza el rendimiento del trabajo
Como parte de la pestaña Detalles de la ejecución en la consola de Dataflow, Job Visualizer te permite ver las métricas de rendimiento de un trabajo de Dataflow y optimizar el rendimiento mediante la búsqueda de un código ineficiente, incluido lo siguiente: cuellos de botella en paralelización. También puedes ver la lista de pasos asociados con cada etapa de la canalización.
Separa los recursos de transmisión del almacenamiento
Streaming Engine separa el procesamiento del almacenamiento de estado para las canalizaciones de transmisión. Traslada partes de la ejecución de la canalización fuera de las VMs de trabajador para enviarlas a Dataflow, lo que mejora considerablemente el ajuste de escala automático y la latencia de los datos.
Distribuye datos de manera eficiente
Dataflow Shuffle traslada la operación de redistribución, usada a fin de agrupar y unir datos, fuera de las VMs de trabajador y hacia Dataflow para las canalizaciones por lotes. Las canalizaciones de este tipo escalan a cientos de terabytes sin interrupciones y no requieren ajustes.
Reduce los costos de procesamiento por lotes
Programación flexible de recursos (FlexRS) reduce los costos de procesamiento por lotes mediante el uso de técnicas de programación avanzadas, el servicio de Dataflow Shuffle y una combinación de instancias de VMs interrumpibles y VMs normales.
Ejecuta canalizaciones desde notebooks
Compila canalizaciones de forma iterativa y desde cero con notebooks de Vertex AI y ejecuta los trabajos en Dataflow. Inspecciona grafos de canalizaciones en un flujo de trabajo de bucle de lectura-evaluación-impresión (REPL) para crear canalizaciones de Apache Beam paso a paso. Con los notebooks, puedes escribir canalizaciones en un entorno intuitivo mediante los frameworks más recientes de ciencia de datos y aprendizaje automático.
Obtén recomendaciones inteligentes
Optimiza las canalizaciones según las recomendaciones que informa el aprendizaje automático. Las recomendaciones pueden ayudarte a mejorar el rendimiento del trabajo, reducir los costos y solucionar problemas.
Protege las canalizaciones con claves de encriptación administradas por el cliente
Una clave de encriptación administrada por el cliente (CMEK) habilita la encriptación de datos en reposo con una clave que puedes controlar a través de Cloud KMS. Puedes crear una canalización por lotes o de transmisión que esté protegida con una CMEK y puedes acceder a los datos protegidos por una CMEK en las fuentes y los receptores.
Especifica redes y subredes
La integración de Dataflow a los Controles del servicio de VPC proporciona seguridad adicional para el entorno de procesamiento de datos, ya que mejora la capacidad de mitigar el riesgo de robo de datos. Puedes especificar una red o una subred o ambas opciones cuando ejecutas trabajos de Dataflow.
Configura IPs privadas
Desactivar las IPs públicas te permite proteger mejor la infraestructura de procesamiento de datos. Si no usas direcciones IP públicas para los trabajadores de Dataflow, también puedes reducir la cantidad de direcciones IP públicas que consumes de la cuota del proyecto de Google Cloud.
Comienza ahora
Para comenzar con Dataflow, prueba una de las guías de inicio rápido:
- Crea una canalización de Dataflow con Java
- Crea una canalización de Dataflow con Python
- Crea una canalización de Dataflow con Go
- Crea una canalización de transmisión con una plantilla de Dataflow