lunes, 22 de julio de 2024

Big stream: procesamiento de datos en tiempo real para un mundo de dispositivos y sensores

Cuando hablamos de procesamiento de datos, especialmente de analítica, y de tratamiento de grandes datos, tendemos a pensar, y la verdad es que es bastante razonable, en un almacén de datos, más o menos ordenado, sobre el que lanzamos consultas o algoritmos de machine learning para obtener indicadores, resúmenes, tendencias o predicciones.

Pero no siempre es así. Existen cada vez más casos de uso, y más posibilidades, de explotar y analizar flujos de datos en tiempo real.

Vayamos poco a poco.


Almacenes de datos 


Desde casi los primeros tiempos de la informática han existido los almacenes de datos. Inicialmente eran meros ficheros pero muy pronto la necesidad de tratar datos en abundancia, garantizando su coherencia y escalabilidad llevó a la invención de las bases de datos, y con ellas, los Sistemas de Gestión de Bases de Datos (SGBD), de entre las cuales, las 'reinas' fueron, y en el fondo casi que siguen siendo, las bases de datos relacionales con sus sistemas de gestión de bases de datos relacionales. Sobre esas bases de datos relacionales, se podían ya hacer consultas, informes y análisis.

Sin embargo, a medida que el volumen de datos crecía y la complejidad de los análisis también, hacer analítica sobre la misma base de datos relacional operativa generaba problemas de prestaciones. Por ello, y como explico en mi primer libro 'La carrera digital', surgieron, en primer lugar los ODS ('Operational Data Store'), meras réplicas de una base de datos pero físicamente soportada en ficheros diferenciados.

Y luego, con la misma motivación de prestaciones, pero impulsado también por el interés en mejorar las capacidades analíticas, y de la mano de los conceptos de Business Intelligence y OLAP ('Online Analytical Processing') surgieron los denominados datamarts o datawarehouses, creo que a finales de los años 90.


Big Data y datalakes


Y en eso llegó el Big Data que, en el fondo, y en cuanto a utilidad y resultados, casi aspira a lo mismo que el Business Intelligence pero que surge en un entorno nuevo, donde el volumen de datos, que ya era grande, explota hacia niveles muy superiores y donde, sobre todo, cobran enorme importancia los datos semiestructurados (ficheros XML y JSON, por ejemplo) y no estructurados (texto libre, imágenes, vídeos, etc) y todo esto unido a una exigencia cada vez mayor de disponer de análisis en tiempo real, superando los típicos informes basados en datos del día anterior tan comunes usando datawarehoueses.

Esto da lugar al concepto de Big Data, donde las tres ideas expresadas se recogen en las famosas tres Vs de Doug Laney, Volumen, Variedad y Velocidad, a las que, de una forma algo espuria en mi opinión, luego se le han ido añadiendo otras Vs.

Asociado a Big data tenemos otra forma de repositorio de datos: los famosos datalakes que, en concepto, no son muy diferentes de los datamarts o datawarehouses pero que experiementan ese incremento en volumen y variedad de datos.


Big Stream


Sin embargo, y un poco 'a la chita callando' se va desarrollando un concepto, muy unido al Big data, pero en el fondo bastante diferente: el del 'Big stream', que se centra en el procesamiento de datos pero no unos datos contenidos en un repositorio sino unos datos que van llegando en tiempo real en una suerte de flujos de datos.

Leo acerca de este concepto en 'Internet of things: architectures, protocols and standards' de Simone Cirani, Gianluigi Ferrari, Marco Picone y Luca Veltri donde los autores comparan el concepto de big data con el de big stream y nos dicen:


The main differences between the Big Data  and Big Stream paradigms are the nature of data sources and the real-time/latency requirements of the consumers.


En efecto, hay que diferenciar el origen de datos que, en el caso del Big Data tienden a ser sistemas de información más o menos convencionales, mientras que en el caso del Big Stream con frecuencia, aunque no exclusivamente, hablamos de información procedente de sensores y dispositivos, con frecuencia en estrecha conexión, por tanto, con el mundo físico.

La segunda diferenciación, igualmente relevante, son los requisitos de latencia (es decir, la necesidad de una rápida respuesta) y de funcionamiento en tiempo real, algo que es habitual en la interacción con el mundo físico, especialmente en aplicaciones críticas.

En la misma obra, y poco después, los autores nos amplían esa comparativa diciendo:


In brief, while both Big data and Big Stream systems deal with massive amounts of data, the former focuses on the analysis of data while the latter focuses on the management of flows of data


En efecto, ambas tecnologías, Big Data y Big Stream, tratan con grandes cantidades de datos, pero mientras que en el Big Data más tradicional éstos tienden a estar ya recogidos en algún tipo de almacén de datos (típicamente un datalake), en el caso del Big Stream nos llegan como flujos en tiempo real y el volumen no deriva tanto del tamaño de cada bloque de información sino de la hiper-abundancia y continuidad de esos bloques de información.

No es extraño encontrar una explicación sobre Big Stream en un libro de Internet de las Cosas porque, seguramente, éste sea el campo donde más sentido adquiere para procesar toda la abundantísimo información que generan 'las cosas' que incluyen, por ejemplo, dispositivos y sensores para telemedida. 

Sin embargo, no es éste el único, y así, en el post 'Stream Processing – Tecnologías y Comparativa' Óscar Fernández nos identifica otra serie de usos


  • Monitorización de sistemas, de redes y de aplicaciones
  • Dispositivos Internet of Things (IoT)
  • Sistemas de recomendación y optimización de resultados
  • Transacciones financieras, detección de fraude y trading
  • Seguimiento de usuarios en páginas web y comercio electrónico
  • Notificaciones en dispositivos y aplicaciones móviles en tiempo real


No voy a profundizar aquí, aunque es muy interesante, en los retos técnicos que esto supone y me quedo, de momento, con resaltar este interesante y prometedor concepto de Big Stream


Conclusiones


Aunque menos popular que el Big Data, el Big Stream es una forma de procesamiento de datos que, probablemente, vaya adquiriendo más y más importancia (aunque no sé si relevancia mediática) a medida que se expandan Internet de las Cosas y los sistemas ciber-físicos, y que incorporemos, por tanto, más y más dispositivos y sensores a la 'conversación y, por tanto, a la creación de datos.


No hay comentarios:

Publicar un comentario