Hace unos días me preguntaba un cliente mi opinión sobre el futuro de las bases de datos relacionales respecto al progresivo aumento de popularidad de las bases de datos NoSQL en los últimos años.
Es conocido por todos que cada vez se generan más y más datos, y el escalado vertical (scale-up) que ofrecen las bases de datos relacionales, en principio, no parece una buena solución respecto al escalado horizontal (scale-out) de los entornos distribuidos de las principales bases de datos NoSQL.
Basándonos en esto y viendo que el incremento de volumen de datos avanza a una velocidad mayor que el incremento de capacidad del hardware, es normal pensar que tarde o temprano, las bases de datos relacionales se van a quedar cortas.
Para analizar cómo afrontan hoy en día y qué opciones de futuro planean las bases de datos relacionales respecto a estos problemas, vamos a diferenciar los dos tipos de entornos que principalmente existen.
Por un lado tenemos entornos datawarehouse (DW), entornos analíticos donde la información se carga en batches y se transforma quedando generalmente estática para favorecer el reporting y explotación de la misma.
Por otro lado tenemos los entornos transaccionales (OLTP), entornos operacionales donde la información está viva, y en los cuales se favorece el rendimiento de estas frecuentes modificaciones.
Entornos datawarehouse
Hoy en día, la apuesta en este tipo de entornos de las bases de datos relacionales es claramente el almacenamiento de la información de forma columnar.
A diferencia del almacenamiento tradicional de la información en este tipo de bases de datos en forma de registros, el almacenamiento de la información de cada columna de forma conjunta ofrece un ratio de compresión de tamaño de los datos superior al 80% en la mayoría de casos.
Debido a esta significativa compresión es mas fácil mantener esos datos en memoria, añadido a la capacidad de procesar la información en batches de registros, ofrece un rendimiento muy competitivo sobre todo en consultas de agregación.
Tanto SQL Server, desde la versión 2012, como Oracle, desde la 12c, ofrecen sus tecnologías columnstore integradas en su propio motor de base de datos.
Basándose en esta tecnología, y hablando de cantidades ingentes de datos, no se quedan atrás y ofrecen soluciones en la nube distribuidas en entornos de procesamiento masivo en paralelo (MPP).
Respecto a SQL Server tenemos Azure SQL Data warehouse, anteriormente conocido como SQL Server Parallel Data Warehouse.
Hablando de Oracle, han anunciado la versión para datawarehouses de su nueva base de datos Oracle 18c para Diciembre de 2017, distribuida y autónoma tanto en cloud privada como pública.
Entornos transaccionales
En este tipo de entornos, tanto para relacionales como para NoSQL, el objetivo es claro, mantener los datos en memoria y evitar accesos a disco.
Debido a que, tanto la velocidad de acceso como de escritura es mucho mayor en memoria que en disco, el único uso de la memoria para realizar las operaciones en este tipo de entornos es critica para el buen rendimiento de las mismas.
Hoy en día SQL Server, desde la versión 2014, ofrece su tecnología en memoria (In-Memory OLTP) integrada en el motor de base de datos.
Respecto a Oracle, se puede aplicar su tecnología de almacenamiento columnar de la que hablábamos antes, ya que también reside en memoria, pero en entornos puramente OLTP se recomienda usar otro producto aparte llamado Oracle TimesTen.
Como opciones de futuro, Oracle ha anunciado la versión para entornos OLTP de su nueva base de datos Oracle 18c para Junio del 2018, distribuida y autónoma tanto en cloud privada como pública.
Respecto a SQL Server de momento no parece haber ninguna solución distribuida para este tipo de entornos, aunque viendo casos de uso en una sola máquina se han registrado 1.200.000 batches/seg, una cifra bastante aceptable para un entorno OLTP.
En este artículo hemos repasado las principales características existentes de las principales bases de datos relacionales para afrontar el constante incremento de volumen de datos que experimentamos. También hemos visto como afrontan su futuro apostando por entornos distribuidos y, claramente especializados en diferentes tipos de entornos, principalmente como soluciones en la nube.
¿Quieres más información? Contacta con Hiberus Tecnologías Diferenciales y estaremos encantados de ayudarte.
¿Quieres más información sobre nuestros servicios de Big Data?
Contacta con nuestro equipo de expertos en Data & Analytics