Dataflow: Transformaciones Avanzadas y Branching | Curso Dataflow GCP

Dataflow: Transformaciones Avanzadas y Branching

Autor: Eduardo Martínez Agrelo

En el laboratorio anterior, vimos transformaciones básicas (Map). Sin embargo, en un escenario real de ingeniería de datos, las reglas de negocio son complejas: necesitamos clasificar, filtrar y derivar flujos de datos. En este laboratorio, aprenderemos a realizar Branching (bifurcación) para manejar alertas críticas en tiempo real mientras mantenemos el flujo de datos principal.

Map vs ParDo: El corazón de Apache Beam

Aunque beam.Map es útil para operaciones simples de 1 a 1, no es suficiente para la lógica empresarial pesada. Aquí es donde entra el ParDo (Parallel Do):

  • Flexibilidad: Usamos ParDo junto con una clase DoFn. Esto nos permite definir funciones complejas que pueden filtrar, validar, transformar o incluso conectarse a servicios externos.
  • Uso de yield: A diferencia de una función normal que retorna un valor, aquí utilizamos yield para generar múltiples salidas o incluso ninguna, actuando como un generador eficiente.

Bifurcación (Branching) y Tagged Outputs

Imagina que el negocio te pide identificar infracciones de velocidad (más de 120 km/h) y guardarlas en un archivo separado de "Alertas Urgentes". El Branching es la técnica que nos permite hacer esto:

  • Tagged Outputs: Dentro de nuestra lógica DoFn, podemos emitir datos a diferentes "canales" utilizando etiquetas (tags).
  • Paralelismo lógico: Apache Beam toma esos flujos y los convierte en ramas separadas dentro de nuestro Grafo, permitiéndonos escribir en diferentes destinos o realizar transformaciones distintas para cada tipo de evento.

Implementación práctica

En este ejercicio, desarrollaremos una clase DoFn que evalúa la velocidad de nuestros coches eléctricos. Implementaremos la lógica de bifurcación: los datos que cumplen la condición de infracción irán por una "rama" de alertas, mientras que el resto seguirá su camino normal. Al visualizar el grafo en la interfaz de Dataflow, verás cómo un único río de datos se divide en dos caminos paralelos.

Conclusión: Arquitectura de datos inteligente

El Branching es una habilidad fundamental para cualquier Data Engineer. Has aprendido a dividir y conquistar, permitiendo que un mismo pipeline atienda necesidades de negocio divergentes. Ya tienes las herramientas para manejar lógica compleja; en el próximo laboratorio, llevaremos estos datos procesados a su destino final: BigQuery.

Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!