Técnico

Big Data desde cero

Share

¿Qué es Big Data?

El término Big Data se usa para definir enormes volúmenes de datos, tanto estructurados como no estructurados, que son costosos y complejos de procesar con tecnologías tradicionales de bases de datos y análisis.

Las 3 V del Big Data

Volumen: Los sistemas de Big Data gestionan enormes cantidades de datos. Desde terabytes hasta petabytes. El término «Big Data» hace referencia a esta enorme cantidad de datos. El tamaño de los datos que se procesan desempeña un papel importante para poder extraer valor de esos datos.

Variedad: Las plataformas de Big Data procesan datos de fuentes heterogéneas. Tradicionalmente los datos que se analizaban procedían de hojas de cálculo y bases de datos, hoy en día las fuentes son muy variadas, añadiendo muchas fuentes de datos no estructurados, como correos electrónicos, blogs, audios, fotos, vídeos, datos de diferentes sensores, etc. Esta variedad de tipos de datos y fuentes representa una complejidad adicional a la hora de almacenar y analizar la información.

Velocidad: Se refiere a la velocidad con la que se genera y procesa la información. La velocidad con la que las organizaciones generan datos está aumentando y el tiempo en el que esperan extraer de ellos información útil y procesable está disminuyendo. El flujo de información es continuo y masivo, y el procesamiento puede incluso ser necesario en tiempo real.

¿Por qué puede necesitar Big Data?

El objetivo es poder identificar el conocimiento procesable, obtenido de grandes volúmenes de datos, con varios formatos y en tiempos relativamente cortos.

Big Data e IoT

Internet of Thing es una excelente fuente de datos para las plataformas de Big Data. Diferentes tipos de sensores recopilan datos de forma continua, lo que significa que muchas veces el volumen de información generado es demasiado masivo y diverso para procesarlo con las herramientas tradicionales; en esos casos, las plataformas de Big Data entran en acción.

Big Data frente a inteligencia empresarial

El Big Data y la Inteligencia Empresarial (BI) son tecnologías complementarias. Ambas tienen como objetivo procesar y analizar la información para ayudar a las organizaciones a entender sus negocios, pero la forma de hacerlo y el volumen y el tipo de datos con los que trabajan son muy diferentes.

La BI busca ayudar a las organizaciones a tomar decisiones de manera ágil y rápida, presentando datos a costos razonables. En cambio, el Big Data se ocupa de extraer, almacenar, procesar y visualizar volúmenes masivos de datos.
Algunas de las diferencias más importantes son:

  • El Big Data utiliza sistemas de archivos distribuidos, mientras que el BI en general almacena la información en un servidor central.
  • La BI procesa solo datos estructurados (bases de datos tradicionales), mientras que el Big Data también puede procesar información no estructurada (blogs, fotos, audios, etc.).
  • El Big Data utiliza un procesamiento paralelo masivo, lo que permite analizar grandes volúmenes de datos de manera eficiente.
  • Los datos que se analizan con Big Data pueden ser históricos o en tiempo real, las plataformas de BI suelen trabajar con datos históricos.

El Big Data puede incluso ser una fuente de datos para los sistemas de BI, que son ideales para identificar e informar tendencias, resultados e indicadores.

¿Por qué ahora?

Para poder utilizar plataformas de Big Data necesitamos disponer de la infraestructura necesaria para almacenar grandes volúmenes de datos a bajo coste, lo que no representa una limitación importante desde hace algún tiempo.

Además, es necesario poder procesar estos datos de forma rápida y a un coste relativamente bajo. Esto ha sido posible gracias al aumento exponencial de la capacidad informática en los últimos años. Este fenómeno ha tenido un gran impacto en el panorama tecnológico, por ejemplo, también ha hecho viable el uso de herramientas de inteligencia artificial como el aprendizaje profundo.

Herramientas y marcos de Big Data

El Big Data es un concepto general que abarca muchas tecnologías. Uno de los marcos más populares para gestionar estos enormes volúmenes de datos es Hadoop.

Hadoop es un sistema de código abierto que se utiliza para almacenar, procesar y analizar grandes volúmenes de datos. En lugar de utilizar un único servidor muy potente para almacenar y procesar la información, permite crear clústeres de servidores para analizar los datos en paralelo.

Tiene dos componentes principales: HDFS (Sistema de archivos distribuidos de Hadoop) y MapReduce.

HDFS es un sistema de archivos distribuido que permite almacenar y procesar la información en un clúster de servidores.

El clúster puede crecer desde unos pocos nodos hasta miles o decenas de miles, lo que hace que la solución sea altamente escalable. A medida que aumenta la cantidad de información y aumenta la necesidad de procesamiento, se agregan nuevas máquinas al clúster. La principal ventaja es que no es necesario adquirir ni reemplazar ordenadores con una capacidad de almacenamiento y computación cada vez mayor para aumentar la potencia de mi plataforma.

El MapReduce El marco se utiliza para realizar el procesamiento y el análisis de la información en el sistema de archivos distribuido. Este paradigma de programación permite escalar masivamente el procesamiento de la información en clústeres de miles de servidores (trabajadores o nodos del clúster). Divide las tareas grandes en muchas pequeñas, que se ejecutan en paralelo en diferentes servidores del clúster (operación de mapeo), para luego unir los resultados parciales en un único resultado final (operación de reducción).

Usaremos una analogía para entender el concepto de operaciones de mapeo y reducción.

Supongamos que queremos hacer un censo en la ciudad de Montevideo. Contratamos a cientos de censistas, les asignamos a cada uno un área de la ciudad y les pedimos que contaran cuántas personas viven en esa área (revisando todas las casas de la zona).

Luego, con los resultados de todos los censistas, sumamos los valores para obtener el número total de personas que viven en Montevideo.

Dividir la tarea del censo en muchas personas, que cuentan el número de personas en paralelo, es análogo al proceso del mapa. Si bien sumar el monto total para obtener el resultado del censo en Montevideo es análogo a la operación Reducir. Dividir la tarea y ejecutarla en paralelo es mucho más eficiente que hacer que una sola persona recorra toda la ciudad para contar el número de personas.

Por muy simple que parezca el concepto de MapReduce, la programación para ejecutar tareas en paralelo es un gran desafío cuando se trabaja con esquemas de Hadoop. Por este motivo, se han desarrollado muchas herramientas dentro del ecosistema de Hadoop para ayudarnos a simplificar esta tarea.

Por ejemplo, Colmena es una herramienta que nos permite consultar sistemas Hadoop con un estilo similar al de las consultas SQL. Fue desarrollada inicialmente por Facebook, ha sido ampliada por Apache y es de código abierto.

Por otro lado, Chispa también es un marco muy popular, que puede funcionar montado en el ecosistema de Hadoop, en sustitución del marco MapReduce. Es un sistema de procesamiento distribuido que está optimizado para ejecutar rápidamente operaciones iterativas de análisis de datos y aprendizaje automático. Es de código abierto y proporciona API de desarrollo en Java, Python y Scala.

Cada viaje de IA comienza con una conversación

Hablemos
Hablemos