Adrianistán

Herramientas para empezar con Big Data

30/11/2021

Una de las disciplinas con más crecimiento en los últimos años dentro de la informática es el Big Data. Sin duda se trata de un mundo relacionado pero a su vez diferente al desarrollo de software puro en el que se ha centrado la enseñanza hasta hace relativamente poco. Si investigamos como empezar con Big Data veremos que hay muchos trabajos concretos, cada uno con habilidades diferentes. No obstante me voy a centrar en las herramientas informáticas más populares y que pueden aplicar a varios de estos puestos.


Panorama Big Data & AI - http://mattturck.com

SQL

Pongo SQL en primer lugar porque es muy importante y mucha gente lo minusvalora. SQL es el lenguaje de consulta más popular y el que soporta las bases de datos más importantes del mundo (Oracle, PostgreSQL, IBM DB2, Microsoft SQL Server, MariaDB, MySQL, ...). Los proyectos de Big Data no todos tienen por qué usar otro tipo de bases de datos más novedosas, eso es algo que depende de la casuística en sí y muchas veces las bases de datos relacionales son la mejor opción. Pero una cosa que hay que tener muy claro es que SQL no es solamente un lenguaje para lecturas y escrituras simples. Es un lenguaje muy completo (y a veces complejo) para realizar consultas. Con la gran ventaja de que muchas veces, el código más legible será el que mayor rendimiento ofrezca.

Es por ello que SQL no se limita solo a bases de datos tradicionales. Spark, ClickHouse y Presto no son bases de datos al uso y también veremos un importante uso de este lenguaje dentro de estas herramientas.

Tampoco SQL es sinónimo de modelo relacional, ya que aunque beba mucho de él, veremos soporte a documentos JSON en las últimas versiones del estándar y a otros paradigmas. Además, un buen control sobre SQL nos permitirá hacer visualizaciones e informes rápidamente.

Apache Spark

Apache Spark es un sistema para procesamientos Big Data. Basado en la idea de MapReduce, Spark se ejecuta en varios nodos que se van repartiendo el trabajo dividiéndolo y rejuntándolo de forma combinada. La ventaja es que si usamos las funciones de Spark para nosotros será algo casi transparente. Spark está escrito en Scala y es una de las formas de escribir flujos de datos en Spark, pero también podemos usar Java, Python y SQL. Además es compatible con el almacenamiento Hadoop.

Apache Spark también incluye una librería de algoritmos de Machine Learning que puede sernos de utilidad, ya que si bien no son lo más avanzado de la técnica, están probados y se entrenan en paralelo.

Python / R

Dentro de los lenguajes para hacer análisis de datos, tenemos que destacan sobremanera: Python y R. Ambos tienen sus ventajas y sus inconvenientes. A mí personalmente me gusta más Python y en general pienso que cualquier persona que haya programado antes se sentirá más cómodo. Por contra, la gente que venga sin conocimientos de programación fuertes o ha estado más cercano a la estadística, encontrará R más de su estilo.

Python tiene la ventaja de ser un lenguaje de propósito general donde es más sencillo encontrar librerías para otras cosas diferentes al procesamiento de datos. También tiene algunas librerías bastante potentes como Pandas, matplotlib, NumPy y Sklearn / TensorFlow (estas últimas si nos interesa el Machine Learning que no siempre será el caso).

Por contra R está mucho más especializado en estadística y procesamiento de datos. Por ejemplo, gran parte de la funcionalidad que ofrece Pandas en Python la tenemos en R de forma nativa. Existen librerías muy potentes como ggplot2, y en general, toda la colección de tidyverse es de muy buena calidad.

En cualquier caso alguno de estos dos lenguajes te será esencial para poder ser productivo.

Tableau / D3

Una parte vital del Big Data es mostrar los datos en visualizaciones que nos permitan tomar acciones. Tableau es una aplicación con mucha solera y una cantidad ingente de opciones. PowerBI es un producto muy similar, ofrecido por Microsoft. D3, por contra, se trata de una librería para manipular gráficos en JavaScript (en el navegador web) de una forma muy conveniente para mostrar datos. D3 es quizá de más bajo nivel, tardando más en hacer ciertas visualizaciones básicas pero es muy flexible y nos permite crear las visualizaciones más impactantes.

¿Hay más?

Por supuesto que hay más. Y habrá más. Es un campo en constante cambio, por lo que incluso para gente que se dedica a ello, el reciclaje es importante con cursos especializados, blogs y conferencias. Para gente que entra de nuevas, una buena opción puede ser un bootcamp de data science que repasará bastantes herramientas de distintos campos y además pondrá todas estas herramientas en su contexto de uso adecuado.

Tags: programacion d3 sql big data spark