¿Cómo implementar IoT con Microsoft Azure? – Azure Digital Twins y Azure Data Explorer



En este artículo técnico, presentamos el ecosistema de Microsoft Azure para proyectos sobre gemelos digitales (digital twins) e Internet de las Cosas (IoT por sus siglas en inglés). Nos centramos en dos tecnologías, Azure Digital Twins (ADT) y Azure Data Explorer (ADX), y en su conexión a través de ADT Data history.


Introducción a Azure Digital Twins y Azure Data Explorer



Azure Digital Twins (ADT) es un servicio de IoT de Microsoft. Su plataforma nos permite crear representaciones digitales de objetos como sensores mediante un grafo con propiedades. Se trata de un servicio disruptivo que nos permite obtener insights, organizar datos y contextualizarlos. Esto nos ayuda a tomar decisiones de negocio.


Microsoft Azure está potenciando la conexión de Azure Digital Twins con Azure Data Explorer (ADX). ADX es una base de datos de reciente creación que nos permite guardar datos masivos tanto en batch como en streaming (hasta GBs por hora y tabla). ADX está especialmente pensada para series temporales, que es lo más frecuente en proyectos de IoT, si bien puede usarse en prácticamente cualquier situación.



ADT Data history: la actualización que conecta ADT y ADX


Antes de abril de 2022, la conexión entre ADT y ADX era un tanto precaria. Era necesario crear una conexión desde ADX hacia ADT y los datos se guardaban por defecto de manera poco estructurada, pues una columna siempre contenía el mensaje completo del ADT. Para evitar esta estructura de datos, había que crear en ADX una serie de mappings poco convenientes. De este modo, se añadía complejidad y computación al sistema.


Data history, la nueva actualización de Azure Digital Twins, busca solucionar estas dificultades. Podía usarse en Preview pública desde abril de 2022, pero ya está disponible en General Availability desde el 20 de julio de 2022. Data history consigue dos beneficios muy interesantes de cara a la integración de los datos:

  • Por una parte, los datos se estructuran automáticamente en la base de datos sin necesidad de realizar un mapping en ADX, lo que reduce el tiempo de desarrollo del experto.

  • Por otra parte, con esta estructura estandarizada resulta mucho más sencillo contextualizar los datos. De este modo, se facilita la obtención de insights y la realización de lógicas de negocio.

Además, esta actualización también introduce nuevas funcionalidades y cambios para poder guardar muchos más datos. Por ejemplo, permite el guardado automático de los cambios de las relaciones entre los gemelos digitales.



¿Qué beneficios nos aporta esta tecnología?


La unión de Azure Digital Twins con Azure Data Explorer nos permite obtener numerosos beneficios en sistemas IoT y AIoT (combinación de AI e IoT).


Beneficios en cuanto al guardado de datos:

  • Guardado en formato estandarizado sin código.

  • Guardado en base de datos para streaming y big data con especialización en time series (ADX).

Beneficios en cuanto al sistema:

  • Conexión nativa entre ADT y ADX para obtener insights respecto al objeto físico.

  • Posibilidad de aplicación de lógicas de negocio a partir de las relaciones de los objetos físicos.

Beneficios en cuanto a funcionalidad/costes:

  • ADX es la base de datos más indicada para datos en streaming y big data gracias a sus grandes capacidades de ingesta y consulta. En estos aspectos, es muy superior a otras soluciones como SQL Hyperscale o CosmosDB.

  • El coste de ADX no es excesivo en comparación con estas otras soluciones, especialmente si tenemos en cuenta que es una base de datos basada en clusters que puede escalarse prácticamente sin limitaciones.

  • ADX ofrece consultar datos en lenguaje Kusto. Kusto es el lenguaje desarrollado por Microsoft para las queries sobre logs y big data, por lo que resulta muy eficiente.

  • ADT es una herramienta poco costosa y es muy útil en el ordenado y contextualización de datos.


Por todo ello, Azure Digital Twins y Azure Data Explorer confluyen en un tándem muy interesante y que marcará el futuro del IoT de Azure.


¿Para qué podemos usar esta tecnología?


Esta tecnología puede ser usada para prácticamente cualquier aplicación de IoT que se desee. Es especialmente interesante para soluciones que conlleven una modelación de la realidad y la aplicación de lógicas de negocio. Los termostatos son un ejemplo típico y sencillo: podríamos asignarles gemelos digitales para regular automáticamente la temperatura.


Pongamos un ejemplo más complejo. Imaginemos una red de radares de carretera que deben reportar a Jefaturas Provinciales de Tráfico (JPTs). En el grafo, podríamos almacenar las últimas informaciones sobre cada radar y cada Jefatura, así como las relaciones entre los radares y la Jefatura a la que pertenecen. De este modo, la información se reportaría siempre a la Jefatura pertinente.



Cabe esperar que en la vida real alguno de estos datos sobre los radares, las Jefaturas o su relación cambie en algún momento. En ese caso, el grafo se modificaría a su vez. Gracias a ello, el sistema entero seguiría atendiendo a la nueva situación. Es más, la potencia de Azure Digital Twins y Azure Data Explorer nos permitiría incluso modelar la totalidad de la red de radares española sin grandes esfuerzos en términos de coste o código.


Como podemos ver con este ejemplo, esta tecnología puede extrapolarse a prácticamente cualquier sistema que use IoT. Su facilidad de uso permite dar un salto adelante en la calidad de los sistemas de las empresas, la ordenación del dato y la obtención de insights.


Ejemplo práctico: un gemelo digital de LaLiga


Jorge de Andrés, AI Data Scientist en Turing Challenge, ha realizado una demo para mostrar más en detalle cómo funciona esta tecnología. La demo está basada en jugadores de fútbol para simplificar la comprensión del problema. Se han modelado en Azure Digital Twins seis jugadores de fútbol de la liga española (LaLiga). Como podemos ver en la imagen inferior, los jugadores se relacionan con sus respectivos equipos (relacionados a su vez con LaLiga) y con su selección.



Durante unos minutos, se han insertado datos de la velocidad a la que se movían estos jugadores durante un partido de fútbol. Estos datos se han enviado a Azure Digital Twins y se han guardado gracias al data history de Azure Data Explorer. Podemos ver los datos en la siguiente imagen. Como podemos observar, tenemos el timestamp de inserción del dato, junto con el jugador, su nombre y la velocidad a la que se estaba moviendo.



Podemos contextualizar los datos que hemos introducido en la base de datos respecto al grafo de Digital Twins con algunas queries interesantes que nos permiten obtener insights. Por ejemplo, podemos comparar la velocidad a la que se movían los jugadores del Real Madrid.



Esta query se ejecuta sobre la base de datos, mientras que el grafo está en ADT. Por lo tanto, el grafo se mantendrá actualizado con la base de datos. De este modo, el gemelo digital funciona como una representación fidedigna de la realidad y puede así adaptarse a las necesidades del negocio.


Con otra query, podríamos comparar la velocidad media de los tres equipos que tenemos modelados. Es apreciable que la obtención de insights desde la base de datos es relativamente sencilla gracias a la contextualización que nos ofrece el tándem ADT-ADX.



¿Por qué Turing Challenge?


Turing Challenge es una empresa con sede en Madrid que ofrece soluciones de IA e IoT.


Somos una de las primeras empresas españolas en trabajar con Azure Digital Twins y Azure Data Explorer. También somos pioneros en la explotación de data history, la unión de ADT y ADX que hemos tratado.