Tu Data no es tan grande

9 de marzo de 2017

Voy a contarles una anécdota. En el IFARHU, manejamos cerca de 1.5 TB de datos referentes a los pagos de estudiantes. Con estos datos, es posible desarrollar información que nos permita, dentro de un contexto, generar conocimiento y tomar decisiones o simplemente comprender la ejecución. Este es un procedimiento conocido como “Generación de Conocimiento”.

El IFARHU, como cualquier otra organización medianamente madura a nivel tecnológico, tiene una mina de oro sin explotar. Tenemos decenas de millones de registros que no son aprovechados para la generación de conocimiento o para la toma de decisión, algo que comúnmente se realiza mediante la implementación de Business Intelligence (BI) en algún aspecto.

BI es un término muy amplio. BI es “un paragüas de términos que incluyen aplicaciones, infraestructuras, herramientas y mejores prácticas que permiten acceder y analizar la información para mejorar y optimizar las deiciones y el rendimeinto” fn-1. Estos sistemas de BI deben incluir 4 componentes fn-2:

  1. Un almacén de información (un Data warehouse (DW)), con su información fuente.
  2. Analítica del Negocio (el porqué).
  3. Administración de Métricas de Negocio (Business Performance Metrics (BPM)).
  4. Interfaz de Usuario, como tableros de información (Dashboards).

Es importante entender que todo sistema de Inteligencia de Negocios se basa en la solución de un motivo, el “porqué”.

#.Big Data

Big Data es un término, más que una tecnología como erróneamente se conoce. Autores lo describen como la aparición de los siguientes términos (conocidos como las V de la Big Data):

  • Volumen: Por la gran cantidad de los datos.
  • Variedad: Por la forma distinta en que surjen estos datos y la forma variable de los mismos.
  • Velocidad: Por la forma exponencial en que crecen estos datos y la velocidad (rápida) en que necesitan ser accedidos.
  • Veracidad: Por tener datos completos y correctos.
  • Variabilidad: Por la variación del dato en el tiempo.
  • Visualización: Por la necesidad de “digerir” los datos.
  • Valor: Por ser la razón medular de Big Data, para la generación de valor, de “conocimiento”.

Ahora, ¿qué tan grande es Big Data?.

#.El error: pensar en grande

Como ingenieros, tendemos a echar mano en la data… digo, en la masa. La primera decisión nuestra fue implementar un pequeño cluster de Hadoop en máquinas pequeñas y viejas, aprovechando una de las ventajas de Hadoop para correr en casi cualquier hardware.

Es importante entender que Hadoop, más que un sistema, es un ecosistema que está compuesto de varios sistemas internamente (HDFS, YARN, etc.).

Luego de la implementación del cluster, era necesario hacer una especie de Data warehouse con Hadoop y sus respectivos procedimientos de ETL (Extract Transform Load). Para ello:

  • Se implementó Sqoop para la extracción desde las Bases de Datos Relacionales.
  • Se implementó Hive como Data warehouse y para utilizar HiveQL en vez de MapReduce.
  • Se implementó scripts de ETL utilizando Hive y Python (el cual es posible ejecutarlo con Hadoop).

Luego de todo esto y tener la data limpia para ser procesada, llegó el momento de probar la solución.

Para nuesta sorpresa, el resultado no fue el mejor. Si bien es cierto que hablamos de decenas de millones de filas en hardware sencillo, el resultado de un agrupamiento simple podría tardar varios minutos. Incluso probamos la utilización de un sistema columnar (Parquet). El resultado mejoró, pero quizás era too much.

Esto nos hace pensar en este momento, ¿es realmente grande nuestra data?.

#.Todo debe empezar por entender el “porqué”

¿Realmente entendemos el problema que vamos a solucionar?. La respuesta en nuestro caso y el de muchos otros es “no”.

Estos problemas no son de ingeniería, en la mayoría de los casos, sino problemas o situaciones de la organización. Estos problemas pueden incluso ser una pregunta como “¿Cuáles son los productos que más se venden los fines de semana?” o mejor aún: “¿Qué productos son más probables de vender el próximo mes?“.

En el caso del IFARHU, luego de cierto análisis, notamos que era necesario comprender la población y entender la demografía completa: sexo, edad, ubicación, etc.

Siendo un país de alrededor de 4 millones de habitantes, si pudiésemos guardar 70kbs por cada uno de los habitantes (tomando en consideración que no todos tienen beneficio del IFARHU, incluso) podríamos necesitar únicamente 286.72 Gb.

Solo haciendo este pequeño cálculo nos hace pensar que realmente nuestra data no era tan grande. Incluso, una Base de Datos relacional haría el trabajo.

#.Conclusión y trabajo futuro

El conocimiento y los proyectos de Big Data debe generar siempre valor para la organización y esto debe ser el norte. Es importante entender el problema primero, para luego proceder a ver la posible solución.

Con la definición del problema y el entendimiento del mismo, es posible diagramar posibles soluciones mediante tecnología.

En nuestro caso, estaremos probando con diversas alternativas paralelas, como la utilización de un pequeño servidor en MongoDB y Spark como capa de de procesamiento de los datos. Hadoop lo utilizaremos cuando sintamos que sea totalmente necesario.


  1. Gartner, “Business Intelligence - BI Gartner IT Glossary”. 2016.
  2. E. Turban, R. Sharda, and Delen, “Decision Support and Business Intelligence Systems”. 2007.