NoSQL como soporte para el BigData.

 Big data se aplica a la captura, gestión y procesamiento de conjuntos de datos que superan las capacidades del software habitual. Los tamaños de Big data están cambiando constantemente. Es importante porque es un concepto que engloba y se relaciona con otras tendencias como cloud computing, movilidad, Internet de las cosas, ciberseguridad, analytics, etc. La adopción de Big Data parece ser un hecho que tarde o temprano deben realizar las organizaciones. 

Es de esperar que las oportunidades que esto brinde compensen la demanda económica y de especialistas requeridos para el análisis de estos grandes volúmenes de datos. Aparece, entonces, el perfil del científico de datos, que podría definirse como la evolución del analista de datos o de negocios en el contexto de Big Data. El científico de datos es una persona con habilidades diversas: ciencias de la computación, analítica, matemáticas, generación de modelos y estadística, además de buen comunicador.

 Esas nuevas necesidades han llevado a nuevos requerimientos de análisis de la información, lo que anteriormente se conocía como BI actualmente requiere de un nuevo modelo de análisis, Big Analytics, que trabaje con los datos al nivel más bajo de granularidad disponible con modelos más ágiles que los actuales de BI, que permitan hacer análisis de manera escalable, en tiempo real y que integren datos no estructurados con facilidad. Las “tres V”: variedad, volumen y velocidad, son los temas clave.



MongoDB

Es un tipo de BBDD NoSQL pensada para la gestión de documentos y open source. Guarda los datos en estructuras BSON, similares a JSON, pero no en tablas como las BBDD relacionales o clásicas (Oracle, SQL Server, MySQL, etc.).

Sus principales características son:

  • Permite consultas por campos de los documentos guardados, rangos, expresiones regulares…
  • Los campos de los documentos almacenados son registrados e indexados, por lo que las operaciones de lectura y escritura sobre ellos son rápidas.
  • Posibilita el balanceo de carga utilizando la metodología sharding.
  • Se puede utilizar como un gestor de archivos, aprovechando sus características de balanceo de carga y replicación (sharding).

Cassandra

Se trata de una base de datos NoSQL que tiene dos objetivos fundamentales: la escalabilidad lineal y la disponibilidad. Implementa la metodología sharding mediante una arquitectura distribuida en nodos iguales que se comunican entre sí, aumentando la tolerancia a fallos o redundancia al máximo.

Los datos se replican entre los nodos sin la necesidad de un servidor central, por lo que ofrece una baja latencia en las operaciones de lectura y escritura.

Sus principales características son:

  • Arquitectura descentralizada al no haber un servidor central, todos los nodos tienen las mismas funciones.
  • Los datos son distribuidos entre todos los nodos.
  • Se pueden añadir nuevos nodos de manera totalmente transparente y sin interrumpir el servicio aumentando la capacidad de lectura y escritura del sistema.
  • Alta redundancia o tolerancia a fallos al no haber ningún punto único central o de fallo, todos los nodos son iguales.

 

Redis

Procede de las iniciales Remote Dictionary Server (en castellano, servidor de diccionario remoto). Se trata de un servidor que como base de datos ofrece tanto opciones de memoria como de clave-valor. Su estructura la forman las denominadas strings (cadenas simples de caracteres). Se utiliza en sistemas de mensajería y chat, soporte de caché de páginas web, administración de carros de compra de ecommerce, estadísticas en tiempo real, etc.

Sus principales características son:

  • Buenos tiempos de respuesta a la hora de recuperar información (principalmente porque se almacena en memoria y no en disco).
  • Fácil configuración y alta disponibilidad.
  • Ofrece diferentes estructuras de datos, lo que permite adaptarse a diferentes necesidades. Entre ellas estarían listsetsorted sed, etc.
  • Indicado cuando la velocidad de acceso y tiempos de respuesta son críticos, así como para aplicaciones en tiempo real.

Neo4j

Emplea un modelo de grafos para la representación de los datos. Está indicado en caso de volúmenes de datos altos, complejos y con muchas relaciones entre ellos. Implementada en Java, usa los denominados grafos de propiedad.

Sus principales características son:

  • Alta disponibilidad y velocidad constante de operaciones (independientemente de la complejidad).
  • Alto rendimiento en lecturas.
  • Compatible con transacciones ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad).
  • Comunidad de usuarios muy amplia y activa.

Otras BBDD utilizadas en entornos Big Data son:

  • Terrstore
  • Orientdb
  • Couchdb
  • Flockdb
  • Hibari
  • Riak
  • Apache Hbase

Las BBDD para sistemas y aplicaciones de procesamiento de grandes cantidades y flujos de datos, como en el entorno Big Data, necesitan ser rápidas, escalables horizontal y verticalmente, tener tolerancia a fallos y servir tanto para datos estructurados como no estructurados.


Referencias 

Martín, A, Chavez, S., Rodriguez, N., Valenzuela, A., Murazzo, M. Bases de datos NoSQL en Cloud Computing. UNSJ. XV Workshop de Investigadores en Ciencias de la Computación. 2013

 Bollatti, Rodolfo. Big Data en la educación. XV Workshop de Investigadores en Ciencias de la Computación. 2013

 Antiñanco, Matías Javier. Bases de Datos NoSQL: Escalabilidad y alta disponibilidad a través de patrones de diseño. Diciembre, 2013.

Comentarios