En Big Data, contar con datos ―mejor, de calidad― es imprescindible, tanto o más como contar con un experto Data Scientist que sepa extraer valor de la información que proporcionan esos datos, o contar con un directivo dispuesto a asumir riesgos adoptando proyectos Big Data en pro de su negocio; pero igualmente es indispensable contar con las herramientas Big Data más adecuadas para desarrollar las soluciones Big Data necesarias para conseguir los mejores resultados posibles.
Las técnicas analíticas y toda su revolución no son nada si no contamos con un buen elenco de herramientas Big Data para almacenar los datos, como una adecuada base de datos, herramientas de procesamiento y gestión de datos, para poder realizar consultas concretas, herramientas de análisis de datos, para detectar los patrones que nadie más consigue ver, o herramientas de visualización de datos, para esclarecer los resultados, todas ellas al servicio de nuestro negocio con el único objetivo de mejorar los resultados.
Herramientas Big Data para almacenar datos
Hace un par de décadas un terabyte era una cantidad de información casi inimaginable. Hoy por hoy, sin embargo, muchos centros de datos se miden en petabytes, incluso, en zetabytes. Para almacenar una cantidad tan abrumadora de datos hacen falta herramientas con una capacidad enorme. En este contexto juegan un papel clave las bases de datos.
Las bases de datos son un compendio de datos relacionados con un mismo contexto y almacenados masivamente para su posterior uso. La mayoría de bases de datos ya están en formato digital, lo que permite tratarlas informáticamente y acceder a ellas en menos tiempo. Pueden albergar tanto información estructurada como no estructurada. En informática, por su forma de estructurar la información y el lenguaje que utilicen, se clasifican a grandes rasgos en bases de datos SQL y NoSQL.
Bases de datos SQL
Las bases de datos SQL (Structured Query Language o lenguaje de consulta estructurada) usan un lenguaje declarativo de acceso a bases de datos relacionales que permite efectuar consultas para almacenar, modificar y extraer información de forma sencilla.
La principal característica es que las bases de datos SQL siguen un estándar, tanto en la forma en la que se diseñan como en el modo en el que almacenan la información y en el que deben consultarse.
Todas las bases de datos SQL cumplen con las propiedades ACID (Atomicidad de operaciones, Consistencia de datos, Aislamiento de operaciones concurrentes, y Durabilidad de los datos). Algunos ejemplos: DB2, Oracle, SQLite….
Bases de datos NoSQL
Las bases de datos NoSQL (MongoDB, Cassandra, Elasticsearch, Cloudant, Neo4j, Redis…) no requieren estructuras fijas y se clasifican según su forma de almacenar los datos en bases de datos documentales, columnares o de grafos.
Las bases de datos NoSQL se caracterizan por ser mucho más heterogéneas. Son todas aquellas que no siguen el estándar SQL y, por tanto, no cumplen alguna de las propiedades ACID.
Son más flexibles a la hora de guardar datos de índole diversa o de almacenar datos masivos que deben compartirse entre varias máquinas. A cambio no garantizan que los datos siempre estén disponibles en su versión más actualizada, y suelen estar limitadas a consultas más simples que las que pueden hacerse sobre bases de datos SQL.
¿SQL o no SQL? He ahí la cuestión… En general, elegir SQL o NoSQL dependerá del tipo de producto que estemos construyendo, aunque por la naturaleza de los proyectos Big Data, las NoSQL suelen ser más convenientes.
Herramientas Big Data para procesar datos
Todas las infraestructuras destinadas a gestionar y procesar datos, como los frameworks de código abierto (Open Source) tipo Hadoop, Apache Spark, Storm o Kafka, constituyen plataformas tecnológicas de alto rendimiento pensadas para la manipulación de fuentes de datos, ya sea en procesamiento batch o en tiempo real.
Estos ecosistemas se caracterizan también por el lenguaje de programación en el que se base su funcionamiento. Estos lenguajes se diseñan para expresar algoritmos con precisión y probar, depurar y mantener el código fuente de un programa informático. Hoy los más utilizados en Big Data son Python, Java, R y Scala.
Herramientas Big Data para analizar datos
La base de las técnicas Big Data radica en las herramientas destinadas al análisis de datos. A diferencia del almacenamiento y el procesamiento de datos, las herramientas de análisis no están tan estandarizadas.
El buen científico de datos normalmente combinará diferentes herramientas y paquetes Open Source para poder aplicar los algoritmos más adecuados al problema en el que esté trabajando.
Para ello, son necesarios conocimientos matemáticos, estadísticos y analíticos avanzados que incluyan formación en Machine Learning o Aprendizaje automático (redes neuronales, ensembles, SVMs, Deep Learning…), reconocimiento de patrones, modelos predictivos, técnicas de clustering, Minería de datos o Data Mining (minería de textos, de imágenes, del discurso…), PLN o Procesamiento del Lenguaje Natural, Sentiment Analysis, etc.
Pero para que aplicar técnicas Big Data al negocio dé como fruto los mejores resultados posibles, además de una gran capacidad de computación debemos saber combinar la capacidad de almacenamiento y la de procesamiento con la de análisis. Hay 3 niveles de analítica de datos distintos:
- La analítica descriptiva, que sirve para saber cómo está funcionando el negocio.
- La analítica predictiva, que permite anticiparse a lo que previsiblemente ocurrirá en un futuro. A este nivel nos encontramos librerías de algoritmos a las que el data scientist puede recurrir como Scikit-learn, Keras, Tensorflow, nltk…
- Y, por último, la analítica prescriptiva, que ofrece la mayor ventaja competitiva porque sus recomendaciones sobre cuál es la mejor estrategia para alcanzar los mejores resultados permiten tomar decisiones mejor informadas. Este nivel, el prescriptivo, es el más inexplorado. Junto a las herramientas de la analítica predictiva, existen otras herramientas que pueden utilizarse para resolver la componente de optimización de cualquier solución prescriptiva: CPLEX, Gurobi, paquetes de Matlab…, pero construir la solución global suele requerir de desarrollos de software específicos para cada proyecto.
Herramientas Big Data para visualizar datos
Aparte de saber cómo almacenar datos, procesarlos y analizarlos, ser un experto en Big Data conlleva saber comunicar la información que esos datos, tras su clasificación y estudio, nos ha proporcionado. Para ello es fundamental pintar los datos en un contexto familiar y efectivo que facilite la labor de interpretarlos, visualizándolos de manera sencilla y asequible.
En el mercado hay herramientas de visualización de datos asequibles tanto para desarrolladores o diseñadores como para personal menos técnico. La mayoría cuenta con versiones de pago y versiones gratuitas y ofrece gráficos optimizados para su uso en redes sociales. Entre las más populares estarían Tableau, Weave, Datawrappper, Gephi, Infogram, Many Eyes, Piktochart, NodeXL, Chartblocks, d3, Thinglink, Axiis, QuickView y Google Fusion Tables.
En resumen, conseguir mejores resultados pasa por dominar las herramientas Big Data: contar con profesionales cualificados en el uso de los distintos sistemas de almacenamiento y procesamiento de datos ―tanto los tradicionales como los más actuales derivados del mundo NoSQL o del ecosistema Hadoop―, crear soluciones de análisis y visualización ―accesibles tanto en modalidad SaaS como directamente en las instalaciones del cliente― y aplicar los distintos niveles de técnicas analíticas en beneficio del cliente.
Complementado su artículo quisiera añadir lo siguiente sobre las base de datos NoSQL en el Big Data.
Una de las principales razones por las cuales se recurre con mayor frecuencia al uso de este tipo de base de datos es que pueden gestionar mejor grandes cantidades de información sin ver afectado su rendimiento aunque como bien se menciona no soportan consultas complejas como el uso de relaciones que en una base de datos relacional es lo más común.
Otra característica importante es la economía con la que se puede implementar una solución en donde se requiera el procesamiento de grandes cantidades de información, esto se puede lograr utilizando procesamiento distribuido. Varias computadoras trabajando en conjunto y ofrecido el resultado del procesamiento como si fuera solo una sola máquina, cabe mencionar que por las características de una base de datos NoSQL puede trabajar sobre equipos con pocos recursos informáticos de este modo los costos se reducen en comparación con las bases de datos relacionales donde se trabaja de forma centralizada y cuando es necesario mejorar el rendimiento de dicha base de datos es necesario incrementar los recursos haciendo más costoso el uso de una base de datos relacional.
Finalmente otro punto que hace más eficiente las bases de datos NoSQL cuando se trabaja con grandes cantidades de datos es que no se transcriben las consultas como se hace en una base de datos relacional lo que provoca cuellos de botella causando que el rendimiento durante un periodo de mucha concurrencia de usuarios.
En resumen las bases de datos No relacionales ofrecen muchos beneficios que el Big Data aprovecha y gracias a ello puede a su vez ofrecer beneficios atractivos en cualquier solución de Big Data.
Muchas gracias por tu comentario y aportación Francisco. ¡Gracias!