Saltar al contenido principal

Plan de Aprendizaje Completo: Airflow

Objetivo: Orquestar pipelines con DAGs idempotentes, dependencias claras y fallos que se puedan reintentar.

Metodología: Corre Airflow en local con el proyecto oficial o Docker Compose. Un DAG que solo funciona en tu sesión de notebook no cuenta.

Tus apuntes van en Mis notas.

Índice​

  1. Fase 1: Conceptos y el scheduler
  2. Fase 2: Tu primer DAG
  3. Fase 3: Dependencias, datos y ramificación
  4. Fase 4: Conexiones, variables y operadores de datos
  5. Fase 5: Pruebas, backfill y operación
  6. Proyectos integradores

Fase 1: Conceptos y el scheduler​

Meta: Entender qué programa Airflow y qué no ejecuta por arte de magia.

  • DAG, task, operator, sensor, hook
  • Scheduler, webserver, worker, metadata DB
  • Scheduling: cron, data interval, catchup
  • Idempotencia: correr el mismo día dos veces no duplica el resultado
  • 🧪 Práctica: Levanta Airflow local y recorre la UI: DAGs, grid, logs de una tarea de ejemplo.

Fase 2: Tu primer DAG​

Meta: Escribir un DAG pequeño y explícito.

  • Decorador @dag / @task (TaskFlow) o operadores clásicos, y por qué eliges uno
  • start_date, schedule, catchup=False al empezar
  • retries, retry_delay, owner
  • Una tarea = un efecto (extraer, transformar o cargar), no las tres
  • 🧪 Práctica: DAG de tres tareas: descargar un archivo del día, validar filas, escribir Parquet.

Fase 3: Dependencias, datos y ramificación​

Meta: Pasar información chica entre tareas y decidir caminos.

  • Dependencias con >> y grupos de tareas
  • XCom para metadatos (ruta, conteo), no para dataframes enormes
  • Branching: saltar la carga si la validación falla
  • Sensores con timeout y modo reschedule para no ocupar un worker
  • 🧪 Práctica: Si el archivo del día no llega, el DAG espera un tope y falla con un log útil.

Fase 4: Conexiones, variables y operadores de datos​

Meta: Sacar credenciales del código.

  • Connections y Variables; nada de passwords en el DAG
  • Hooks: filesystem, S3, base de datos
  • BashOperator / PythonOperator como escape, no como estilo por defecto
  • Plantillas Jinja: {{ ds }} y la fecha lógica del intervalo
  • 🧪 Práctica: La ruta de salida y la conexión salen de Variables/Connections.

Fase 5: Pruebas, backfill y operación​

Meta: Poder repetir un día histórico y confiar en el código antes de desplegar.

  • Probar la función de la tarea sin levantar todo el scheduler
  • airflow dags test o ejecutar una tarea con una fecha fija
  • Backfill consciente: qué días reprocesar y el efecto en la tabla destino
  • Alertas (email o log) y un dueño del DAG
  • Estructura de repo: dags/, plugins/ o paquete propio, requirements
  • 🧪 Práctica: Reprocesa un día ya cargado y demuestra que el destino no duplicó filas.

Proyectos integradores​

  1. Ingesta diaria — sensor o descarga, validación, escritura particionada, reintento.
  2. Orquestación de un job de Spark o dbt — Airflow dispara, no contiene toda la transformación.

Recursos​

RecursoUso
ConceptsDAG, scheduler, data interval
Tutorial TaskFlowPrimer DAG
Best practicesDAGs mantenibles

Criterios de avance​

FaseLa dominas cuando...
1Explicas data interval y catchup con un ejemplo de un día
2El DAG tiene tres tareas con reintentos y dueño
3Un fallo de validación no carga basura
4No hay secretos en el archivo del DAG
5Reprocesar un día es seguro