[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-pub-sub-06":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=\"Aprende a gestionar flujos de datos en tiempo real con Google Cloud Pub/Sub. Crea un simulador IoT en Python para procesar telemetría constante con baja latencia.\">\r\n    \u003Cmeta name=\"keywords\"\r\n        content=\"Pub/Sub, Streaming, IoT, Telemetría, Google Cloud, GCP, Python, Real-time Data, Data Engineering\">\r\n    \u003Cmeta name=\"author\" content=\"Eduardo Martínez Agrelo\">\r\n    \u003Ctitle>Pub/Sub: Streaming de Datos IoT | Curso Pub/Sub 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>Pub/Sub: Streaming de Datos IoT (Telemetría en Tiempo Real)\u003C/h1>\r\n\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>En el mundo actual, los datos no siempre esperan a ser procesados por la noche en un proceso Batch; a menudo\r\n        fluyen de forma constante desde miles de dispositivos. En este laboratorio, nos adentraremos en el\r\n        \u003Cstrong>Streaming de Datos\u003C/strong>, simulando una flota de sensores IoT que envían telemetría crítica en tiempo\r\n        real.\u003C/p>\r\n\r\n    \u003Ch2>Diferencia entre Batch y Streaming\u003C/h2>\r\n\r\n    \u003Cp>Mientras que en el laboratorio anterior acumulábamos mensajes para procesarlos de golpe, en Streaming buscamos la\r\n        mínima latencia posible:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Event-Driven:\u003C/strong> El sistema reacciona en milisegundos a cada evento individual (un pico de\r\n            temperatura, una apertura de puerta, un pago).\u003C/li>\r\n        \u003Cli>\u003Cstrong>Flujo Ininterrumpido:\u003C/strong> La conexión entre el suscriptor y Pub/Sub permanece abierta,\r\n            permitiendo una ingesta de datos constante 24/7.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>El Simulador de Sensores en Python\u003C/h2>\r\n\r\n    \u003Cp>Para probar este escenario, desarrollaremos un productor avanzado que emula el comportamiento de hardware real.\r\n        Utilizaremos bucles infinitos y la librería \u003Ccode>time\u003C/code> para generar un flujo de datos JSON que represente\r\n        métricas de sensores:\u003C/p>\r\n    \u003Cp>\u003Ccode>payload = {\"sensor_id\": \"SN-001\", \"temp\": 24.5}\u003C/code>\u003C/p>\r\n    \u003Cp>Este script nos permitirá observar cómo Pub/Sub gestiona el rendimiento (throughput) cuando la frecuencia de\r\n        publicación es elevada.\u003C/p>\r\n\r\n    \u003Ch2>Suscripciones Asíncronas (Streaming Pull)\u003C/h2>\r\n\r\n    \u003Cp>Para consumir estos datos, implementaremos un \u003Cstrong>Streaming Pull\u003C/strong>. A diferencia del pull síncrono,\r\n        aquí definimos una función de \"callback\" que se ejecuta automáticamente cada vez que llega un mensaje nuevo:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Baja Latencia:\u003C/strong> No hay tiempo de espera entre la publicación y la recepción; el mensaje es\r\n            \"empujado\" al trabajador tan pronto como está disponible.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Escalabilidad:\u003C/strong> Este modelo permite procesar miles de mensajes por segundo distribuyendo la\r\n            carga entre múltiples hilos o contenedores.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Implementación práctica\u003C/h2>\r\n\r\n    \u003Cp>Configuraremos un panel de control simulado. Veremos en pantalla cómo los mensajes de temperatura fluyen desde\r\n        nuestro simulador hacia nuestro consumidor asíncrono. Aprenderemos a decodificar payloads JSON en tiempo real y\r\n        a ejecutar lógica de negocio inmediata, como disparar alertas visuales si una métrica supera un umbral crítico.\r\n    \u003C/p>\r\n\r\n    \u003Ch2>Conclusión: Hacia la analítica en tiempo real\u003C/h2>\r\n    \u003Cp>Has dominado la capacidad de procesar datos mientras ocurren. Este es el pilar de los sistemas de monitorización\r\n        modernos y de la detección de fraude. Pero, ¿qué pasa si queremos guardar estos millones de eventos para\r\n        analizarlos más tarde sin escribir código de consumo? En el próximo laboratorio descubriremos la integración\r\n        nativa con 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-pub-sub-06.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",1776363704347]