Principales tecnologías Big Data: NoSQL

No Comments

Cuando se consideran las tecnologías necesarias para abordar el problema del Big Data lo natural es considerar en primer lugar el sistema de gestión de bases de datos. La mayor parte de las bases de datos más utilizadas se encuentran ya optimizadas para almacenar y gestionar grandes cantidades de datos. Desde hace años los sistemas basados en el modelo relacional se han venido utilizando de manera exitosa tanto en la Industria como en entornos de investigación. Sin embargo, el umbral que define el término Big Data implica en primer lugar un cambio de paradigma en el modelo de gestión de la información.

Mientras que en las bases de datos que siguen el modelo relacional se garantizan determinadas propiedades que a priori pueden parecer más que importantes o casi imprescindibles (estamos hablando de la famosa terna ACID), hoy por hoy resulta imposible gestionar ciertos volúmenes sin relajar algunas de ellas. Precisamente de esta relajación y de la necesidad de cumplir con otras propiedades emerge un nuevo paradigma de gestión de datos: NoSQL.

Las propiedades que deben cumplir estos nuevos sistemas, principalmente en el entorno de Internet, son:

    1. Alta disponibilidad
    2. Tolerancia a fallos
    3. Gran capacidad de almacenamiento
    4. Alta capacidad de entrada/salida

Para conseguir cumplir con todo esto, normalmente no se cumplen las garantías ACID, y el sistema tiene una arquitectura distribuida. Además, la interfaz de acceso a los datos pierde capacidad de expresión con respecto a SQL (a esto se debe el nombre NoSQL), dado que la complejidad del esquema de los datos será mucho menor.

Aunque en los sistemas más modernos todas estas características son configurables, cuando se requieren resultados de rendimiento óptimos es necesario renunciar a gran parte de ellas. Por ejemplo, lo más normal es que la consistencia fuerte no esté garantizada, dado que en una arquitectura distribuida los cambios deben propagarse entre las diferentes máquinas. Cumplir con los principios ACID supondría una lacra para el rendimiento que haría el sistema poco óptimo para el escenario más normal de Big Data.

Hoy en día se pueden encontrar diferentes sistemas de bases de datos distribuidos que potencian diferentes atributos. De hecho, existe un teorema sobre sistemas distribuidos, el teorema CAP, que los agrupa de forma clara. Según este teorema, un sistema distribuido no puede satisfacer de manera completa los siguientes atributos al mismo tiempo: Consistencia Fuerte, Alta Disponibilidad y Tolerancia a Particionamiento. Teniendo en cuenta que una base de datos distribuida puede cumplir con dos de estos atributos de manera satisfactoria, se pueden establecer grupos de estos sistemas de acuerdo a estas características. En la siguiente agrupación se pueden observar algunos ejemplos:

Captura de pantalla 2013-06-26 a la(s) 13.27.23

Como puede observarse, en el grupo de sistemas que cumplen con los requisitos de disponibilidad y consistencia se encuentran los derivados del modelo relacional. En la parte de la derecha están aquellos inspirados en Amazon Dynamo, y abajo los hijos de Google BigTable. Esta clasificación resulta de mucha utilidad a la hora de tomar una decisión para el diseño de una plataforma para afrontar problemas relacionados con Big Data. En entradas sucesivas entraremos en profundidad en algunos de estos sistemas y compararemos sus características sobre el terreno.

Suscríbete a nuestra newsletter