Saltar al contenido

Lección 2 de 21 · Lectura y práctica

Explorar la Interfaz Web y Comprender la Arquitectura

Concepto claveApache Airflow es una plataforma de orquestación de flujos de trabajo que permite programar, monitorear y gestionar pipelines de datos complejos mediante DAGs (Directed Acyclic Graphs). La arquitectura de Airflow se.

Del concepto a la práctica

Taller de esta lección

La interfaz permite localizar el componente que falló si relacionas estado, tarea y log. Considera un DAG con extraer, validar y cargar: si validar está en cola, el problema no es necesariamente el código de extracción; puede faltar capacidad de ejecución. La vista del grafo muestra relaciones, mientras que el log explica la causa concreta.

Ejemplo resuelto

Una ejecución muestra extraer exitosa, validar en cola y cargar sin ejecutar. La lectura correcta es: cargar espera a validar, pero validar está pendiente de ejecución. Comprueba scheduler, executor, capacidad de workers, pools y límites de concurrencia; el estado por sí solo no prueba cuál es la causa.

Pruébalo

  1. Abre la lista de DAGs y filtra por una etiqueta propia.

  2. Entra en una ejecución y anota el estado de cada tarea.

  3. Abre el log de una tarea exitosa y localiza su hora de inicio y fin.

  4. Pausa el DAG y comprueba que se detiene la creación de nuevas ejecuciones programadas; pausar no cancela las tareas ya iniciadas.

Comprueba tu resultado

Puedes producir una tabla con tarea, estado y evidencia de log.

Error frecuente

Interpretar una tarea omitida como una tarea fallida. Corrige revisando qué rama o condición la dejó fuera.

Ejercicio: registra un caso con una tarea en cola y propone una causa comprobable. Resultado esperado: identificas componente, evidencia y acción, sin atribuir el fallo a una pantalla ambigua.

Diagnóstico con evidencia

Anota dag_id, run_id, tarea, estado observado y log antes de proponer una causa. Si no hay log de ejecución para la tarea en cola, comprueba la capacidad del executor y del pool; no inventes una excepción Python. El API server muestra la interfaz, el DAG processor detecta y procesa definiciones y el scheduler programa tareas. Las denominaciones de las vistas antiguas pueden variar: utiliza el grafo, la lista de ejecuciones y los logs disponibles en tu instalación. Arquitectura de Airflow.

Grafo acíclico con extracción, validación, transformación, carga y publicación, incluyendo dos dependencias de entrada.
CursaloMapa de práctica
Dependencias antes que horarios

Un DAG expresa dependencias entre tareas, sin ciclos. Una transformación puede esperar a varias entradas y la publicación debe esperar a que la carga esté lista. El orden depende de los datos necesarios, no solo de una hora del reloj.

Ver la infografía en tamaño completo ↗

Concepto clave

Apache Airflow es una plataforma de orquestación de flujos de trabajo que permite programar, monitorear y gestionar pipelines de datos complejos mediante DAGs (Directed Acyclic Graphs). La arquitectura de Airflow se compone de varios componentes clave que trabajan en conjunto para ejecutar tus tareas de manera confiable y escalable.

Imagina que estás coordinando una cadena de producción en una fábrica: el scheduler es el planificador que decide qué tareas ejecutar y cuándo, los workers son los operarios que realizan el trabajo, la base de datos es el registro central donde se guarda el estado de todo, y la interfaz web es el panel de control desde donde supervisas toda la operación. Cada componente tiene un rol específico y deben comunicarse entre sí para que el sistema funcione correctamente.

Cómo funciona en la práctica

Cuando accedes a la interfaz web de Airflow después de iniciar el servidor, te encontrarás con varias secciones principales. Vamos a explorar cada una paso a paso:

  1. Dashboard/Home: Aquí ves una visión general de todos tus DAGs, con indicadores de estado (éxito, fallo, en ejecución) y controles para pausar/activar pipelines.
  2. DAGs: Lista completa de tus flujos de trabajo organizados, con filtros por etiquetas, propietarios y estado.
  3. Graph View: Representación visual de un DAG específico donde puedes ver las dependencias entre tareas y su estado actual.
  4. Tree View: Vista cronológica que muestra las ejecuciones históricas de un DAG, organizadas por fecha de ejecución.
  5. Task Instances: Detalle de cada tarea individual dentro de una ejecución, con logs, duración y posibles reintentos.
  6. Admin: Configuración del sistema, gestión de usuarios, conexiones a bases de datos y variables.

Para navegar eficientemente, comienza siempre por el Dashboard para tener una visión global, luego selecciona un DAG específico y usa Graph View para entender su estructura. Cuando algo falle, accede a Task Instances para revisar los logs de error.

Caso de estudio

Consideremos un pipeline ETL para procesar datos de ventas diarias de una empresa retail. El DAG tiene estas tareas:

TareaOperadorDescripción
extraer_ventasPythonOperatorExtrae datos de la API de ventas
transformar_datosPythonOperatorLimpia y transforma los datos
cargar_warehousePostgresOperatorCarga los datos transformados al data warehouse
enviar_reporteEmailOperatorEnvía un reporte por email al equipo

En la interfaz web, verías este DAG en Graph View mostrando las dependencias: extraer_ventas → transformar_datos → cargar_warehouse → enviar_reporte. Si transformar_datos falla, la interfaz mostrará el nodo en rojo, y podrás hacer clic en él para ver los logs de error específicos. El Tree View te permitiría ver que este DAG se ejecuta diariamente a las 2 AM, y revisar ejecuciones pasadas para identificar patrones de fallo.

La interfaz web de Airflow no solo es para monitoreo: es tu herramienta principal para depurar problemas, entender dependencias y gestionar la ejecución de pipelines complejos.

Errores comunes

  • No revisar los logs completos: Muchos usuarios solo ven el mensaje de error superficial en la interfaz. Siempre expande los logs completos para encontrar la causa raíz.
  • Confundir timezone del scheduler: Airflow usa UTC por defecto. Si programas un DAG para las 9 AM pensando en tu zona horaria local, se ejecutará a una hora diferente.
  • Ignorar la cola de tareas: Cuando muchas tareas están en estado 'queued', puede indicar que los workers están saturados o hay problemas de configuración.
  • No usar etiquetas (tags): En proyectos con decenas de DAGs, las etiquetas son esenciales para organizar y filtrar pipelines relacionados.
  • Olvidar pausar DAGs durante mantenimiento: Si necesitas detener temporalmente un pipeline, usa el toggle de pausa en la interfaz en lugar de modificar el código.

Checklist de dominio

  1. Puedo navegar a cualquier sección de la interfaz web en menos de 3 clics
  2. Sé diferenciar entre Graph View y Tree View y cuándo usar cada una
  3. Puedo encontrar y leer logs de error de una tarea fallida
  4. Entiendo qué indica cada color en la visualización de DAGs (verde=éxito, rojo=fallo, etc.)
  5. Sé pausar/reactivar un DAG desde la interfaz
  6. Puedo filtrar DAGs por etiqueta, propietario o estado
  7. Reconozco cuándo una tarea está en estado 'queued' y sé cómo investigar la causa

Configura y explora un DAG de ejemplo en la interfaz web de Airflow

En este ejercicio práctico, configurarás un DAG simple en tu entorno local de Airflow y usarás la interfaz web para explorar sus diferentes vistas y funcionalidades.

  1. Prepara tu entorno: Asegúrate de tener Airflow funcionando localmente. Si usas Docker, ejecuta docker-compose up en el directorio de Airflow.
  2. Crea un DAG básico: En la carpeta dags/, crea un archivo mi_primer_dag.py con este contenido:
    from airflow import DAG
    from airflow.operators.python import PythonOperator
    from datetime import datetime
    
    def imprimir_mensaje():
        print("¡Tarea ejecutada exitosamente!")
    
    def fallar_tarea():
        raise ValueError("Error simulado para demostración")
    
    with DAG(
        dag_id='ejercicio_exploracion',
        start_date=datetime(2024, 1, 1),
        schedule_interval='@daily',
        catchup=False
    ) as dag:
        
        tarea_exitosa = PythonOperator(
            task_id='tarea_exitosa',
            python_callable=imprimir_mensaje
        )
        
        tarea_fallida = PythonOperator(
            task_id='tarea_fallida',
            python_callable=fallar_tarea
        )
        
        tarea_exitosa >> tarea_fallida
  3. Accede a la interfaz web: Abre tu navegador y ve a http://localhost:8080 (puerto por defecto). Inicia sesión con las credenciales por defecto (usuario: airflow, contraseña: airflow).
  4. Explora las vistas:
    • En el Dashboard, encuentra tu DAG 'ejercicio_exploracion' y actívalo (toggle ON)
    • Haz clic en el nombre del DAG para ir a Graph View
    • Ejecuta el DAG manualmente (Trigger DAG) y observa cómo cambian los colores de las tareas
    • Navega a Tree View y revisa la ejecución que acabas de triggerear
    • Haz clic en la tarea fallida (roja) y revisa sus logs
  5. Documenta tus hallazgos: Toma capturas de pantalla de:
    • Graph View mostrando ambas tareas
    • Tree View con la ejecución reciente
    • Logs de la tarea fallida
Pistas
  • Si no ves tu DAG en la lista, verifica que el archivo esté en la carpeta correcta y que Airflow haya recargado los DAGs (tarda unos segundos)
  • Para triggerear una ejecución manual, usa el botón 'Trigger Dag' en la página del DAG, no en el Dashboard general
  • Los logs pueden tardar unos segundos en aparecer después de que una tarea falla - si no ves nada, refresca la página

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.

Sigue con Apache Airflow: Orquestación de Pipelines ETL Complejos con DAGs

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.