Después de explicar las características generales de las bases de datos NoSQL y los tipos de clave-valor, documentales y columnares, en esta tercera entrega de las bases de datos de NoSQL nos ocupamos de los tipos de gráficos, series temporales y repositorios de contenido.
4. Bases de datos NoSQL:Grafos
Estas bases de datos surgieron ante la necesidad de aplicar al análisis de datos un punto de vista diferente en el que más que los objetos, lo importante era la conectividad entre ellos. Bajo esta premisa, es lógico que los principales promotores de estas bases de datos fuesen compañías basadas en este tipo de análisis, como son las redes sociales. Así pues, estas bases de datos se basan en la definición de nodos y enlaces, donde nodos son los objetos y enlaces las conexiones, con la importante característica de que las relaciones predominantes son del tipo varios-a-varios. Es aquí donde las bases de datos de grafos sacan gran ventaja sobre las SQL, ya que las segundas requerirían de una gran cantidad de inner joins que multiplicarían los tiempos de consultas, mientras que a través de grafos estas consultas se dan en tiempo real.
Características generales, ventajas e inconvenientes
Se distinguen generalmente dos tipos de estructuras de grafos: jerárquicas y de redes, y es importante recalcar que, aunque sean un tipo separado de noSQL, a menudo estas BBDD se estructuran a bajo nivel como NoSQL documentales, de objetos o mixtas.
Las principales ventajas se basan en esta conectividad, ya que, aunque sus ámbitos de uso sean muy reducidos, en aquellos casos donde las relaciones son importantes estas bases de datos van a superar en rendimiento a cualquier otro tipo de base de datos NoSQL. Además, dado este ámbito de uso específico, a menudo cuentan con interfaces de usuario y lenguajes de consulta propios enfocados a estos análisis de conectividad.
Por otro lado, sus ventajas se convierten en algunos casos en sus inconvenientes. El principal problema es su ámbito de uso específico, siendo inefectivo de implementar para la mayoría de casos de uso en la vida real (por otro lado, han aparecido para cubrir una necesidad específica y nadie espera de ellas que tengan otros usos). Además, el desarrollo de lenguajes propios no unificados (y a menudo diferentes a SQL) suponen un problema de cara a su uso y versatilidad, ya que requieren una curva de aprendizaje bastante lenta.
Posibles aplicaciones
- Redes sociales.
- Cálculo de rutas rápidas y óptimas.
- Planificación de itinerarios de transporte.
Principales bases de datos de grafos
Neo4j (AC)
Open source bajo licencia GPL, aunque con opciones de versiones Enterprise de pago. Pensada para el análisis de datos, ofrece la posibilidad de conectividad a múltiples plataformas de análisis y BI, así como su integración en diferentes plataformas y lenguajes mediante APIs. Lenguaje propio, optimizado para consultas de conectividad. Permite transacciones ACID y la definición de roles de usuario mediante soluciones externas estandarizadas (por ej. Active directory o Kerberos). Por contra, no es tolerante a partición.
InfiniteGraph
BBDD con licencia comercial. Combina una base de datos basada en objetos (Objectivity DB) con un entorno Spark basado en HDFS para ofrecer funcionalidades de grafos en un entorno distribuido. Combinable con las herramientas Python y Spark (SparkML, SparkSQL, GraphX…) así como con aplicaciones propias (REST API).
5. Bases de datos NoSQL: Series temporales
Características generales, ventajas e inconvenientes
Como en el caso de los grafos, estas bases de datos surgieron para cubrir una necesidad específica: el almacenamiento de series temporales y consultas en tiempo real. Como resultado, estas BBDD están optimizadas para una gran velocidad de lectura y escritura a tiempo real, así como para una realización de operaciones de filtrado y agregación basadas en las estampas temporales. Se componen generalmente de una estampa temporal y una dupla de pares clave-valor que representan cada una de las variables dependientes o factores, donde la estampa temporal funciona como clave y va a ser tratada como un elemento discreto ordinal. Como ocurría con los grafos, a menudo estas bases de datos se estructuran a bajo nivel como como SQL o NoSQL documentales.
Su principal ventaja se basa en que permiten consultas en tiempo real y que, en mayor o menor grado, todas usan un lenguaje similar a SQL. Además, como se optimizan para un tipo de datos específico, a menudo ocupan menos que otras bases NoSQL cuando almacenan los mismos datos. Además, dado su uso específico, casi todas ellas vienen ya asociadas a un software de visualización y a unas aplicaciones de procesamiento y agregación integradas en el propio sistema. Por otro lado, tienen una gran desventaja: no soportan datos no estructurados, y ha de recalcarse que, para estructuras temporales simples, los sistemas clave-valor posiblemente sean más eficientes.
Posibles aplicaciones
- Monitorizaciones de rendimiento de sistemas a tiempo real.
- Análisis de streamings.
- Monitorización de sensores a tiempo real.
Principales bases de datos de series temporales
Integrado en la plataforma InfluxData, permiten la integración de diferentes herramientas tanto de ingesta de datos como de visualización (por ej. Chronograf o Grafana). Pensada sobre todo para la monitorización de datos de rendimiento a través de Telegraf, pero tiene conectores externos para usos más generales. Versión gratuita no escalable y Enterprise que ofrece escalabilidad y soporte
BBDD con licencia open source. Permite la integración de scripts en diferentes lenguajes de programación y tiene su propia plataforma integrada para visualización de gráficos. La manera de guardar datos es circular, lo que supone que cuando llega a su máximo de capacidad, sobrescribe datos anteriores. No escalable.
Perteneciente a KX, permiten la integración de la BBDD con su propio software de visualización. Sistemas de replicación maestro-esclavo y controles de acceso mediante cuentas de usuario
6.Bases de datos NoSQL: repositorios de contenido
Características generales, ventajas e inconvenientes
Tipo muy específico de NoSQL, especializadas en el almacenamiento de contenidos heterogéneos y de formatos no textuales, como pueden ser archivos digitales de imagen y video. Sus posibilidades de uso son muy limitadas, y a menudo funcionan asociadas a otra BBDD a la que complementan. Por otro lado, es importante que están optimizadas para el almacenamiento y utilización de archivos, como datos digitales o versiones de productos, permitiendo además múltiples lecturas al mismo tiempo. Dado su limitado uso, a menudo contienen interfaces fáciles de usar para no programadores
Principales repositorios de contenido
Repositorio de datos abierto bajo licencia Apache. Creado para funcionar con la Java Technology API (JCR) y almacenar contenidos de manera escalable.
Como Jackrabbit, es un repositorio abierto que complementa a JCR.
En la última entrega hablaremos de las Bases de datos en la nube.