Cloud Composer: Transformación y Branching (Calidad del Dato)
Autor: Eduardo Martínez Agrelo
En los laboratorios anteriores logramos ingestar datos crudos en BigQuery. Sin embargo, en un entorno productivo, no podemos permitir que datos erróneos o incompletos contaminen nuestros informes finales. Un Data Engineer debe construir tuberías inteligentes capaces de tomar decisiones: si los datos son correctos, transformamos; si no, alertamos. A esto lo llamamos Branching.
¿Por qué usar Branching?
El branching (o ramificación) permite que el grafo de Airflow tome caminos diferentes en tiempo de ejecución basados en condiciones lógicas:
- Validación de Calidad: Comprobar si hay nulos, si los formatos son correctos o si el número de registros es sospechosamente bajo.
- Ahorro de Cómputo: Evitamos ejecutar transformaciones pesadas y costosas sobre datos que sabemos que están corruptos.
- Gestión de Alertas: Podemos dirigir el flujo hacia tareas de notificación (Slack, Email) de forma automática ante anomalías.
El BranchPythonOperator
Este operador es el encargado de decidir qué tarea sigue a continuación. Su funcionamiento se basa en una función
de Python que devuelve el task_id del siguiente paso:
return 'tarea_exitosa' if calidad_ok else 'tarea_error'
Es vital que el DAG esté configurado con las reglas de activación (trigger rules) adecuadas, como
none_failed_min_one_success, para permitir que el flujo continúe correctamente tras una
bifurcación.
Transformación SQL en BigQuery
Una vez que los datos han pasado el filtro de calidad, procedemos a la "T" del proceso ELT. Utilizaremos el BigQueryInsertJobOperator para ejecutar sentencias SQL directamente en el motor de Google:
- Agregaciones: Sumar ventas, promediar precios o contar usuarios activos por región.
- Modelado: Crear tablas finales optimizadas para herramientas de visualización como Looker o Power BI.
- Eficiencia: La transformación ocurre dentro de BigQuery, aprovechando su arquitectura distribuida sin mover datos por la red.
Implementación práctica
En este laboratorio, crearemos un DAG que simula una validación de calidad aleatoria. Verás cómo, dependiendo del resultado, Airflow marca una rama como "Skipped" (omitida) y activa la otra. Configuraremos una consulta SQL que agrupará nuestras ventas por producto y calculará ingresos totales, dejando el Data Warehouse listo para el consumo de negocio. Observarás en la interfaz de Airflow cómo el grafo se ilumina dinámicamente según el camino elegido.
Conclusión: De orquestador a gestor inteligente
Has elevado el nivel de tus pipelines. Ya no solo mueves datos, sino que aseguras su integridad y los transformas en información valiosa. Con esto cerramos el bloque de procesamiento Batch. Prepárate, porque a partir del próximo laboratorio, abandonaremos la tranquilidad de los lotes programados para entrar en el frenético mundo del Streaming en tiempo real.