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
certificado
Gratis
acceso
NIEVA

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.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

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!