El valor de la gestión de datos

La base de datos relacional y los grandes volúmenes de datos

Publicado el 5/12/16 22:00

¿Puede ser un problema una base de datos relacional cuando tratamos con enormes volúmenes de datos?

Lo habitual es que una base de datos relacional se diseñe para trabajar en un único servidor. Se hace así para mantener la integridad de las asignaciones de tablas y evitar problemas cuando tratamos con computación distribuida.

 

base de datos relacional.jpg

Pero en la actualidad estamos en un punto de inflexión en cuanto al volumen de datos. Se esperan grandes crecimientos de datos de aquí al año 2020. Las predicciones son de 44 zettabytes para entonces, y recordemos que un zettabyte es un billón de gigabytes. Las empresas tienen millones de usuarios y grandes cantidades de datos y ya empiezan a ejecutar sus aplicaciones en la nube. Necesitan entregar contenido de forma dinámica a millones de dispositivos de sobremesa, tablets, smartphones, etc. y tienen que hacerlo en diferentes localizaciones geográficas.

Manejar esta nueva realidad, en la que las organizaciones necesitan escalabilidad, para poder agregar cada vez más datos y más usuarios, y elasticidad, para que el sistema pueda adaptarse dependiendo de las demandas de datos, es un desafío una base de datos relacional.

 

Hacer escalar a una base de datos relacional es complicado

Alcanzar la escalabilidad y elasticidad es un gran reto para una base de datos relacional.  Las bases de datos relacionales fueron diseñadas cuando los datos podían mantenerse pequeños y ordenados, pero esto ya no es así. Todos los proveedores de bases de datos dicen que su base de datos puede escalar para gestionar Big Data. Lo hacen porque no tienen más remedio, pero la realidad es que si echas un vistazo más de cerca para ver lo que realmente funciona y lo que no, los problemas con una base de datos relacional se ven muy claros.

Una base de datos relacional está diseñada para funcionar en un servidor único con el fin de mantener la integridad del mapeo de tablas y  evitar los problemas de la computación distribuida. Con este diseño, si este sistema necesita escalar, los clientes tendrán que comprar un hardware propietario cada vez más grande, más complejo y más caro,  con más capacidad de procesamiento, memoria y almacenamiento. Las actualizaciones son también un desafío ya que la organización debe pasar por un proceso prolongado de compra y frecuentemente deben desconectar el sistema para realizar el cambio. Todo esto sucede mientras el número de usuarios continúa aumentando, pasando cada vez un estrés mayor e incurriendo en más riesgo.

 

Las nuevas arquitecturas solo ocultan el problema subyacente

Para manejar estas preocupaciones, los proveedores de bases de datos relacionales han incorporado un completo conjunto de mejoras. Hoy en día, la evolución de las bases de datos relacionales les permite utilizar arquitecturas más complejas basándose en modelos maestro-esclavo en el que los esclavos son servidores adicionales que pueden manejar procesamiento en paralelo y datos replicados o datos fragmentados, para facilitar la carga de trabajo del servidor maestro.

Otras mejoras de una base de datos relacional tales como utilizar almacenamiento compartido, procesamiento en memoria, mejor uso de réplicas, almacenamiento en caché distribuido y otras nuevas e innovadoras arquitecturas, han hecho que las bases de datos relacionales sean más escalables. Sin embargo, bajo todo esto, no es difícil encontrar un único sistema y un solo punto de fallo. Y a menudo los altos costes de estos sistemas son prohibitivos ya que la creación de un Data Warehouse puede suponer muchos miles de euros.

También podemos ver como estas arquitecturas han sacrificado la flexibilidad a cambio de rendimiento. Y adicionalmente vemos que también se pierde elasticidad al no poder reunir de nuevo a datos que han sido distribuidos y a los que se le ha asignado espacio.

 

Las bases de datos NoSQL pueden ser la solución

Al no estar limitadas por una arquitectura de servidor único, las bases de datos NoSQL pueden escalar masivamente en sistemas distribuidos. Pueden funcionar con servidores múltiples que trabajan juntos, cada uno compartiendo parte de la carga.

Utilizando este enfoque, una base de datos NoSQL, al contrario que una base de datos relacional, puede operar con cientos de servidores y grandes cantidades de datos, y además procesar decenas de miles de transacciones por segundo, y todo esto hacerlo con hardware de bajo coste que opera en cualquier entorno. Además, si un nodo falla, otros nodos pueden  hacerse cargo de su trabajo, eliminando así el problema de un único punto de fallo.

 

Guía introductoria a la migración de datos

Temas: Data Migration