GuíaBásico
Guía de Airflow y Orquestación Declarativa
Continúa directo desde `python-for-data-engineering-guide`: mismo caso de Kiosko, mismo paquete `kiosko_pipeline` ya instalable, testeado y con reintentos de código. Lo que cambia es quién decide cuándo y cómo corre el pipeline — hasta ahora lo decidía un humano tecleando un comando; desde esta guía lo decide Apache Airflow. Aprendes la anatomía de un DAG con la TaskFlow API (`@dag`/`@task`), envolviendo las funciones ya testeadas de `kiosko_pipeline` sin reescribir su lógica, el `logical_date` como el reloj propio del orquestador (nunca `datetime.now()`), reintentos gestionados por el scheduler como capa distinta y complementaria a los reintentos de código, sensores para esperar datos que todavía no llegaron, backfill con el CLI real de Airflow, y observabilidad del DAG a través de su UI y sus logs. Todo corre local con `airflow standalone`, sin Docker ni cuenta de nube. La guía nombra con honestidad las alternativas del mercado (Dagster, Prefect) sin enseñarlas: lo transferible es idempotencia, DAG, scheduling, retries, backfill, sensores y observabilidad — el vendor específico caduca. Cierra con un capstone que ensambla el DAG completo de Kiosko: programado, con sensor, reintentos por tarea, y backfileable sobre una semana entera.
- 64
- lecciones
- 8
- módulos
- Inglés · Español
- disponible en
- Sí
- certificado
- Gratis
- acceso
Resultados
Lo que vas a poder hacer
- Instalar Airflow localmente con `uv`/pip, correr `airflow standalone` y escribir tu primer DAG con la TaskFlow API
- Envolver las funciones ya testeadas de `kiosko_pipeline` como tareas `@task`, usando XComs como bus de metadata (nunca de datos completos)
- Programar un DAG (`schedule`, `catchup`) y usar el `logical_date` como fuente de verdad de la fecha de negocio de cada corrida, nunca el reloj del sistema
- Distinguir reintentos de código (`tenacity`, ya resueltos en la guía anterior) de reintentos gestionados por el scheduler (`retries`, `retry_delay`) y configurar ambas capas
- Construir un sensor (modo `poke`/`reschedule`, y la variante deferrable con el triggerer) que espera un archivo que todavía no llegó antes de disparar la extracción
- Ejecutar backfill con el CLI real de Airflow (`airflow backfill create`) sobre un rango de fechas, apoyado en el patrón overwrite-partition ya construido en el paquete
- Leer la UI de Airflow (Grid/Graph) y los logs de una tarea fallida como lo hace quien opera un pipeline en producción, y disparar dbt como una tarea más del DAG
- Ensamblar un DAG completo — programado, con sensor, reintentos por tarea, idempotente — y verificar que la orquestación no cambia el resultado del pipeline, solo cómo y cuándo se produce
Antes de empezar
Qué necesitas traer
Es para ti si...
- Quien ya completó `python-for-data-engineering-guide` (o tiene un paquete de pipeline equivalente, testeado e instalable) y necesita ponerlo a correr solo, programado
- Data engineers que siguen corriendo sus pipelines a mano o con un cron simple, sin reintentos gestionados ni observabilidad real
- Devs preparándose para roles donde Airflow es el estándar de facto (aparece en la mayoría de las ofertas del sector)
- Cualquiera que necesite entender la diferencia entre reintentos de código y reintentos de infraestructura antes de operar un pipeline en producción
Requisitos y materiales
- `python-for-data-engineering-guide` completada (o equivalente: un paquete Python instalable, testeado, con logging estructurado y reintentos de código)
- Familiaridad básica con la terminal y con instalar paquetes Python (`uv`/pip)
- Laptop propia capaz de instalar y correr Apache Airflow localmente (`airflow standalone`) — todo corre local y con $0, sin Docker ni cuenta de nube
Contenido
El temario, módulo por módulo
Abre cualquiera para ver sus lecciones.
- Presentación del módulo: de un comando que corres a mano a un orquestador que decide por ti
- Lo que un script encadenado no puede hacer por ti
- Qué es, exactamente, un orquestador
- El panorama de orquestación en 2026
- Instalando Airflow localmente con uv
- airflow standalone y la interfaz web
- Tu primer DAG: hello_kiosko, con la TaskFlow API
- Proyecto: la primera corrida real de hello_kiosko
- Presentación del módulo: del grafo trivial al DAG que envuelve código real
- Anatomía de un DAG: nodos, aristas, y por qué ningún ciclo
- La TaskFlow API a fondo: @dag y @task
- Operadores clásicos frente a TaskFlow: un mapa rápido
- XComs y por qué no son un bus de datos
- Envolviendo el paso de extracción de Kiosko como una tarea
- Envolviendo el paso de validación de Kiosko como una tarea
- Proyecto: el primer DAG real de dos tareas de Kiosko
- Presentación del módulo: el DAG deja de necesitar que alguien lo dispare a mano
- El parámetro schedule: cron, presets y timetables
- start_date, catchup y qué representa una corrida
- logical_date contra la hora real de ejecución
- Templating con Jinja: {{ ds }}
- Parametrizando la partición de Kiosko por logical_date
- Corriendo un DAG run para una fecha específica
- Proyecto: el DAG diario y programado de Kiosko
- Presentación del módulo: cuando el supervisor, no el operario, decide reintentar
- Qué puede fallar a nivel de tarea
- retries, retry_delay y el backoff exponencial
- Reintentos de código contra reintentos de orquestador
- Políticas de reintento y excepciones selectivas
- Simulando una falla transitoria de forma determinista
- Leyendo el historial de una TaskInstance y sus logs
- Proyecto: la tarea de carga resiliente de Kiosko
- Presentación del módulo: cuando el pipeline aprende a esperar
- Por qué un pipeline necesita esperar
- Sensores: modo poke y modo reschedule
- Operadores deferrable y el triggerer
- Construyendo un sensor para el archivo diario de Kiosko
- Timeouts: qué pasa cuando un sensor se rinde
- Condicionando la extracción a la llegada del archivo
- Proyecto: el DAG de Kiosko con sensor
- Presentación del módulo: reprocesar una semana sin escribir un bucle a mano
- Backfill manual contra backfill gestionado por el orquestador
- El patrón overwrite-partition, visto a nivel de DAG
- Corriendo un backfill con el CLI de Airflow
- `--reprocess-behavior` y qué pasa cuando ya existe una corrida
- Probando idempotencia a lo largo de una semana de corridas
- Cuando el backfill sale mal
- Proyecto: la semana de Kiosko, reprocesada con el CLI de Airflow
- Presentación del módulo: ojos sobre el sistema que ya construiste
- La UI del DAG: las vistas Grid y Graph
- Leyendo logs de tareas como un operador
- Callbacks de falla y el patrón de alertas
- SLAs, deadlines, y qué significan de verdad en Airflow 3.3.1
- dbt como tarea dentro de un DAG
- El DAG como contrato de idempotencia: retomando a Beauchemin
- Proyecto: el DAG observable de Kiosko, de punta a punta
- Presentación del módulo: el capstone, donde las siete piezas se convierten en una sola
- El brief: Kiosko necesita un orquestador de verdad
- Ensamblando el DAG completo
- Programándolo para producción
- Corriendo la semana completa con backfill
- Verificando idempotencia de punta a punta
- Lo que a Kiosko todavía le falta: el mapa del ecosistema
- Proyecto: el primer DAG de producción de Kiosko
Dudas frecuentes
Lo que suele preguntarse
Sin límite. Es una guía gratuita: entras cuando quieras, las veces que quieras.
No. Los módulos están ordenados de menos a más, pero puedes saltar al que necesites. Tu progreso se guarda por lección.
Lo que haga falta está en «Qué necesitas traer», arriba. Si no aparece nada ahí, puedes empezar desde cero.
En el grupo de WhatsApp del Club, y cada quince días hay un live con un instructor donde se resuelven dudas en vivo.
Sí. Al terminar todas las lecciones se emite automáticamente, con un código verificable que puedes compartir en LinkedIn.
Empieza cuando quieras
Lo que dicen los estudiantes
Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.
Aún no hay reseñas aprobadas.
¡Sé el primero en compartir tu experiencia!