Cloud Composer: Sensores y Automatización Batch (Pipelines Reactivos)
Autor: Eduardo Martínez Agrelo
En el mundo real de la ingeniería de datos, los flujos no siempre son predecibles. Un proveedor puede enviar un archivo a las 8:00 AM o retrasarse hasta las 11:00 AM. Ejecutar un DAG en una hora fija y esperar que el dato esté ahí es una receta para el error. Aquí es donde entran los Sensores, la herramienta que convierte a Airflow en un sistema reactivo y eficiente.
¿Qué son los Airflow Sensors?
Un sensor es un tipo especial de operador cuyo único propósito es esperar a que ocurra un evento externo. En lugar de fallar si el dato no existe, el sensor se queda en estado de espera (polling):
- Eficiencia: Con el modo
reschedule, el sensor libera recursos del worker mientras espera, permitiendo que otras tareas se ejecuten. - Robustez: Permite establecer tiempos de expiración (timeouts) para alertar si un dato crítico no ha llegado en el tiempo previsto.
El GCSObjectExistenceSensor
En este laboratorio, nos enfocaremos en la detección de archivos en nuestro Data Lake. Utilizaremos el sensor nativo de Google Cloud Storage para monitorizar rutas específicas:
wait_for_file = GCSObjectExistenceSensor(task_id='wait', bucket='my-lake')
Esta abstracción nos permite desacoplar la llegada del dato de su procesamiento posterior, asegurando que la tubería solo avance cuando la materia prima esté disponible en el bucket.
Simulación de Datos con Python
Para probar nuestro sensor, desarrollaremos un script generador en Python. Este script simulará un sistema de ventas externo que deposita archivos CSV con nombres dinámicos basados en marcas de tiempo. Aprenderás a:
- Interactuar con la API de GCS: Subir objetos programáticamente desde tu entorno local a la nube.
- Manejo de Prefijos: Configurar sensores que busquen patrones de archivos en lugar de nombres exactos.
Implementación práctica
Lanzaremos nuestro DAG y observaremos cómo la tarea del sensor permanece en color verde claro, indicando que está "escuchando". En el momento en que ejecutemos nuestro script local y el archivo impacte en el bucket, verás cómo Airflow detecta el cambio de estado casi instantáneamente. Esta es la base de la automatización batch profesional: no forzar el tiempo, sino responder a los eventos.
Conclusión: De pipelines estáticos a dinámicos
Has aprendido que un orquestador no solo da órdenes, también sabe esperar. Dominar los sensores te permite construir arquitecturas mucho más tolerantes a fallos y retrasos externos. Ahora que tu DAG sabe cuándo han llegado los datos, el siguiente reto lógico es moverlos hacia nuestro almacén analítico: BigQuery.