¿Qué es la computación distribuida de Big Data?

 

 

Las tres características principales de los datos que hacen necesario aplicar técnicas de Big Data en un proyecto de análisis de datos son: Grandes volúmenes de datos, la necesidad de procesar esos datos de manera rápida, y el uso de tipos de datos complejos.

En cualquier caso, eso se traduce en la necesidad de una gran capacidad computacional, para así poder satisfacer los requerimientos analíticos de los usuarios.

Un gran problema

El hecho de trabajar con grandes volúmenes de datos, de tener que procesar un conjunto de datos a una gran velocidad o de tratar con tipos de datos complejos que requieren de cálculos intensivos para poder obtener información de éstos, supone una dificultad que Big Data debe resolver.

En una solución de Business Intelligence (BI) tradicional, se trabaja en la gran mayoría de casos con una arquitectura basada en un único servidor. Este servidor, a pesar de poder ser multi-core, no puede paralelizar una tarea a alto nivel, con lo que debe asumir toda la carga computacional. El resultado es la ejecución de largos procesos para resolver cálculos analíticos o simplemente para procesar los datos que van llegando al sistema analítico.

Computación distribuida

En cambio, Big Data se basa en el paradigma de la computación distribuida. Es decir, existe una red computacional (llamada cluster), formada por un conjunto de ordenadores (llamados nodos), que trabajan de manera organizada y colaborativa para resolver el mismo problema.

El proceso es el siguiente: Cuando una tarea llega al cluster de Big Data, ésta se descompone en un conjunto de subtareas, que son asignadas a los distintos nodos del cluster. Los nodos trabajan entonces en paralelo (a la vez) en cada una de sus tareas, con lo que el tiempo de cálculo del conjunto de tareas se ve reducido considerablemente. Finalmente, es necesario un post-proceso para consolidar los datos antes de ofrecer el resultado a los usuarios.

En resumen, podemos decir que la computación distribuida añade un par de tareas al cálculo propiamente dicho (descomposición de la tarea principal y asignación de tareas a los nodos por una parte, y consolidación de los resultados por otra). Sin embargo, el hecho de disponer de una red de nodos trabajando en paralelo permite acelerar el tiempo de proceso total de la tarea hasta el punto que, a pesar de tener que realizar un trabajo adicional, la computación distribuida es más eficiente en procesos de cálculos repetitivos y con muchos datos.

Divide y vencerás

La frase “Divide y vencerás” ha sido pronunciada o atribuida a lo largo de los siglos por grandes figuras que han influido en la historia de la humanidad. Desde Filipo II de Macedonia hasta Napoleón Bonaparte, pasando por Julio César y Nicolas Maquiavelo, todos han reconocido la importancia de este mensaje.

Esta máxima sostiene que, ante un problema de gran tamaño con una solución complicada, conviene dividir el problema inicial en subproblemas de más fácil solución, para así poder resolver el problema inicial de una manera más sencilla y eficiente.

En el área de la computación, ocurre lo mismo. Como ejemplo, citaré un clásico: El algoritmo de ordenación Quicksort. Este algoritmo permite reducir el coste del algoritmo de ordenación de burbuja (uso de la fuerza bruta), siendo este θ(n²), hasta θ(n·log ⁡n ).

De manera similar, en procesos de cálculo repetitivos con grandes volúmenes de datos, como los que nos encontramos en escenarios con Big Data, el uso de los distintos nodos del cluster para paralelizar las tareas, supone un gran aumento en la eficiencia.

Conclusión

La distribución de la carga de trabajo entre los distintos nodos de un cluster en una solución Big Data, permite realizar las tareas en paralelo, consiguiendo grandes mejoras en la eficiencia de los procesos.

La computación distribuida es más eficiente en escenarios con unos cálculos a realizar sobre un gran conjunto de datos. De esta manera se paraleliza el trabajo y se reduce el tiempo total de cálculo.

A la hora de diseñar la arquitectura de un sistema Big Data, es conveniente tener en cuenta el grado de paralelización de las tareas, que será función del número de procesadores y cores disponibles en el sistema. Si el grado de paralelización es bajo, el rendimiento en según qué tareas, puede acabar siendo también muy bajo.

Elegir una herramienta de BI

 

 

Para realizar una tarea, es necesario disponer de las herramientas adecuadas. Con un proyecto de Business Intelligence (BI) sucede lo mismo.

En este caso, es muy importante saber qué debe hacer nuestra solución de BI, ya que hay una gran variedad de herramientas en el mercado. Y solamente con un previo análisis de los requerimientos, seremos capaces de elegir la herramienta que más nos convenga.

 

Ecosistema tecnológico

Las herramientas de BI pueden ser clasificadas en tres grandes bloques:

  • Sistemas de almacenamiento de datos (bases de datos)
  • Herramientas de extracción, transformación y carga de datos (ETL)
  • Aplicaciones de modelización y visualización de los datos

En cada uno de estos tres bloques podemos encontrar una gran variedad de productos de diferentes fabricantes o de comunidades de desarrolladores, de código abierto y bajo licenciamiento, y disponibles en varias plataformas.

Esta variedad conlleva una gran confusión a la hora de elegir las herramientas adecuadas para cada proyecto.

Un mal enfoque

Por desgracia, continúan produciéndose en las organizaciones errores básicos a la hora de elegir la tecnología de una solución de BI.

Básicamente, podemos reducir estos errores a dos escenarios:

  • Continuismo de la tecnología existente: Por ejemplo, cuando una empresa utiliza mayoritariamente software de una gran compañía, ésta puede disponer de software de BI, con lo cual hay una predisposición a elegir la solución tecnológica del mismo fabricante.
  • Aceptación de la tecnología propuesta por el proveedor de servicios: Por ejemplo, cuando se contrata una empresa para realizar un proyecto, si ésta propone un paquete de herramientas, es muy posible que se acabe utilizando ese paquete de software.

En ambos casos, si la decisión final tiene en cuenta alguno de estos dos motivos expuestos, otorgándoles un gran peso en la decisión final, el peso que puedan tener los requerimientos puede acabar reduciéndose hasta el punto de ser insignificante.

Ejemplo práctico

Hace muchos años, estuve trabajando en un proyecto en Londres donde sucedió precisamente esto. Cuando me incorporé al proyecto, éste se encontraba en fase de mantenimiento, con una tecnología consolidada. La solución de BI permitía el análisis de datos refrescados a partir de cargas diarias.

La tarea que me encomendaron fue la de crear un modelo de análisis paralelo para poder consultar la información en tiempo real, utilizando una herramienta que, aunque permitía esa opción, no era la idónea para este tipo de proyectos.

Cuando llegué al proyecto no sabía exactamente qué debía hacer. Pero cuando me dijeron cuál era mi tarea, entendí perfectamente porqué necesitaban un consultor. Replicar el modelo de negocio para el acceso a los datos en tiempo real era una tarea muy complicada, y nadie en el equipo del cliente tenía la capacidad técnica para llevarla a cabo.

El proyecto duró unos tres meses, incluyendo la documentación y el traspaso al equipo del cliente. He incluido éstas dos últimas tareas porque recuerdo que el coste de documentación y de traspaso fueron altos, puesto que tuve que explicar con todos los detalles cómo había implementado la solución, incluyendo partes conceptuales de BI y partes técnicas específicas de la herramienta.

Estoy plenamente convencido de que, con otra tecnología, el desarrollo del proyecto, la documentación y el traspaso hubieran tardado mucho menos, resultando más económico y fácil de mantener por parte del cliente. Sin embargo, al no dar suficiente peso a los requerimientos y sí al fabricante, cayeron en este error.

Conclusión

A la hora de elegir las herramientas con las que trabajar en una solución de BI, es muy importante tener en cuenta los requerimientos del proyecto, tanto a nivel funcional como técnico.

Si obviamos estos requerimientos y basamos la decisión en otros factores, es probable que nos encontremos con un software que nos plantee dificultades a la hora de implementar la solución deseada. Es incluso posible que, por limitaciones de la herramienta, debamos reducir los requerimientos.

Mi recomendación a la hora de elegir el software con el que vamos a implementar nuestra solución de BI, es que tengamos en cuenta los requerimientos, teniendo en cuenta aquellas tareas a realizar tanto a corto como medio y largo plazo. Solamente de esta manera, evitaremos sorpresas desagradables con la tecnología elegida.

Democratización de la información

 

 

Permitir el acceso a la información a todos los empleados de una organización es lo que se conoce como “democratización de la información”.

Esta es una práctica que, según mi experiencia, goza de pocos adeptos, a pesar de aportar grandes beneficios a las organizaciones que la ponen en práctica. ¿Qué frena entonces a las organizaciones a abrirse a compartir información entre sus empleados?

Restringiendo el acceso a la información

Como consultor de Business Intelligence (BI), he tenido la suerte de poder trabajar para un gran número de organizaciones, todas ellas con sus propias particularidades. Si bien algunas de ellas (pocas), abogaban por una política de apertura a sus empleados con respecto a la propagación de información, la gran mayoría tenían políticas restrictivas.

Cabe decir que, la democratización de la información tiene un límite. Existen datos sensible que no deben ser visibles más que a un grupo reducido de empleados. Estas restricciones siempre deben estar por encima de la democratización del acceso a los datos.

Algunos de los motivos eximidos por algunas de estas organizaciones son:

  • Los empleados no necesitan esta información para realizar su trabajo.
  • Los empleados no están capacitados para entender esta información o interpretarla de manera correcta.
  • No tenemos una solución tecnológica que nos permita analizar la información y distribuirla de manera efectiva.

Mi tesoro…

Pero la democratización de la información no se centra solamente en proporcionar acceso a todos los empleados a la información. Hay otro nivel de compartición de información sobre el cual es muy importante poner la atención: El nivel interdepartamental.

Este caso se suele dar cuando no hay un gobierno fuerte de la información en una organización. En un escenario así, es habitual que no exista una solución corporativa para el análisis de información (una solución de BI). En este caso, suelen ser los propios departamentos quienes, impulsados por la necesidad de obtener respuestas para poder tomar decisiones, recurren a la creación de soluciones analíticas departamentales.

La situación habitual es que cuando un departamento decide crear su propia solución de BI, lo haga con cierta independencia del resto de departamentos, incluido el de IT. Esto implica que el conocimiento se acumule en cada uno de los grupos departamentales, que posiblemente usen tecnologías diferentes, y que se tienda a proteger su inversión con cierto recelo.

¿Porqué debería un departamento compartir información con otro departamento? Al hacer esto, los costes de explotación de la información van directamente al departamento propietario de la solución analítica, mientras que el beneficio va para el departamento que realiza la petición de información. ¿Qué va a obtener a cambio?

Además, la verdad sea dicha, pueden existir tensiones políticas* entre departamentos, lo que influye en la no predisposición a ceder información. Como consultor, siempre me dijeron que no se podía hablar de conflictos políticos en un cliente. Pero la realidad es que es una situación que se da en muchas organizaciones y es un motivo muy importante para la no compartición de datos a nivel interdepartamental.

Es un hecho probado que la cooperación entre departamentos y el acceso a información de otras áreas de la empresa, aumenta la efectividad de una organización. Pongamos, por ejemplo, una organización que desea tener una visión de 360° de sus clientes. Es posible hacerlo solamente con los datos recabados por un departamento o área de negocio? Ciertamente no. Para ello, necesitamos información de:

  • Captación del cliente
  • Ventas
  • Marketing
  • Atención al cliente
  • Distribución

Sin la cooperación de todas las partes implicadas, no podríamos tener una visión completa de la realidad que afecta a nuestros clientes. Y sin esta visión, no se pueden tomar decisiones de manera informada.

Beneficios de la democratización de la información

Algunos de los beneficios de permitir el acceso a la información de una organización, podemos enunciarlas a partir de las excusas citadas anteriormente. Éstas son:

  • Los empleados no necesitan esta información para realizar su trabajo. La información no hará que realicen sus tareas peor. En todo caso, si la información es irrelevante, la descartarán y seguirán realizando sus tareas sin tenerla en cuenta. Pero podría ser que esa información les proporcione algo para mejorar sus procesos, ser más eficientes y más productivos.
  • Los empleados no están capacitados para entender esta información o interpretarla de manera correcta. Si el empleado no está capacitado para entender algo, quizá deberíamos capacitarlo. De esta manera podemos hacer que nuestros empleados crezcan y se sientan parte de la organización.
  • No tenemos una solución tecnológica que nos permita analizar la información y distribuirla de manera efectiva. Un proyecto de BI solventaría esta necesidad, permitiendo la compartición de información interdepartamental y el acceso a la información de todos los empleados.

Además, podemos citar otros beneficios, como por ejemplo:

  • A nivel estratégico y táctico, la compartición de información es clave para el buen gobierno de una organización y un área de negocio.
  • La transparencia aumenta la satisfacción de la plantilla. Los empleados prefieren tener acceso a la información (aunque no lo hagan efectivo) que la opacidad en su organización.
  • Acceder a información permite tener una visión más amplia de la realidad de una organización. A nivel de empleado, le permite entender mejor su rol dentro de la organización y las implicaciones de su trabajo.
  • Tener una visión más amplia puede hacer que afloren ideas para mejorar procesos dependientes entre diferentes áreas de negocio. Éstas ideas pueden tener su origen en los empleados, que son los que viven los procesos operacionales día tras día.

Finalmente, me gustaría lanzar un par de preguntas al aire para la reflexión: ¿Qué beneficios podría aportar a una organización abrir el acceso a su información a sus clientes, proveedores, etc.? Por ejemplo, ¿sería un valor añadido para un cliente poder ver el estado de las ventas, pedidos, pagos, etc.?

Conclusión

Permitir el acceso a la información dentro de una organización es clave para mejorar los resultados de ésta, la satisfacción de sus empleados, su crecimiento, y la efectividad de los procesos internos.

Las soluciones analíticas departamentales, a pesar de ofrecer respuestas, no facilitan la compartición de información al mismo nivel que una solución corporativa.

Un gobierno fuerte del dato y la información corporativa es la base para para poder tener un sistema global de análisis de la información en una organización.