Contacta con nosotros.

+34 941 123 251

comunicacion@bosonit.com

Bosonit Agile Center

Portales 71, 2º Of. 7,8,9 y 10. LOGROÑO

Isabel la Católica, 6. (Edificio Hiberus). ZARAGOZA

Salvador Granes, 3. MADRID

San Esteban de Etxebarri, 8. BILBAO

Contacta con nosotros.
Back to top

Bosonit

  /  Big Data   /  Bases de datos NoSQL 3: Grafos, series temporales y repositorios de contenido.

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 .- Grafos

Características generales, ventajas e inconvenientes

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 BBDD fuesen compañías basadas en este tipo de análisis, como son las redes sociales. Así pues, estas BBDD 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 BBDD 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.

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 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

  1. Redes sociales
  2. Cálculo de rutas rápidas y óptimas
  3. Planificación de itinerarios de transporte

Principales BBDD de grafos

Neo4j (AC)

https://neo4j.com/ 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 (AP)

http://www.objectivity.com/products/infinitegraph/ BBDD con licencia comercial. Combina una BBDD basada en objetos (ObjectivityDB) 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.- 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 tupla 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 BBDD 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 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

  1. Monitorizaciones de rendimiento de sistemas a tiempo real
  2. Análisis de streamings
  3. Monitorización de sensores a tiempo real

Principales BBDD de series temporales

InfluxDB

https://db-engines.com/en/system/InfluxDB 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

 

RRDtool

https://oss.oetiker.ch/rrdtool/ 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.

Kdb+

https://kx.com 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.- 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

Apache Jackrabbit:

http://jackrabbit.apache.org/jcr/index.html Repositorio de datos abierto bajo licencia Apache. Creado para funcionar con la Java Technology API (JCR) y almacenar contenidos de manera escalable.

Modeshape

http://modeshape.jboss.org/ Como Jackrabbit, es un repositorio abierto que complementa a JCR.

 

En la última entrega hablaremos de las Bases de datos en la nube.