Despliegue de Apache Airflow en GCP

Clase 50 de 52Curso de Big Data en AWS

Resumen

Optimiza la orquestación de datos en la nube con un entorno administrado: crea un cluster de Apache Airflow en Google Cloud Composer, configura versiones y parámetros críticos, sube tus DAGs y controla dependencias, paralelismo y monitoreo centralizado. Conecta tareas con servicios como AWS CloudWatch, S3, Glue, Athena, Redshift y EMR usando Boto3, y opera todo desde la web UI y StackDriver para escalar proyectos de big data con confianza.

¿Cómo desplegar Cloud Composer en Google Cloud Platform?

Configurar un servicio administrado reduce fricción operativa y acelera la puesta en marcha. Aquí se recorre la creación del cluster, las opciones más relevantes y el acceso a componentes clave para trabajar con Apache Airflow en Google Cloud Platform.

  • Crear proyecto en Google Cloud Platform y abrir Google Cloud Composer.
  • Crear el cluster: nombre "Platzi Airflow". Mínimo de nodos: tres.
  • Región: use central 1. Sin preferencia de zona.
  • Ajustes opcionales: machine type, tamaño de disco, autorización, networking y subredes.
  • Imagen de Apache Airflow: 1.9, 1.10 o 1.10.1. Grandes cambios de 1.9 a 1.10.1, incluida integración nativa con el ecosistema de big data. Se percibe 1.10.1 como más estable en el momento descrito.
  • Versión de Python: 2 o 3.
  • Configuraciones avanzadas: sobrescribir en archivo airflow.cfg del servidor principal.
  • Variables de entorno: evitar “quemar” data sensible en archivos de configuración.
  • Agregar labels y, más adelante, paquetes adicionales según necesidad.

Al crear el cluster, lo esencial está a mano: DAGs Folder (carpeta donde se suben los DAGs), acceso a la web UI de Airflow, y StackDriver para revisar logs. También es posible ajustar configuraciones y variables de entorno cuando sea necesario.

¿Cómo cargar DAGs y configurar tareas en Apache Airflow?

El flujo inicia vacío en la web UI. Luego, se sube el archivo de ejemplo al DAGs Folder en un bucket de Cloud Storage para habilitar la visualización y ejecución.

  • En la web UI: inicialmente no hay DAGs.
  • En DAGs Folder: abrir el bucket y la carpeta dags. Cargar el archivo de ejemplo.
  • El archivo incluye librerías requeridas: Airflow DAGs, manejo de tiempos y operators.
  • Estructura típica de un DAG: DAG ID, nombre principal, descripción, intervalos de ejecución y schedule, concurrencia y reintentos.
  • Concepto de operator: ejecuta una tarea específica, aislada de otras. Se usa Python operator.
  • Definir Python callable: se ilustra con un "Hello World"; en producción, puede llamar un script que, vía Boto3, se conecte a AWS para extraer logs de CloudWatch y llevarlos a S3, o ejecutar procesos de crawling, export o ETL.

¿Qué es un operator en Airflow?

Un operator encapsula una acción atómica dentro del flujo. Facilita reutilización, pruebas y claridad.

  • Cada operator resuelve una tarea concreta.
  • Python operator permite invocar funciones Python con parámetros.
  • Aísla responsabilidades y simplifica dependencias.

¿Cómo se modelan dependencias y paralelismo en un DAG?

La definición del DAG establece precedencias y paralelismo para optimizar tiempos.

  • Una tarea inicial (por ejemplo, extract de CloudWatch) puede desencadenar múltiples tareas en paralelo.
  • Se reflejan transformaciones, visualización y cargas hacia Glue, Athena, Redshift y EMR.
  • La estructura deja claro el orden, los puntos de sincronización y el grado de paralelismo.

¿Cómo operar, monitorear y programar los DAGs en la web UI?

Tras cargar el archivo, se refresca la lista de DAGs y aparece el nombre definido. La web UI ofrece vistas y métricas para ejecutar, auditar y mejorar la confiabilidad.

  • Visualizaciones: vista de árbol, vista gráfica de precedencias y gráfica GANT para duración por tarea.
  • Métricas: duración, intentos, y gráficas de tiempo de ejecución.
  • Acciones: trigger del DAG y navegación por tareas para ver logs en StackDriver.
  • Programación: ejecutar todos los días a una hora específica; levantar un job cuando termine otro o tras una hora de espera.
  • Beneficio clave: orquestación y automatización de cargas heterogéneas, incluso con diferentes cloud provider, para proyectos de big data.

¿Quieres profundizar en una integración o en el diseño de tus dependencias? Cuéntame tu caso y comenta qué flujo necesitas orquestar.