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