Está en la página 1de 5

Nombre:

Elvio Jesús Gutiérrez Sosa


Matricula:
2018-7287
Materia:
Internet de las Cosas (IoT)
Prof.:
Jorge Ramón Taveras Gonzáles
Tema:
Bases de datos para IoT
Fecha de entrega:
Martes 2 de noviembre del 2021
1. InfluxDB
¿Qué es InfluxDB?
InfluxDB es un sistema de gestión de bases de datos desarrollado por la empresa
InfluxData, Inc. InfluxDB es un software de código abierto y se puede usar de manera
gratuita. La versión comercial “InfluxDB Enterprise” ofrece contratos de mantenimiento
y controles especiales de acceso para clientes comerciales y se instala en un servidor
dentro de la red de la empresa.
La última versión, InfluxDB 2.0, también está disponible como servicio en la nube
totalmente adaptable con una interfaz de usuario basada en la web para registrar y
visualizar los datos.
El sistema de gestión de bases de datos InfluxDB ha sido desarrollado en Go, ellenguaje
de programación de Google, también conocido como Golang. En la primera versión, se
usó el lenguaje de consulta InfluxQL para realizar las consultas de bases de datos
externas, una creación original del fabricante. En cambio, InfluxDB 2.0 sirvió para
presentar el nuevo lenguaje de programaciónFlux, publicado como software de código
abierto por la empresa InfluxData en GitHub bajo la licencia MIT. Allí, siguen
desarrollando este proyecto con la participación de otros desarrolladores que trabajan
con datos de series temporales.

¿Cuándo se usa InfluxDB?


InfluxDB ha sido concebido para bases de datos de time series (TSDB), que almacenan
series temporales. Estas bases de datos se usan, entre otras cosas, para almacenar y
evaluar datos de sensores o protocolos con marcas temporales durante un período de
tiempo determinado.
En estos casos es posible que entren millones de juegos de datos, como los que
proporcionan los equipos del Internet de las cosas o los instrumentos científicos de
medición a través de un flujo continuo de datos. Este tipo de datos deben procesarse
rápidamente en cuanto llegan a la base de datos.

¿Cuáles son las ventajas de InfluxDB?


Las TSDB como InfluxDB son mucho más rápidas que las bases de datos relacionales a
la hora de almacenar y procesar datos de medición con marcas temporales. Un sistema
de gestión de bases de datos (DBMS) dedica parte de su rendimiento a la organización
de un índice complejo, que en este ámbito de aplicación no se usa. InfluxDB también es
capaz de mantener una elevada velocidad de escritura, ya que usa un índice muy
sencillo.

1. Apache Cassandra
Apache Cassandra fue lanzada en el año 2008 y fue creada inicialmente por Facebook.
Más tarde fue traspasada a la Fundación Apache, convirtiéndose en una herramienta
Open Source, que a día de hoy la sigue manteniendo.
Está inspirada tanto en Amazon Dynamo como en Google BigTable.
Para comprender bien la base de datos Cassandra es importante conocer el Teorema
CAP.

Este Teorema lo que dice es que un sistema distribuido no puede conseguir las tres
siglas del teorema, que son consistencia (Consistency), alta disponibilidad (Avaiability)
y tolerancia a particiones (Partition tolerance).
Lo que quiere decir es que nuestras bases de datos siempre se van a mover en la
intersección de dos de las tres características, pero nunca en el en el triángulo
amarillo, que sería la intersección de las tres.
Como vemos en la imagen, Apache Cassandra está situada en la intersección de alta
disponibilidad y tolerancia a particiones, sacrificando un poco la parte de la
consistencia.
Ventajas y desventajas de Cassandra
Algunas de las ventajas de Apache Cassandra son:
• Alta disponibilidad, lo que es muy interesante para el sistema en los que una
caída sea crucial.
• Tolerancia a particiones y escalado.
• Cantidad de recursos que se tienen disponibles.
Algunas de sus desventajas:
• La conexión de nuevos nodos no es tarea fácil, ya que el mismo se tiene que
poner de acuerdo con el resto, y esto conlleva un tiempo.
• Debemos saber qué quieres se van a ejecutar previamente, ya que al hacer
SELECT sufre un poco debido a la manera en la que almacena los datos.

2. RethinkDB
RethinkDB es una base de datos que desde Sillicon Valley está revolucionando el
mercado en el mundo de bases de datos no relacionales o NoSQL.
RethinkDB es una base de datos orientada a documentos (usando el formato JSON), el
lenguaje de consulta que utiliza el motor es ReQL, siendo este lenguaje muy intuitivo
comparado con SQL y Javascript en MongoDB.
Algunas características de RethinkDB
• Soporte a Join en las tablas.
• Dashboard web integrado, al estilo de CouchDB pero optimizado para la
administración de las bases de datos y el servidor.
• Tiene soporte para callback al cambiar una tabla, devolviendo el último cambio.
• Fácil escalamiento horizontal.
• Soporte para Docker.

3. MongoDB
MongoDB está escrito en C++, aunque las consultas se hacen pasando objetos JSON
como parámetro. Es algo bastante lógico, dado que los propios documentos se
almacenan en BSON. Por ejemplo:
db.Clientes.find({Nombre:"Pedro"});
La consulta anterior buscará todos los clientes cuyo nombre sea Pedro.
MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos
comandos. Esta consola está construida sobre JavaScript, por lo que las consultas se
realizan utilizando ese lenguaje. Además de las funciones de MongoDB, podemos
utilizar muchas de las funciones propias de JavaSciprt. En la consola también podemos
definir variables, funciones o utilizar bucles.
Si queremos usar nuestro lenguaje de programación favorito, existen drivers para un
gran número de ellos. Hay drivers oficiales para C#, Java, Node.js, PHP, Python, Ruby,
C, C++, Perl o Scala. Aunque estos drivers están soportados por MongoDB, no todos
están en el mismo estado de madurez. Por ejemplo, el de C es una versión alpha. Si
queremos utilizar un lenguaje concreto, es mejor revisar los drivers disponibles para
comprobar si son adecuados para un entorno de producción.
MongoDB es una base de datos orientada a documentos. Esto quiere decir que, en lugar
de guardar los datos en registros, guarda los datos en documentos. Estos documentos
son almacenados en BSON, que es una representación binaria de JSON.
Una de las diferencias más importantes con respecto a las bases de datos relacionales, es
que no es necesario seguir un esquema. Los documentos de una misma colección -
concepto similar a una tabla de una base de datos relacional -, pueden tener esquemas
diferentes.

4. SQLite
SQLite es una herramienta de software libre, que permite almacenar información en
dispositivos empotrados de una forma sencilla, eficaz, potente, rápida y en equipos con
pocas capacidades de hardware, como puede ser una PDA o un teléfono celular. SQLite
implementa el estándar SQL92 y también agrega extensiones que facilitan su uso en
cualquier ambiente de desarrollo. Esto permite que SQLite soporte desde las consultas
más básicas hasta las más complejas del lenguaje SQL, y lo más importante es que se
puede usar tanto en dispositivos móviles como en sistemas de escritorio, sin necesidad
de realizar procesos complejos de importación y exportación de datos, ya que existe
compatibilidad al 100% entre las diversas plataformas disponibles, haciendo que la
portabilidad entre dispositivos y plataformas sea transparente.
Las características y plataformas previamente mencionadas hacen de SQLite una
excelente opción en diversos casos tales como:
▪ Cuando se requiere una base de datos integrada dentro de una aplicación. SQLite
es una excelente opción por su facilidad de configuración. El inconveniente es
que no escala a bases de datos demasiado grandes (en el orden de los terabytes).
▪ Para realizar demostración de aplicaciones que utilizan un RDBMS (¿Para que
utilizar un manejador de BD pesado que ocupa grandes recursos de sistema
cuando solo se requiere hacer un demo de una aplicación?)
▪ Como cache local de un manejador de base de datos empresarial. Esto acelera el
tiempo de respuesta y reduce la carga sobre la base de datos central.
▪ Para aplicaciones en dispositivos móviles que manejan una BD local que se
sincroniza por batch con una base de datos remota.
▪ Almacenamiento persistente de objetos, configuraciones y preferencias de
usuario. Permite fácilmente crear una estructura para almacenar configuraciones
de la aplicación.

También podría gustarte