[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-cloud-composer-08":3},{"content":4,"date":5,"image":6,"sideArticles":7},"\u003C!DOCTYPE html>\r\n\u003Chtml lang=\"es\">\r\n\r\n\u003Chead>\r\n    \u003Cmeta charset=\"UTF-8\">\r\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    \u003Cmeta name=\"description\"\r\n        content=\"Domina la orquestación modular en Airflow 3. Aprende a crear un Master DAG para gobernar múltiples flujos de datos (Batch y Streaming) utilizando el TriggerDagRunOperator y la TaskFlow API.\">\r\n    \u003Cmeta name=\"keywords\"\r\n        content=\"Cloud Composer, Master DAG, Airflow 3, TaskFlow API, TriggerDagRunOperator, Data Engineering, Orquestación Modular, Google Cloud, DAG de DAGs\">\r\n    \u003Cmeta name=\"author\" content=\"Eduardo Martínez Agrelo\">\r\n    \u003Ctitle>Cloud Composer: Master DAG y Gobernanza | Curso Composer GCP\u003C/title>\r\n    \u003Cstyle>\r\n        body {\r\n            font-family: sans-serif;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        h1,\r\n        h2,\r\n        h3 {\r\n            color: #333;\r\n        }\r\n\r\n        ul {\r\n            list-style-type: disc;\r\n            margin-left: 20px;\r\n        }\r\n\r\n        code {\r\n            background-color: #f4f4f4;\r\n            padding: 2px 5px;\r\n            border-radius: 3px;\r\n            font-family: monospace;\r\n        }\r\n    \u003C/style>\r\n\u003C/head>\r\n\r\n\u003Cbody>\r\n    \u003Ch1>Cloud Composer: Master DAG y Gobernanza (El Cierre de la Arquitectura)\u003C/h1>\r\n    \u003Cp>\u003Cstrong>Autor:\u003C/strong> \u003Ca href=\"https://www.youtube.com/@EduardoMartinezAgrelo\" target=\"_blank\">Eduardo Martínez\r\n            Agrelo\u003C/a>\u003C/p>\r\n\r\n    \u003Cp>Hemos llegado al clímax de nuestro curso. A lo largo de los laboratorios anteriores, hemos construido piezas\r\n        individuales potentes: ingestas, transformaciones y flujos de streaming. Sin embargo, en una infraestructura\r\n        empresarial, estas piezas no pueden vivir aisladas. Necesitamos un sistema de gobierno centralizado que\r\n        garantice que cada engranaje gire en el momento exacto. Bienvenidos al mundo de los \u003Cstrong>Master\r\n            DAGs\u003C/strong>.\u003C/p>\r\n\r\n    \u003Ch2>Modularidad: El Secreto de la Escalabilidad\u003C/h2>\r\n\r\n    \u003Cp>En Airflow 3, la mejor práctica es evitar los \"Monolitos\". Un DAG gigante con cientos de tareas es difícil de\r\n        depurar y mantener. La arquitectura profesional se basa en la modularidad:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Micro-DAGs:\u003C/strong> Cada pipeline tiene una responsabilidad única (ej. solo ingesta o solo\r\n            transformación).\u003C/li>\r\n        \u003Cli>\u003Cstrong>Reutilización:\u003C/strong> Un DAG de limpieza de datos puede ser llamado por múltiples procesos de\r\n            negocio diferentes.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Aislamiento de Errores:\u003C/strong> Si la transformación falla, no bloqueas innecesariamente el código\r\n            de la ingesta.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>El TriggerDagRunOperator\u003C/h2>\r\n\r\n    \u003Cp>Para comunicar nuestros DAGs, utilizaremos el operador \u003Ccode>TriggerDagRunOperator\u003C/code>. Este componente\r\n        permite que un DAG actúe como \"padre\" y dispare la ejecución de DAGs \"hijos\" de forma controlada:\u003C/p>\r\n    \u003Cp>\u003Ccode>trigger_job = TriggerDagRunOperator(task_id='start_ingestion', trigger_dag_id='lab3_ingesta_bq')\u003C/code>\u003C/p>\r\n    \u003Cp>Aprenderemos a configurar el parámetro \u003Ccode>wait_for_completion\u003C/code>, que permite que el Master DAG se\r\n        sincronice con el estado del hijo, esperando a que este termine con éxito antes de avanzar al siguiente paso de\r\n        la cadena.\u003C/p>\r\n\r\n    \u003Ch2>Gobernanza con TaskFlow API y Notificaciones\u003C/h2>\r\n\r\n    \u003Cp>Aprovechando las capacidades de Airflow 3, utilizaremos la \u003Cstrong>TaskFlow API\u003C/strong> (decoradores\r\n        \u003Ccode>@dag\u003C/code> y \u003Ccode>@task\u003C/code>) para crear un flujo de control limpio y legible. Además, simularemos una\r\n        capa de notificación final:\r\n    \u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Control de Flujo:\u003C/strong> Definiremos dependencias secuenciales: primero la ingesta batch, luego la\r\n            transformación y finalmente la auditoría.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Alertas de éxito:\u003C/strong> Implementaremos una tarea final que centralice el estatus de todo el\r\n            ecosistema, permitiendo informar a los stakeholders que el Data Warehouse está actualizado.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Implementación práctica\u003C/h2>\r\n\r\n    \u003Cp>En este último laboratorio, desplegaremos nuestro \"Controlador Maestro\". Verás en la interfaz de Airflow cómo\r\n        este DAG dispara una reacción en cadena, activando los laboratorios que construimos anteriormente. Al finalizar,\r\n        realizaremos el paso más importante para nuestra salud financiera: utilizaremos Terraform para destruir toda la\r\n        infraestructura de forma automática, dejando nuestro repositorio de GitHub como prueba impecable de nuestro\r\n        conocimiento técnico.\u003C/p>\r\n\r\n    \u003Ch2>Conclusión: Tu Carrera como Data Engineer Empieza Aquí\u003C/h2>\r\n    \u003Cp>¡Felicidades! Has completado el ciclo completo de ingeniería de datos en Google Cloud. Tienes un portfolio\r\n        profesional que incluye infraestructura, batch, streaming, calidad de datos y gobernanza modular. Dominar Cloud\r\n        Composer y Airflow 3 te sitúa a la vanguardia del sector. El código está en tus manos, la infraestructura está\r\n        automatizada y el límite solo lo pone tu próxima gran idea de datos.\u003C/p>\r\n\u003C/body>\r\n\r\n\u003C/html>","April 15, 2026","https://storage.googleapis.com/mp-blog/images/curso-gcp-cloud-composer-08.jpg",[8,14,19,24],{"id":9,"title":10,"description":11,"image":12,"date":13},"curso-gcp-apache-spark-01","Spark: Infraestructura como Código con Terraform | Curso Spark, Scala y Terraform","Aprende a desplegar clústeres de Big Data profesionalmente. Domina Terraform para crear infraestructura como código (IaC) en Google Cloud y automatiza tu entorno de Dataproc para Spark.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-01.jpg","March 12, 2026",{"id":15,"title":16,"description":17,"image":18,"date":13},"curso-gcp-apache-spark-02","Spark: Ingesta (Raw to Bronze) y Formatos Columnares | Curso Spark, Scala y Terraform","Domina la ingesta de datos con Spark. Aprende a convertir JSONs pesados en formato Parquet, optimiza tu almacenamiento en un 85% y domina los esquemas estrictos con Scala.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-02.jpg",{"id":20,"title":21,"description":22,"image":23,"date":13},"curso-gcp-apache-spark-03","Spark: Limpieza y Calidad (Bronze to Silver) | Curso Spark, Scala y Terraform","Domina la limpieza de datos en Spark. Aprende a usar Scala para implementar la capa Silver (Plata) de tu arquitectura Medallón, utilizando Case Classes para mayor seguridad.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-03.jpg",{"id":25,"title":26,"description":27,"image":28,"date":13},"curso-gcp-apache-spark-04","Spark: Analítica Avanzada (Silver to Gold) | Curso Spark, Scala y Terraform","Domina el Análisis Avanzado con Spark. Aprende a calcular métricas de negocio con Window Functions y a extraer el Top 3 de canciones por país y día para tu capa Gold.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-04.jpg",1776363704124]