[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-cloud-composer-05":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=\"Descubre los fundamentos del procesamiento de datos en tiempo real. Aprende a configurar Google Cloud Pub/Sub y a crear un simulador de tráfico en streaming utilizando Python.\">\r\n    \u003Cmeta name=\"keywords\"\r\n        content=\"Google Cloud Pub/Sub, Streaming, Real-time Data, Data Engineering, Python, GCP, Messaging Systems, Cloud Composer\">\r\n    \u003Cmeta name=\"author\" content=\"Eduardo Martínez Agrelo\">\r\n    \u003Ctitle>Cloud Composer: Preparando el Streaming con Pub/Sub | 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: Preparando el Streaming (El Corazón de Pub/Sub)\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>Hasta este punto del curso, hemos dominado el procesamiento por lotes (Batch). Sin embargo, las empresas modernas\r\n        demandan respuestas inmediatas. Imagina analizar los clics de un usuario en una web mientras ocurren, no al día\r\n        siguiente. Para lograr esto, necesitamos abandonar los archivos estáticos y entrar en el ecosistema del\r\n        \u003Cstrong>Streaming\u003C/strong>, empezando por su sistema nervioso central: Google Cloud Pub/Sub.\r\n    \u003C/p>\r\n\r\n    \u003Ch2>¿Qué es Google Cloud Pub/Sub?\u003C/h2>\r\n\r\n    \u003Cp>Pub/Sub es un servicio de mensajería asíncrona diseñado para desacoplar los sistemas que producen datos de los\r\n        sistemas que los procesan. Es la columna vertebral de cualquier arquitectura de tiempo real en GCP:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Escalabilidad Global:\u003C/strong> Capaz de gestionar millones de mensajes por segundo sin configuración\r\n            de servidores.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Modelo Publicador-Suscriptor:\u003C/strong> Los emisores envían datos a un \"Topic\" sin saber quién los\r\n            recibirá, permitiendo una arquitectura flexible y modular.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Persistencia:\u003C/strong> Los mensajes se almacenan de forma segura hasta que son entregados a los\r\n            suscriptores.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Infraestructura de Mensajería con Terraform\u003C/h2>\r\n\r\n    \u003Cp>Como ingenieros, no crearemos nuestros canales de comunicación manualmente. Seguiremos utilizando Terraform para\r\n        garantizar que nuestra infraestructura de streaming sea replicable y profesional:\u003C/p>\r\n    \u003Cp>\u003Ccode>resource \"google_pubsub_topic\" \"streaming_topic\" { name = \"ventas-streaming\" }\u003C/code>\u003C/p>\r\n    \u003Cp>Este pequeño bloque de código despliega un punto de entrada de alta disponibilidad que servirá como fuente de\r\n        verdad para nuestros datos en movimiento.\u003C/p>\r\n\r\n    \u003Ch2>Simulación de Tráfico Real (The Publisher)\u003C/h2>\r\n\r\n    \u003Cp>Para que un pipeline de streaming tenga sentido, necesitamos un flujo constante de eventos. Desarrollaremos un\r\n        script en Python que actuará como un simulador de e-commerce de alta intensidad:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Generación de Eventos:\u003C/strong> Crearemos diccionarios JSON aleatorios que representen acciones de\r\n            usuarios como \"vista de producto\", \"añadir al carrito\" o \"compra\".\u003C/li>\r\n        \u003Cli>\u003Cstrong>Publicación en Tiempo Real:\u003C/strong> Utilizaremos la librería oficial de Google Cloud para enviar\r\n            estos eventos al Topic con latencias de milisegundos.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Implementación práctica\u003C/h2>\r\n\r\n    \u003Cp>En este laboratorio, activaremos nuestro Topic mediante Terraform y ejecutaremos nuestro script publicador desde\r\n        la terminal. Observaremos cómo la consola de Google Cloud empieza a registrar un flujo ininterrumpido de datos.\r\n        Aunque Airflow aún no está procesando estos mensajes, estamos construyendo la \"pista de despegue\". Verás en\r\n        directo cómo los mensajes se publican con IDs únicos, quedando listos para ser consumidos por un motor de\r\n        procesamiento masivo.\u003C/p>\r\n\r\n    \u003Ch2>Conclusión: La puerta al tiempo real\u003C/h2>\r\n    \u003Cp>Has dado el salto del procesamiento estático al dinámico. Ya no esperas a que un archivo llegue; ahora tienes una\r\n        tubería que vibra con datos en cada segundo. Tienes la fuente de datos; ahora necesitas el motor que los\r\n        procese. En el siguiente laboratorio, escribiremos el código de Apache Beam que transformará este caos de\r\n        mensajes en tablas estructuradas de BigQuery.\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-05.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",1776363704152]