IoT

Diseño para el Internet de las cosas

Agustín Peláez
· 3 minutos de lectura
Enviar por correo electrónico

Si está pensando en diseñar una estructura de datos ideal para su aplicación de Internet de las cosas, esto es lo que debe hacer: no lo haga.

Resulta que el Internet de las Cosas requiere una gran flexibilidad. ¿Por qué? Porque existen millones, si no miles de millones, de objetos heterogéneos que comenzarán a interactuar entre sí de maneras impredecibles. Las tablas estructuradas y rígidas que ofrecen las bases de datos tradicionales no nos servirán de nada, ya que requieren un conjunto predefinido de propiedades y tablas, que, de nuevo, no podemos predecir.

Para entender por qué esto es importante, tomemos un ejemplo de una aplicación de gestión del agua.

El problema

Supongamos que queremos medir los niveles de agua en un gran número de pozos. Una arquitectura de datos simplificada para esta aplicación sería la siguiente:

Internet de las cosas

Esto parece correcto y debería funcionar a la perfección con una base de datos relacional. Pero dos años después de que el sistema estuviera en funcionamiento, a alguien se le ocurre una idea:

“Oye, ahora que compramos estos nuevos generadores diésel con conexión a Internet para alimentar las bombas de agua, ¡veamos sus datos en vivo!“.

Para realizar este cambio, tendríamos que agregar una nueva tabla llamada “Centrales” y una nueva columna a la tabla “Pozos”, marcada en rojo a continuación:

articledata2

Pero en una base de datos relacional, este cambio requeriría reescribir todas las líneas de la tabla para que incluyan un valor en la nueva columna. Con dos años de datos históricos, esto podría tardar un par de horas, bloqueando la base de datos.

¿Se imagina este procedimiento con cada cambio futuro? ¿Cómo afecta la estabilidad del sistema, su disponibilidad y los requisitos del personal técnico?

La solución

Una forma interesante de gestionar los datos IoT es el enfoque basado en documentos. En lugar de tablas, columnas y filas fijas, se utilizan documentos que describen cada objeto. Se puede pensar en ello como miles de papeles (documentos) tirados por el suelo, en lugar de tenerlos perfectamente organizados en diferentes carpetas.

Aunque parezca un poco confuso, estos documentos no tienen un esquema predefinido como las bases de datos relacionales, lo cual es perfecto para las aplicaciones IoT actuales y futuras. Esto también facilita la distribución de los datos entre múltiples servidores, haciéndolos más compatibles con la nube.

Volviendo a nuestro ejemplo, los datos de cada pozo ahora se almacenan en un documento y no en una tabla:

articledata3

Como puede ver, fusionamos todas las propiedades del pozo en un solo documento, independientemente de las relaciones entre el pozo (nivel de agua, precipitación, humedad), su entorno (ciudad, país) y el generador de energía (presión de petróleo, uso de energía, etc.).

Esta simplificación permite cualquier cambio futuro de las propiedades del documento.

¿Cómo hacerlo en el mundo real?

En Ubidots , nuestra prioridad ha sido ofrecer un esquema de datos flexible y ponerlo al alcance de nuestros usuarios a través de una API RESTful (y orgullosamente usamos MongoDB para ello :).

Tenemos un esquema básico que es compatible con la mayoría de aplicaciones IoT :

  • Fuentes de datos que contienen variables
  • Variables que contienen valores
  • Los valores son puntos de datos con marca de tiempo que contienen la información del sensor.
esquema básico

Los usuarios también pueden especificar atributos y propiedades adicionales según sus necesidades. En nuestro ejemplo, esto podría ser información adicional sobre cada fuente de datos , variable o valor :

atributos adicionales

Vale la pena señalar que los últimos ( valores ) se almacenan a lo largo del tiempo, lo que significa que puedes conservar sus rastros históricos.

Consulta nuestra documentación para aprender cómo agregar dicho contexto a tus datos:

Envolviéndolo

Existe una amplia gama de aplicaciones IoT , cada una con diferentes esquemas de datos. En este artículo, analizamos las bases de datos orientadas a documentos como una buena alternativa para futuros desarrollos IoT y cómo Ubidots puede respaldarlas.

¿Tienes una IoT en mente? ¡Regístrate y crea tus propias aplicaciones hoy mismo!