IoT y bases de datos NoSQL

Get Started. It's Free
or sign up with your email address
IoT y bases de datos NoSQL by Mind Map: IoT y bases de datos NoSQL

1. Bases de datos NoSQL

1.1. Definición

1.1.1. Se crean para describir las bases de datos no relacionales escalables distribuidas, diseñadas para procesar masivamente datos en paralelo en una gran cantidad de servidores. Hay un gran número de bases de datos NoSQL que se agrupan en cuatro categorías:

1.1.1.1. Bases de datos de Valor clave

1.1.1.1.1. los datos son almacenado como pares de clave-valor y dirigido por claves únicas. Los datos consisten en dos partes, una clave que es una cadena, y un valor que son los datos reales, y puede ser un habitual tipo de datos, un objeto o un documento

1.1.1.2. Bases de datos orientado a columnas

1.1.1.2.1. Los datos se almacenan como filas y columnas. Cada clave está asociada con una o más columnas. Aunque similar las columnas se almacenan juntas en la familia de columnas y las filas puede contener diferentes columnas.

1.1.1.3. Bases de datos orientado a documentos

1.1.1.3.1. Los datos se almacenan como colecciones de documentos. Los documentos están en forma serializada como XML, JSON y BSON (binario codificado JSON). Las estructuras no tienen que ser similares, esto significa que cada documento puede contener un conjunto diferente de datos.

1.1.1.4. Bases de datos grafos

1.1.1.4.1. Los datos se almacenan en forma de grafos. los El gráfos consta de nodos y aristas, donde los nodos actúan como los objetos y los bordes actúan como la relación entre los objetos. Se usan para almacenar datos conectados como datos bioinformáticos o datos de redes sociales.

1.2. Sistemas NoSQL

1.2.1. Redis

1.2.1.1. Escalabilidad

1.2.1.1.1. Todas los datos clave-valor proporcionan escalabilidad a través de la distribución de claves sobre nodos

1.2.1.2. Procesamiento en tiempo real

1.2.1.2.1. Se provee una API para soportar procesamiento en tiempo real

1.2.1.3. Seguridad

1.2.1.3.1. proporciona funciones de seguridad y autenticación de red, y también puede deshabilitar algunos comandos Por ejemplo, los clientes normales no pueden llamar al comando de configuración.

1.2.1.4. Agregación

1.2.1.4.1. provee algunos operadores de agregación (Max, Min and Sum)

1.2.1.5. Manejo de datos espaciales

1.2.1.5.1. Proporciona el comando GEOADD para agregar elementos geoespaciales específicos (latitud, longitud, nombre) a una clave específica.

1.2.2. Cassandra

1.2.2.1. Escalabilidad

1.2.2.1.1. Cassandra fue utilizada por Facebook para manejar la búsqueda en la bandeja de entrada, esto significa que Cassandra tiene que escalar con el número de usuarios

1.2.2.2. Procesamiento en tiempo real

1.2.2.2.1. Netflix usa a Cassandra como la base de datos de back-end para sus servicios de transmisión

1.2.2.3. Seguridad

1.2.2.3.1. Sepuede crear cuentas de inicio de sesión estándar con contraseñas y gestionar la gestión de permisos de datos. Aunque Cassandra proporciona opciones de cifrado para los datos que se envían desde un cliente a un clúster de base de datos así como para comunicaciones de nodo a nodo

1.2.2.4. Agregación

1.2.2.4.1. provee operadores de agregación (min, max, avg, sum, and count).

1.2.2.5. Manejo de datos espaciales

1.2.2.5.1. El manejo de datos espaciales sigue siendo una característica que falta en Cassandra, para hacerlo es necesario instalar una extensión.

1.2.3. MongoDB

1.2.3.1. Escalabilidad

1.2.3.1.1. utiliza la escalabilidad horizontal al agregar más servidores para aumentar la capacidad de almacenamiento del sistema. Sin embargo, la fragmentación automática facilita la escalabilidad con un bajo costo de hardware

1.2.3.2. Procesamiento en tiempo real

1.2.3.2.1. admite procesamiento de datos en tiempo real, y se usa en muchas aplicaciones en tiempo real

1.2.3.3. Seguridad

1.2.3.3.1. proporciona muchas funciones para proteger la base de datos, incluida la autenticación y el cifrado.

1.2.3.4. Agregación

1.2.3.4.1. proporciona operaciones de agregación que agrupan valores de múltiples documentos y realizan una variedad de operaciones (como db.collection.count ()) en los datos agrupados para devolver un único resultado

1.2.3.5. Manejo de datos espaciales

1.2.3.5.1. Los datos espaciales se pueden almacenar en un documento GeoJSON para admitir operaciones de consulta en datos espaciales como $near que devuelve objetos geoespaciales cerca de un punto

1.2.4. Couchbase

1.2.4.1. Escalabilidad

1.2.4.1.1. Es escalable gracias a sus nodos idénticos y fragmentación automática

1.2.4.2. Procesamiento en tiempo real

1.2.4.2.1. proporciona procesamiento de datos en tiempo real mediante el uso de componentes Kafka, Storm y Sqoop

1.2.4.3. Seguridad

1.2.4.3.1. El servidor Couchbase proporciona características de seguridad que cubren la red, dispositivos de almacenamiento, servidores y máquinas virtuales.

1.2.4.4. Agregación

1.2.4.4.1. Couchbase proporciona funciones agregadas que toman múltiples valores de documentos, realizan cálculos y devuelven un único valor como resultado, como (AVG (), MIN (), MAX () )

1.2.4.5. Manejo de datos espaciales

1.2.4.5.1. Los datos espaciales se pueden almacenar en GeoJSON. Couchbase también proporciona vistas espaciales que permiten consultas geoespaciales

1.2.5. Neo4j

1.2.5.1. Escalabilidad

1.2.5.1.1. La escalabilidad de Neo4j se conoce como alta disponibilidad. Principalmente permite tres cosas: redundancia de datos completa, tolerancia a fallas de servicio y escalabilidad de lectura lineal

1.2.5.2. Procesamiento en tiempo real

1.2.5.2.1. Puede realizar operaciones en tiempo real. ActualmenteWalmart utiliza Neo4j para recomendar en línea

1.2.5.3. Seguridad

1.2.5.3.1. proporciona características de seguridad como la autenticación para garantizar que un usuario sea quien dice ser.

1.2.5.4. Agregación

1.2.5.4.1. Proporciona funciones de agregacion ( avg(), count(), min(), max() )

1.2.5.5. Manejo de datos espaciales

1.2.5.5.1. Admite la función geoespacial y se puede utilizar para el análisis de rutas o búsquedas de proximidad al proporcionar la biblioteca Neo4j-Spatial

2. Conclusiones

2.1. A pesar que generalmente utilizamos bases de datos SQL, la creciente generación de datos provenientes de los dispositivos conectados a Internet, ha demandado una forma más eficiente de almacenar y consultar dichos datos dando origen a las bases de datos NoSQL.

2.2. Siempre hay que estar investigando y leyendo acerca de las nuevas tendencias en tecnologías ya que, estas están siempre en constante evolución

2.3. Se evidencia como grandes compañías como Facebook, Netflix, entre otras, se vieron obligadas a migrar de bases de datos SQL a NoSQL debido al creciente numero de datos generados y demandados por sus usuarios.

2.4. Cada base de datos NoSQL tiene sus propias ventajas y limitaciones, es prudente realizar una comparación para decidir cual es la más adecuada para el proyecto que se quiera llevar a cabo y no dejarse llevar solo por "lo que se está usando".

3. Fuente

3.1. Amghar, S., Cherdal, S. and Mouline, S. (2018). Which NoSQL database for IoT applications?. [ebook] Tangier, Morocco: IEEE. Available at: Campus UAO Virtual: Entrar al sitio [Accessed 16 Nov. 2019].

4. Introducción

4.1. Según un estudio en el 2012 se conectaron 5 billones de dispositivos a Internet, se espera que en 2020 esta cifra ascienda a 50 billones.

4.2. Bases de datos SQL

4.2.1. Soporta grandes volúmenes de datos

4.2.2. No es fácilmente escalable

4.2.3. Costos altos para actualizaciones

4.3. Bases de datos NoSQL

4.3.1. Soporta grandes Volúmenes de datos

4.3.2. Es fácilmente escalable

4.3.3. Costos bajos para actualización

5. IoT (Internet de las cosas)

5.1. Definición

5.1.1. Es una infraestructura global de información para la sociedad, permitiendo servicios avanzados mediante la interconexión (física y virtual) de cosas basadas en interoperabilidades existentes y en evolución tecnologías de información y comunicación

5.1.1.1. IoT es una red de objetos conectados que consta de:

5.1.1.1.1. Capa Fisica

5.1.1.1.2. Capa de comunicación

5.1.1.1.3. Capa middleware

5.1.1.1.4. Capa de aplicación

5.1.1.2. Permite servicios innovadores en:

5.1.1.2.1. cuidado de la salud inteligente

5.1.1.2.2. Ciudades inteligentes

5.1.1.2.3. Transporte

5.1.1.2.4. Agricultura

5.1.1.2.5. Turismo

5.1.1.2.6. Energia

5.2. Requerimientos para IoT

5.2.1. Se consideran 7 requerimientos para la implementación de aplicaciones IoT

5.2.1.1. Heterogeneidad de datos

5.2.1.1.1. Los datos pueden tener formatos, modelos heterogéneos (no estructurados, semiestructurados y estructurados) y contenido

5.2.1.1.2. puede tener datos textuales, datos de ubicación, mediciones de temperatura, direcciones de identificación, videos

5.2.1.2. Interoperabilidad semántica

5.2.1.2.1. permite que diferentes agentes, servicios y aplicaciones intercambien información, datos y conocimiento de una manera significativa

5.2.1.3. Escalabilidad

5.2.1.3.1. Un sistema de gestión de datos escalable es un sistema que puede ejecutar solicitudes grandes con bajo tiempos de respuesta y redistribuir datos en el nuevo hardware

5.2.1.4. Procesamiento en tiempo real

5.2.1.4.1. Los sistemas que requieren datos en tiempo real necesitarán almacenar y recuperar datos de una manera altamente receptiva, en consecuencia el rendimiento es importante, sin embargo, en tiempo real no solo implica que los sistemas en tiempo real deben ser rápidos con datos temporales que se vuelven obsoletos después de cierto tiempo. Por lo tanto, las aplicaciones de IoT requieren la capacidad de procesar datos y generar resultados en tiempo real.

5.2.1.5. Seguridad

5.2.1.5.1. Las aplicaciones de IoT deben poder decidir si una solicitud de datos debe otorgarse o denegarse utilizando autenticación, cifrado y otras características de seguridad

5.2.1.6. Manejo de datos espaciales

5.2.1.6.1. Los datos espaciales o geoespaciales describen objetos y cosas con relación al espacio geográfico en un sistema de referencia espacial (por ejemplo, GPS). En aplicaciones de IoT, la mayoría de los dispositivos que generan datos son móviles, lo que indica la importancia de espacial manejo de datos.

5.2.1.7. Agregación de datos

5.2.1.7.1. La agregación de datos se define como el proceso de combinar los datos procedentes de diferentes fuentes al eliminar la redundancia para proporcionar información fusionada