big-data

Big data, soluciones a retos

Actualmente las empresas se ven con nuevos problemas que anteriormente no tenían. Nuevos tipos de datos, nuevas exigencias de rendimiento a la hora de procesamiento, nuevos enfoques de soluciones BI… por ello, han surgido diferentes propuestas para atacar problemas concretos comentados en el post anterior. No sustituyen a las BD Relacionales ni a los procesos de creación de proyectos BI, sino que son “herramientas” con las que podemos trabajar para resolver con mayor eficacia esos problemas.

Bases de dato big data

Son nuevos datos y nuevas formas de almacenar estos datos que surgen en la actualidad. Por ello, surgen nuevos gestores como los NoSQL que buscan dar solución a los 3 problemas anteriores (escalabilidad, heterogeneidad y rendimiento). Por ejemplo, las BD clave-valor consiguen almacenar de forma sencilla diferentes tipos de datos no estructurados, sería un símil a tener una fila con 2 columnas y después una fila con columnas dinámicas. Esto en las relacionales es impensable. En un punto posterior se analizarán estas bases de datos propuestas.

Sistema de archivos distribuido para garantizar escalabilidad.

El problema de la reducción de datos ha sido uno de los grandes problemas de Google al inicio de su actividad. Necesitaban procesar millones de millones de páginas para poder obtener el resultado de su PageRank de forma resumida, por lo tanto crearon un algoritmo el cual conseguía resumir de forma sencilla todos esos datos. Crearon el corazón del BigData, el concepto del algoritmo MapReduce . Después llegó Yahoo y creó la cáscara que envuelve el MapReduce, comúnmente llamado Hadoop. La gran base que garantiza ejecutar programas MapReduce hechos por usuarios en nodos distribuidos. Esta herramienta tiene un sistema de archivos HDFS el cual provee la distribución de trabajos a diferentes nodos que ejecutarán en 8 paralelo este algoritmo de reducción.

Una de las cosas más importantes es que el HDFS consigue hacer transparente o simplificar la creación de clusters de nodos que trabajan en paralelo como un nodo solo. Si necesitas más potencia es simplemente añadir una nueva IP de un nodo en un fichero. Fácil y sencillo. Este sistema HDFS es la base del BigData pues están surgiendo y se desarrollan herramientas que son ejecutadas encima de este sistema HDFS pudiendo obtener aplicaciones distribuidas. Las más importantes son las BD como HBASE o HIVE (que realmente no es una BD sino un intérprete SQL que traduce MapReduce). Son dos herramientas que se ejecutan encima del HDFS de forma sencilla pero que actúan sobre un cluster de N nodos con transparencia. Si necesitamos más potencia o espacio añadimos un nuevo nodo como anteriormente. Las consultas irán más rápido conforme añadamos nodos a nuestro cluster. La famosa teoría del DIVIDE Y VENCERÁS .

big data

Big Data. Problemas actuales

La teoría que nos enseñan en la carrera de informática es que el modelo tradicional de BD es el relacional que con ello podemos hacer todo. Hasta hace relativamente poco, inclusos los hay que aún solventan cualquier problema con relacionales. Actualmente hay una serie de problemáticas con este tipo de BD que se resumen en estos 3 puntos:

Tipos de datos. Variedad

Han surgido nuevos tipos de datos que se quieren almacenar: datos no estructurados. Las BD Relacionales no pueden almacenar este tipo de datos.

Escalabilidad

En búsqueda de la rapidez y rendimiento en consultas o procesamiento de datos se busca escalar siempre en horizontal. Es decir, si necesitamos más rendimiento añadimos una CPU a nuestro conjunto de trabajo para poder aumentar nuestras prestaciones en conjunto y aumentar el rendimiento reduciendo el tiempo de búsqueda o almacenamiento. El problema es que actualmente las BDRelacionales no pueden estar distribuidas en nodos diferentes de forma sencilla transparente al usuario. Por ello la única forma de conseguir estos dos objetivos en las BD Relacionales es añadiendo CPU y Memoria, haciendo escalabilidad vertical. Pero esto no es suficiente, buscamos escalabilidad 6 horizontal para tener todos los servidores que queramos trabajando en paralelo y no tener un límite como es el caso del escalado vertical.

Modelo relacional

El modelo relacional no da soporte para todos los problemas. No podemos atacar todos los problemas con el mismo enfoque, queremos optimizar al 100% nuestro sistema y no podemos ajustar nuestros sistemas a estas BD. Por ejemplo, en el modelo relacional no podemos tener herencia de objetos o no podemos tener columnas variables según las filas…

Velocidad

Esta es una de las “3 V’s” del Big Data (velocidad, variedad, volumetría). La velocidad de generación de datos hoy en día es muy elevada, simplemente hay que verlo con las redes sociales actuales, aunque las empresas medias y muchas de las grandes no se ven afectadas por ello. Donde sí influye la velocidad es en el procesamiento de todo este conjunto ingente de datos, pues cuantos más datos tengamos más tiempo requieren. Por ello, se necesita un ecosistema que sea capaz de escalar en horizontal para trabajar en paralelo y ahorrar tiempo, siguiendo la técnica del “divide y vencerás”.

Por ello, teniendo en cuenta estos principales problemas, se han creado nuevas herramientas y sistemas para poder tener alternativas, que no sustituyen a las actuales, sino que aportan una forma alternativa de atacar problemas y/o mejorar nuestra solución de procesamiento y análisis de datos.