Pensar en «Big»… Data no es siempre la mejor opción

 

Las limitaciones del Business Intelligence (BI) al tratar grandes volúmenes de datos, permitir el análisis en tiempo real y analizar tipos de datos complejos, son el origen de Big Data. Con este nuevo conjunto de tecnologías y procesos, podemos analizar datos en estas situaciones donde un BI tradicional no nos ofrece soluciones válidas.

Sin embargo, la aparición de Big Data está suponiendo un cambio de mentalidad, una simplificación en los diseños de soluciones técnicas, para hacerlas encajar en el mundo de Big Data. Y eso puede ir en detrimento de los intereses de las organizaciones.

En este artículo os presento un ejemplo.

Un requerimiento concreto

Una empresa a la cual llamaré X, precisaba analizar los ficheros de log de su sitio web (llamados comúnmente weblogs), para así poder extraer una información concreta. En este caso, se trataba de saber el porcentaje de visitas por idioma (catalán, español o inglés) a su sitio web.

El escenario era el siguiente:

  • Cliente internacional con tráfico web 24×7
  • Generación de 1 GB de weblog por hora, archivados en ficheros horarios (lo que supone casi 9 TB de weblog por año)
  • Estacionalidad en el tráfico del sitio web (el tráfico depende de la época del año)

Alternativa Big Data

Debido a la estacionalidad en el tráfico, era necesario analizar los datos de un año. La estimación del tamaño de los weblogs en un año de actividad (cerca de 9 TB), hizo que el cliente se posicionara a favor de una solución basada en Big Data desde un buen principio.

Estaban tan convencidos de que éste era el camino, que pronto contactaron con proveedores para sopesar la opción de adquirir hardware que les permitiera levantar una solución de Big Data. También habían estado mirando diversas tecnologías software para implantar la solución. Únicamente les quedaba elegir la opción más adecuada dentro del escenario Big Data.

Todo era excitación en la empresa X. El Departamento de Tecnología estaba muy emocionado por poder implementar una nueva solución, tan moderna, tan de la última tendencia… Esta emoción se extendió por la empresa. Los jefes de departamento soñaban con un futuro analítico con Big Data. No sabían exactamente qué podrían hacer con eso, pero sonaba muy bien, muy potente y muy moderno. Palabras como Machine Learning sonaban por los pasillos y en las reuniones de departamento. Hasta en las reuniones de Dirección, Big Data era un tema a tratar.

Solamente les faltaba la aprobación de un consultor externo experto en Big Data para poder tirar adelante el proyecto.

Los requerimientos mandan

Al enfrentarme a este escenario, lo primero que vi es que el cliente tenía muy decidido el camino a seguir, con lo cual sería muy importante justificar otra opción, si finalmente Big Data no era la mejor alternativa. Como veis, nunca parto de una alternativa única, sino que me gusta plantearme diferentes opciones para así hacer un análisis de pros y contras. De esta manera puedo elegir la más conveniente en cada caso.

Primera norma del consultor: Obtener los requerimientos.

Analizando este escenario, vi que el requerimiento se refería únicamente a un análisis concreto y específico. Al obtener requerimientos analíticos futuros, la respuesta fue que no había una necesidad de análisis posteriores de la información de los weblogs. Tampoco había nadie en la empresa que hubiera mostrado interés por extraer más información de esa fuente de datos en el futuro.

En este caso, el cliente se había inclinado por una solución muy potente para obtener una respuesta muy concreta. Pero esa inversión inicial no tenía en ese momento ninguna visión de futuro, ninguna continuidad que proporcionara un retorno de la inversión (ROI). Es sería la justificación a usar al plantear otra opción.

Propuesta de solución

Dado que los requerimientos presentes y futuros no justificaban una inversión tan grande, me planteé la alternativa de una solución a medida para obtener la respuesta a los requerimientos.

Esta opción consistía en dar una solución a la necesidad del proyecto, sin tener en cuenta la construcción de una plataforma analítica para su uso en futuros proyectos. Se trataba, pues, de un Quick Win.

Las opciones tecnológicas que planteé para esta alternativa fueron:

  • Servidor único, con ejecución serializada de larga duración en un servidor propio o en el cloud.
  • Cluster de Big Data, con ejecución distribuida en el cloud (eliminando la opción de cluster de Big Data propio).

En el primer caso, si el cliente disponía de un servidor donde poder ejecutar el proceso, el coste de hardware y software sería nulo. Únicamente tendrían que tener en cuenta el tiempo de ejecución del proceso, presumiblemente de larga ejecución por la serialización de éste.

El segundo caso, fue planteado únicamente en el cloud para pagar por uso computacional y reducir los gastos si lo comparamos con una solución on premise.

En este caso, la opción propuesta fue la de ejecución serializada en un servidor único disponible en el cliente, puesto que el cliente disponía del hardware necesario para ello. La ejecución del proceso se demoraría durante pocos días, pero daría respuesta a los requerimientos planteados al inicio del proyecto.

Conclusión

Big Data nos permite obtener soluciones a situaciones a las que el BI tradicional no puede dar respuesta.

Una solución de Big Data supone una inversión tanto tecnológica como de recursos humanos importante. Antes de realizar dicha inversión, es conveniente hacer un análisis del ROI para ver la conveniencia o no del esfuerzo económico.

Cuando una organización no dispone de una estrategia analítica o unos requerimientos que justifiquen la inversión de introducir Big Data, es importante explorar otras alternativas.

El uso de Big Data es un caramelo para las organizaciones, pero no siempre es la mejor solución a las necesidades corporativas. Un análisis de los requerimientos a corto, medio y largo plazo permitirá dictaminar la mejor opción.

El Valor de la información

 

Es habitual encontrar definiciones de Big Data basadas en las V’s: Volumen, Velocidad, Variedad, Veracidad… Una V que a menudo aparece en estas definiciones es la de Valor.

Los datos en sí carecen de Valor. Al otorgarles un contexto, estos datos proporcionan información. Y al combinar distintas informaciones aparece el conocimiento, que es el que permite tomar decisiones de manera inteligente.

¿Dónde aparece el Valor? ¿A qué se refiere la gente que habla del Valor en Big Data?

El dato contextualizado como fuente de Valor

El dato contextualizado aporta información. Por ejemplo, un sensor de temperatura puede darnos un conjunto de temperaturas en varias mediciones sucesivas. El contexto incluye las unidades de medida (°C) y la dimensión temporal, entre otras. Solamente con esta versión reducida del contexto, podemos ver la evolución de la temperatura a lo largo de un periodo de tiempo.

Si estas mediciones corresponden al proceso de vitrificación de ovocitos (técnica para la conservación de óvulos a temperaturas inferiores a -196°C), la información de la velocidad de enfriamiento aporta un gran Valor, ya que un proceso demasiado lento podría significar la creación de cristales de hielo que podrían dañar el óvulo.

Por tanto, queda claro que la información (la existencia de datos contextualizados), aporta Valor.

El Valor está en todo sistema analítico

Todo sistema analítico obtiene datos y los contextualiza. Por tanto, la aparición de Valor es propia de todo sistema analítico.

Hablar de Big Data como herramienta indispensable para aportar Valor es negar la posibilidad de que un sistema analítico tradicional (Business Intelligence) aporte Valor.

Big Data, como solución técnica dentro de un sistema analítico, también permite la aparición de Valor. Sin embargo, no aporta Valor por sí mismo. Es la información la que aporta Valor.

¿Qué aporta Big Data?

Big Data no hace que los datos adquieran Valor. Sin embargo, nos permite analizar datos y transformarlos en información, en situaciones en las que un sistema analítico tradicional se ve limitado.

Es aquí donde se halla la «aportación» de Valor de Big Data. En la posibilidad de obtener información que de otra forma no podríamos obtener.

Por tanto, Big Data es una solución que nos permite expandir el Valor global de los datos, por el mero hecho de que puede obtener más información que un sistema analítico tradicional.

Conclusión

El Valor aparece al obtener información a partir de la contextualización de los datos.

Un sistema analítico nos permite obtener información a partir de los datos. Esto significa que todo sistema analítico permite obtener Valor.

Big Data, al superar los límites de un Business Intelligence tradicional, permite obtener más información. Eso supone obtener un Valor adicional. Por eso, el uso de Big Data para obtener la misma información que un Business Intelligence tradicional, no aporta ningún Valor añadido.

Predecir el futuro es posible

 

La toma de decisiones es crucial para el éxito de una organización. Estas decisiones pueden estar basadas en la experiencia o en la observación y análisis de datos históricos.

En este último caso, la predicción analítica nos permite tomar decisiones con un nivel de confianza predeterminado, a partir del análisis de grandes cantidades de datos y variables. Algo que escapa a la mente humana, por mucha experiencia que alguien pueda tener.

La responsabilidad de las organizaciones es definir un marco de trabajo para que sus empleados (desde los directivos hasta los operarios) puedan tomar decisiones con fundamento.

¿Qué es la predicción analítica?

La predicción analítica es como una bola de cristal que nos permite saber, con cierto grado de probabilidad, qué va a suceder. Ésta se basa en el análisis de datos históricos y en la determinación de patrones que se repiten en esos datos (por decirlo de una manera muy simple). El objetivo es la creación de un modelo predictivo que tiene como finalidad asignar una probabilidad de que algo suceda.

Este modelo es creado a partir de diferentes técnicas, en función del escenario de negocio. Estas técnicas incluyen el uso de estadística avanzada y algoritmos de Inteligencia Artificial entre otras. Algunos de los métodos usados en predicción analítica son las regresiones, árboles de decisión, clustering y redes neuronales. Estadística predictiva, Machine Learning y Deep Learning, entre otros, son términos asociados con el análisis de grandes volúmenes de datos para la creación de modelos de predicción analítica.

Grandes volúmenes de datos

El análisis parte de un gran volumen de datos. Este volumen vendrá determinado por el número de registros. A mayor conjunto de datos, mejor predicción.

¿Tomaríamos una decisión basada en una experiencia prácticamente inexistente? Seguramente no. El motivo es que no dispondríamos de suficiente respaldo para esa decisión. Lo mismo sucede con la predicción analítica.

Es posible generar modelos predictivos a partir de conjuntos pequeños de datos. Sin embargo, estos modelos no proporcionan una confianza lo suficientemente alta.

Imaginad que lanzamos un dado 6 veces y obtenemos las siguientes puntuaciones:

PuntuaciónNúmero de tiradas
10
23
30
41
50
62

Un modelo predictivo basado en este conjunto de observaciones, nos diría que probabilidad de que salga un número par al lanzar este dado en particular es del 100% (contra un 0% de que salga un número impar).

En este caso, la toma de decisiones basada en este modelo sería muy arriesgada (por sentido común).

Sin embargo, ¿qué confianza nos daría un modelo con esas probabilidades si el número de observaciones fuera 100? ¿Y 1000? ¿Y 1.000.000? Obviamente, la confianza sería mucho más alta. Y en este caso, seguramente nos plantearíamos si el dado está trucado.

Grandes conjuntos de variables

El número de variables a analizar determina el modelo de predicción. Un número muy bajo de variables es lo que hace que la gente se atreva a predecir qué va a suceder. En este caso, el comportamiento humano tiende a simplificar escenarios prescindiendo de variables, obviar casos que no se ciñan a lo esperado, etc. Esto deriva en una predicción falseada que afecta a la toma de decisiones.

Al incrementar el número de variables de un escenario, ese análisis se complica. Es en ese momento en el cual es necesario utilizar técnicas complejas de análisis que permitan analizar todas las variables disponibles.

El uso de un gran número de variables no significa que el modelo de predicción se base en todas ellas. Existen correlaciones y dependencias entre variables, lo cual hace que algunas de ellas impliquen los valores de otras. Por tanto, es posible que algunas, o gran parte de ellas no aparezcan en el modelo predictivo.

Conclusión

La predicción analítica permite obtener respuestas a qué va a suceder en el futuro con una probabilidad concreta en cada caso. El umbral del índice de confianza designado por el usuario para ese modelo determinará la toma de decisión final.

Para obtener un modelo de predicción con un alto nivel de confianza, es necesario disponer de un gran volumen de datos.

El gran número de variables permite generar un modelo de predicción más ajustado, ya que no obviamos información que puede acabar de determinar esa probabilidad final en cada caso.

La creación de un modelo de predicción requiere el uso de estadística avanzada o algoritmos de Inteligencia Artificial. Por tanto, es necesario contar con expertos en alguna de estas áreas que dispongan de la experiencia necesaria para poder obtener un modelo válido que aporte valor y sea válido para la toma de decisiones en una organización.

Agregación de datos y creación de nuevas entidades con Big Data

 

En escenarios con grandes volúmenes de datos, almacenar los datos a nivel de detalle para después agregarlos en tiempo de consulta puede suponer un gran esfuerzo (necesitamos agregar una gran cantidad de datos). Tener esos datos agregados previamente supone un beneficio a la hora de realizar consultas, aunque también genera inconvenientes al tener que mantener esas agregaciones actualizadas. Encontrar ese punto de equilibrio es esencial.

Pero, de hecho, esa agregación (la clásica, basada en funciones de agregación como la suma, la media, etc.) no es la agregación más importante que podemos realizar.

Nuevas entidades y propiedades

Existen otro tipo de agregaciones no basadas en funciones de agregación, que nos permiten tratar conjuntos de datos como una nueva entidad. Esa entidad tendrá asociadas un conjunto de características que podemos deducir del análisis de los datos, a pesar de que esas características no aparezcan como tales en los datos.

Es decir, a partir del análisis de los datos elementales, podemos extraer información de más alto nivel. Esa nueva información es el resultado de aplicar una serie de reglas que nos permiten abstraer la complejidad de los datos de manera que no tengamos que realizar esos cálculos cada vez que queramos analizarlos.

Este proceso, que realizamos mentalmente en tiempo real, requiere de una gran cantidad de cálculos y cierto entrenamiento para las máquinas (igual que lo necesitamos nosotros inicialmente). Ahí es donde Big Data nos descubre su gran potencial.

Ejemplo: Defensa de un saque de esquina

Un ejemplo sería determinar el tipo de defensa realizada por un equipo de fútbol al defender un saque de esquina. Simplificando el escenario, podemos defender individualmente o en zona. Sin embargo, a nivel de datos, tan solo disponemos de los datos de posicionamiento de los jugadores y la pelota dentro del terreno de juego.

Determinar el tipo de defensa lo podemos deducir a partir de los datos con la posición de los jugadores de ambos equipos. ¿Siguen los defensores a los atacantes? ¿Se quedan los defensores en su parcela dentro del área?

Si cada vez que queremos analizar el resultado de un saque de esquina en función de cómo se defiende, tuviéramos que realizar ese análisis de posiciones en los segundos anteriores a la ejecución del saque de esquina, sería un proceso muy lento. Pero si al procesar los datos de éste, agregamos esas posiciones para establecer el tipo de defensa, el análisis posterior será mucho más rápido y eficiente.

La nueva entidad que aparece al analizar estos datos podría llamarse «Tipo de defensa». Y sus características podrían incluir el número de jugadores defendiendo, el número de parcelas defendidas, el número de jugadores por parcela, la altura de los jugadores por parcela (e.g. los más altos en el centro del área y los más bajos en las posiciones exteriores).

A partir de esta nueva entidad y sus características es posible analizar los datos de una manera más fácil para el usuario que quiere explotar los datos, ya que el análisis posterior se realizará en función de esta nueva agregación y no en función de datos de posicionamiento.

Conclusión

La agregación de datos en nuevas entidades con propiedades propias permite la abstracción de datos a bajo nivel. Esto simplifica el análisis de los datos y evita realizar un gran número de cálculos cuando los datos quieren ser consultados por los usuarios.

Big Data nos permite realizar cálculos complejos que nos permiten realizar estas abstracciones y crear estas nuevas entidades. Gracias a tecnologías de análisis como Machine Learning, podemos entrenar modelos que aprenderán a catalogar los datos en estas nuevas entidades.

La agregación de datos clásica, basada en funciones de agregación, continúa siendo muy importante a la hora de analizar los datos. Sin embargo, la aparición de nuevas entidades por agregación de datos abre la puerta a nuevos tipos de análisis que anteriormente resultaban muy complejos. Ahí es donde Big Data nos muestra su gran potencial.

Monetización de los datos

 

El análisis de datos es usado principalmente para la obtención de respuestas que permitan mejorar la toma de decisiones dentro de una organización.

Un aspecto muy importante a tener en cuenta sobre ese análisis es el de los diferentes usos que se pueden dar a esos datos, tanto dentro como fuera de esa organización. Y es ahí, en el uso de los datos por entidades externas a dicha organización, donde el término «monetización de datos» adquiere una gran relevancia.

 

Ámbitos de aplicación de la información

Podemos distinguir dos ámbitos de aplicación de la información:

  • Interno (dentro de una organización)
  • Externo (fuera de ésta)

En el ámbito interno, los datos disponibles en la organización deben ser tratados y analizados para obtener información valiosa para los diferentes actores de los procesos de negocio internos. Es muy conveniente exponer esos datos en bruto y esa información derivada de éstos de manera transversal, para que todas las áreas de negocio puedan disponer de ellos. De esta manera, democratizando el acceso a la información, poniéndola al abasto de todos los empleados, se dispone de más herramientas para encontrar respuestas a nuestras preguntas. Y esto permite una mejor toma de decisiones.

Sin embargo, no hay que descuidar el ámbito externo en la explotación de esa información. Es decir, el uso de esos datos por organizaciones externas.

Monetización de los datos

Empecemos con unas preguntas:

  • ¿Pueden ser esos datos en bruto o esa información (producto del refinamiento de los datos) útiles para alguna organización externa?
  • ¿Qué valor tienen esos datos para esas organizaciones?
  • ¿Puede la organización propietaria de los datos beneficiarse de la venta de esos datos a terceros?

La monetización de datos o información consiste en la venta de éstos a organizaciones, y es la respuesta a las preguntas anteriores.

Cuando se dispone información que puede ser útil para otras organizaciones, ésta debe ser considerada como un producto con valor propio, que puede ser comercializado. Por tanto, es importante realizar un ejercicio visionario para encontrar ese mercado para los datos.

Por ejemplo, un municipio que disponga de sensores en la calle que permitan calcular el número y flujo de peatones en las calles, podría vender esa información a empresas de publicidad estática para poder determinar las mejores ubicaciones para la instalación de paneles publicitarios.

Respecto a cómo comercializar la información, el modelo puede ser el de venta puntual (e.g. Venta de todos los datos de un año en concreto) o por suscripción (e.g. Mensualmente se distribuyen los nuevos datos al comprador). Eso dependerá de las necesidades de los nuevos clientes y de la disponibilidad de los datos.

Aspectos éticos y legales

La venta de información debe ceñirse tanto a la ética como a la legalidad.

La cesión de información personal a terceros está regulada por la ley (ver GDPR – General Data Protection Regulation), con lo cual, las transacciones de intercambio de información deben cumplir los requisitos establecidos.

Además, hay que tener también en cuenta los aspectos éticos de la cesión y venta de información. El individuo debe dar consentimiento para la cesión o comercialización de sus datos personales, y debe ser capaz de modificarlos en cualquier momento. En este punto, afloran cuestiones como el hecho de cómo repercute esto sobre los datos previamente comercializados.

Estas cuestiones quedan fuera del alcance de este artículo y debe ser consultados con un profesional del ámbito legal.

En cualquier caso, si los datos personales no son necesarios, lo mejor es eliminar esa información en la distribución de información o anonimizarla para evitar riesgos innecesarios.

Conclusión

Los datos aportan la capacidad de mejorar la toma de decisiones. Pero también tienen un valor económico.

La venta de datos e información supone en sí un nuevo producto que puede ser comercializado.

Es de vital importancia cumplir con las normas legales y éticas a la hora de comercializar los datos de que disponen las organizaciones. La violación de éstas puede suponer la imposición de sanciones económicas muy importantes.

Efectividad de un proyecto de Business Intelligence

 

El éxito de un proyecto de Business Intelligence (o de Big Data) es una puerta a la continuidad. Es la diferencia entre seguir evolucionando una plataforma analítica de acuerdo con una estrategia bien definida o la siembra de dudas respecto a la conveniencia de seguir con esa línea.

La situación en la que nos hallamos es la siguiente: Después de muchos esfuerzos, nuestro proyecto de Business Intelligence ha llegado a su fin. Los usuarios ya tienen acceso a todas las funcionalidades analíticas estipuladas en los requerimientos. Pero, ¿cómo saber si el proyecto ha sido un éxito?

 

Factores de medida de éxito

Tradicionalmente el éxito de un proyecto se mide en base a los siguientes factores:

  • Cumplimientos de fechas indicadas en la planificación
  • Cumplimiento de los requerimientos
  • Ajuste sobre el presupuesto inicial

Estos tres actores suelen ser la vara de medir utilizada para determinar el éxito de un proyecto.

Sin embargo hay un par de factores muy importantes que suelen ser obviados.

  • Adopción de la solución por parte de los usuarios
  • Incremento de la efectividad en la toma de decisiones

Adopción de la solución por parte de los usuarios

Si después de realizar un proyecto los usuarios no utilizan la solución proporcionada, el proyecto debe considerarse un fracaso.

La inversión realizada tanto económicamente cómo en recursos humanos bien merece dar su fruto. Sin un beneficio para la organización el proyecto se convierte en un foso donde se han arrojado horas y dinero. Y esto es cierto, independientemente de que se hayan cumplido todos los objetivos de negocio detallados en los requerimientos del proyecto.

En ese caso el retorno de inversión (ROI) del proyecto será nulo. Y por tanto, desde el punto de vista de gestión económica del proyecto, éste será un gran fiasco. Todo proyecto debe proporcionar un retorno. Y un proyecto que no sea usado por los usuarios no tendrá un retorno de la inversión.

Incremento de la efectividad en la toma de decisiones

Si el punto anterior mide de manera cuantitativa la introducción de la solución en la base de usuarios ahora no centraremos en un análisis cualitativo.

En este caso, queremos medir cómo afecta a la toma de decisiones y sus resultados la introducción de la nueva solución analítica.

Para poder realizar el análisis comparativo es necesario disponer de datos de efectividad en la toma de decisiones con el modelo antiguo (antes de la introducción de la nueva solución). Estos datos son necesarios porque los utilizaremos como grupo de control sobre el que podremos comparar los resultados.

Una vez la nueva solución esté en uso, deberemos obtener datos de eficiencia para así comparar el rendimiento de los empleados antes y después de la adopción de la nueva solución.

Sin embargo también es necesario realizar ese análisis con los usuarios que no hayan adoptado la nueva solución. ¿Por qué? Porque pueden darse situaciones ajenas a la nueva solución que afectan por igual a los grupos. Este análisis del grupo de control y del nuevo grupo nos permitirá identificar si las diferencias se deben única y exclusivamente a la nueva solución adoptada o a otros factores.

Si nuestro análisis muestra que el segundo grupo obtiene mejores resultados podremos deducir que éstos se deben a la adopción de la solución. En cambio si los resultados son peores que los del grupo de control, podremos deducir que la nueva solución está empeorando los resultados.

Además podremos cuantificar esa mejora o pérdida en función de la diferencia de los resultados antes y después de la adopción de la nueva solución en ambos grupos. Podría darse que ambos mejoraran su rendimiento. En este caso, el análisis porcentual de la mejora nos permitiría identificarla cuantitativamente.

Consideraciones

En la fase incial de la adopción de la nueva solución, es posible que los resultados obtenidos sean inferiores a los que puedan obtenerse a medio plazo. Este hecho deberá tenerse en cuenta a la hora de valorar el éxito del proyecto. Por eso es conveniente realizar estos análisis de manera periódica, y realizar un seguimiento y dar formación a los usuarios para que puedan obtener el mayor rendimiento de la solución. De esta manera, es posible conseguir mejorar los resultados obtenidos inicialmente.

Conclusión

El éxito de un proyecto de Business Intelligence es de vital importancia para la continuidad de proyectos en una organización. Y para poder determinar el éxito real del proyecto, es necesario utilizar los indicadores adecuados.

La adopción y la productividad son esenciales para medir el éxito de un proyecto de BI. Si los pasamos por alto, podríamos tener una percepción errónea de la realidad. Y eso sería un estrepitoso fracaso en lo que se refiere a gestión de proyectos.

Big Data: Más que escalabilidad

 

Cuando un sistema informático puede llegar a procesar grandes cantidades de datos, es muy importante que éste sea escalable. Es decir, que pueda crecer para soportar cargas de trabajo mayores a las que originalmente soporta.

Una solución Big Data es un sistema escalable, puesto que un clúster puede aumentar el número de nodos existentes. Sin embargo, no todo sistema escalable requiere de una solución Big Data.

 

Escalabilidad horizontal

Un escenario candidato para escalabilidad es aquel necesita crecer para poder dar respuesta a una demanda creciente de recursos.

En un sistema donde el número de usuarios (y por tanto de recursos), puede crecer de manera dinámica, puede ser necesario en algún momento añadir capacidad computacional a ese sistema para poder garantizar el servicio a todos los usuarios.

Cuando un sistema informático llega a su capacidad máxima, si queremos escalabilidad horizontal, debemos añadir otra máquina para así poder mantener el servicio. En este caso hablamos de escalabilidad horizontal.

Otra opción es la de la escalabilidad vertical que vendría a ser el hecho de añadir recursos a esa máquina. Eso sucede cuando por ejemplo se amplía la memoria RAM, el número de procesadores o la capacidad de disco. Sin embargo, el problema de la escalabilidad vertical es que no es tan flexible como la horizontal. Por este motivo, no se ha tenido en cuenta en este artículo.

¿Dónde están los datos?

En el caso de la escalabilidad horizontal las nuevas máquinas se utilizan para dar servicio desde el punto de vista de proceso. Y para procesar las peticiones de servicio, es necesario tener datos. Pero, ¿dónde están los datos? Los datos se encuentran almacenados típicamente en un repositorio común: la base de datos.

En un escenario con escalabilidad horizontal, la base de datos puede ser centralizada o replicada.

En el caso de una base de datos centralizada, todos los procesos que dan servicio a las peticiones de usuarios deben conectarse a un recurso único, compitiendo por sus recursos para resolver las consultas. Este escenario puede provocar un cuello de botella en el acceso a la base de datos, ya que ésta no ha escalado (solamente ha escalado la parte de peticiones de proceso).

La solución, cuando la carga de la base de datos es muy grande, es la de replicar la base de datos en las máquinas que aparecen durante el aumento de la capacidad del sistema. En este caso, la máquina dispone de su propia copia de la base de datos.

Desde el punto de vista de la gestión y el acceso a los datos ambas situaciones son muy similares (no entramos a discutir aquí la complejidad de la replicación de datos). Pero no dejan de ser un escenario clásico, con una base de datos completa contenida en un único punto.

Computación distribuida

Con la computación distribuida cambiamos totalmente de paradigma, tal y como ya expliqué en el artículo ¿Qué es la computación distribuida de Big Data?.

En este escenario los datos no se hallan centralizados en una única base de datos o en réplicas de ésta que contienen todos los datos necesarios para dar servicio a las peticiones de proceso de información.

En la computacion distribuida los datos están esparcidos por los diferentes nodos de un cluster. Además, el proceso de análisis de la información se realiza en paralelo en diferentes nodos de dicho cluster.

Escalabilidad horizontal vs. Big Data

Este punto es sumamente importante a la hora de identificar los requerimientos técnicos de una solución. A menudo estos dos conceptos provocan confusión. Es frecuente encontrar a personas con un perfil técnico pero con serias dudas al respecto. Sobre todo si esa charla se incluye en el ámbito del Big Data. En estas situaciones la gente está predispuesta a utilizar una tecnología Big Data. Y por tanto, son propensos a adoptar una solución que implique la utilización de una arquitectura Big Data (aunque, como hemos visto, haya una solución alejada de este paradigma que pueda dar respuesta a su problema).

En estos casos siempre animo a los confundidos a dejar aparte y analizar los requerimientos técnicos a los que se enfrentan. Al identificar esos requerimientos y separarlos de ese interés concreto sobre Big Data es relativamente sencillo que esas personas se den cuenta de que Big Data no es la solución que necesitan.

Conclusión

Big Data utiliza computación distribuida (que no es lo mismo que escalabilidad horizontal), a pesar de que el crecimiento de un cluster de Big Data se basa precisamente en esa escalabilidad horizontal.

Para determinar la solución técnica más adecuada para un sistema informático, es necesario analizar los requerimientos funcionales y técnicos, y dejar de lado los intereses y predisposiciones existentes, ya que éstas pueden afectar a la decisión, restando objetividad al análisis.

Si finalmente decidimos usar una plataforma de Big Data, tendremos como beneficio la computación distribuida. Algo que nos permitirá ir más allá que una «simple» escalabilidad horizontal.

5G y Big Data

 

 

Esta semana se ha celebrado el Mobile World Congress en Barcelona. Según la prensa especializada, uno de los temas estrella de este año es el 5G.

¿Qué impacto tendrá el 5G en la toma de decisiones de las organizaciones?

 

5G

Por fin ya tenemos aquí la tecnología que nos permitirá trabajar con datos en tiempo real. La velocidad de transmisión del 5G puede llegar a ser hasta 100 veces superior a la del 4G. Esto supone un sinfín de oportunidades dentro del marco del Internet of Things (IoT) y por supuesto del análisis de los datos. Mejoras que tendrán un claro reflejo en la mejora en la toma de decisiones.

Dispositivos generadores de datos

En los últimos años hemos podido ver una gran incremento en el número de dispositivos que generan gran cantidad de datos. En algunos casos, como en los smartphones y los smartwatches, al estar dotados de conectividad ya sea mediante 4G o Wi-Fi, estos datos son transmitidos a un repositorio central desde donde pueden ser analizados.

Sin embargo, para la mayoría de estos dispositivos, al no estar éstos conectados online, no es posible enviar estos datos. La solución de compromiso por la cual han optado muchos fabricantes es la de permitir conectar estos dispositivos a un ordenador o a un móvil para así poder descargar esos datos y realizar análisis a partir de esos datos de carácter privado. Por ejemplo, un podómetro o un aparato para medir la presión arterial permiten el análisis de los datos pero solamente a nivel de dispositivo.

Internet of Things

El 5G permitirá la transmisión de datos de manera efectiva. La velocidad de transmisión de datos se incrementará de tal manera que permitirá que los datos generados por estos dispositivos puedan ser transmitidos directamente a un repositorio central.

Los beneficios son múltiples. Por ejemplo, no necesitaremos descargar los datos siempre a un mismo dispositivo para poder disponer de todo el historial de datos. Además, los análisis sobre esos datos podrán ser mucho más ricos y podrán proporcionar información muy valiosa que ahora está fuera del alcance de los usuarios. Un ejemplo es la opción de comparar esos datos con millones de otros usuarios, lo que permitiría comparar cada individuo con otros usuarios de perfil similar.

El 5G es prácticamente una realidad a nivel comercial. Los fabricantes de teléfonos móviles ya están presentando sus primeros aparatos con conectividad 5G. Según se respira en el ambiente, cuando la cobertura sea una realidad, las ventas se dispararán. Y a su vez, el mercado se inundará de dispositivos conectados a esta nueva red de telecomunicaciones. El Internet of Things será una realidad. Estamos a punto de vivir una nueva revolución en lo que confiere a los datos.

Big Data para poder competir

Será en este momento en el que la necesidad de analizar toda esta información experimentará un gran crecimiento. Y para poder realizar ese análisis teniendo en cuenta la gran cantidad de datos, la necesidad tomar acciones en tiempo real y la gran variedad de datos generados, será necesario la aplicación técnicas de Big Data. Las empresas han empezado a moverse en los últimos años en esta área, interesándose cada vez en el análisis de información. Pero aún hay mucho camino por recorrer.

En este mercado tan competitivo es importante moverse rápido. Ya lo dijo en su día Charles Darwin: «Las especies que sobreviven son las que mejor se adaptan a los cambios».

¿Qué nivel de adaptación van a tener las empresas? Es difícil responder a esta cuestión pero lo cierto es  que la adaptación a los nuevos tiempos va a depender de la capacidad de las organizaciones para implantar mecanismos analíticos para mejorar la toma de decisiones a todos los niveles organizativos. Y para eso Business Intelligence y Big Data van a jugar un papel crucial.

Infoxicación

Disponer de un gran volumen de datos de diferente naturaleza es la base para un buen análisis que nos permita una toma de decisiones inteligente.

Sin embargo, una gran cantidad y variedad de datos puede derivar en dificultades a la hora de tratar toda esa información. Es lo que se denomina infoxicación.

Definición

La infoxicación es la imposibilidad de poder procesar y analizar los datos que alimentan un repositorio de información.

Esta situación puede producirse por dos causas:

  • La existencia de grandes volúmenes de datos
  • La generación de información a una velocidad superior a la de proceso y análisis

Cuando una solución tecnológica no es capaz de procesar todos los datos respetando los requerimientos de urgencia de los usuarios, ésta no puede aportar todo el valor necesario. En esta situación, hablamos de infoxicación.

Causas

La imposibilidad de procesar todos los datos a tiempo puede producirse por la existencia de grandes volúmenes de datos y por una velocidad de generación de datos muy elevada.

Los datos de un repositorio analítico deben ser procesados para su posterior análisis. Estas son las dos fases sobre las que actúa la infoxicación.

Si bien el proceso de los datos (entendido como la captación de éstos) cuando hay grandes volúmenes de datos no implica grandes dificultades, sí que podemos encontrarlas a la hora de refinar esos datos en las tareas de análisis. Cruzar (hacer una join, un lookup) datos relacionados tiene un coste que augmenta de manera logarítmica con el número de registros a tratar. Como es de imaginar, con volúmenes masivos de datos, el coste puede llegar a ser muy elevado. Y puede serlo tanto que el sistema sea incapaz de finalizar esta tarea antes del siguiente proceso por lotes analítico (e.g. la siguiente carga de datos).

En el caso de la generación de datos a una gran velocidad, el problema aparece en el procesado de los datos. Cuando éstos llegan al sistema, deben ser consumidos a una velocidad igual o superior a la de generación. En caso contrario, los datos se acumularán a la espera de ser procesados. Y esa acumulación puede ir incrementándose hasta el punto en que podemos llegar a perder datos.

En cualquiera de estas situaciones, el riesgo está en la imposibilidad de producir información a partir de unos datos de entrada, o de generar esa información demasiado tarde, con lo cual el usuario no obtiene valor para una toma de decisiones inteligente.

Solución

Ante una situación así, es necesario diseñar un sistema de proceso y análisis del dato que permita subsanar las dificultades de cada escenario.

Utilizar una solución técnica basada en la tecnología Big Data nos permite resolver los problemas derivados de las carencias en el proceso y análisis en estas situaciones.

La escalabilidad de un cluster de Big Data y la computación distribuida inherente a este tipo de arquitecturas, proporcionan la capacidad de tratar grandes volúmenes de datos generados a una gran velocidad.

Conclusión

La infoxicación es la imposibilidad de tratar datos y ofrecer al usuario información de valor para la toma de decisiones, debido al gran volumen o la alta velocidad en la generación de los datos.

Las consecuencias de la infoxicación son la pérdida de datos y la tardía generación de información. Ante esas situaciones, la información bien no existe bien carece de valor.

El uso de una solución basada en Big Data permite resolver estas limitaciones, permitiendo a los usuarios disponer de la información requerida dentro de los términos útiles para la toma de decisiones.

Carga de datos en BI vs. Big Data

 

Uno de los componentes clave de todo sistema analítico es la carga de datos. Durante este proceso, los datos generados en los sistemas origen son cargados en el repositorio de datos analítico para su posterior análisis.

Existen grandes diferencias conceptuales entre como los sistemas de Business Intelligence (BI) y los basados en Big Data cargan los datos en el repositorio analítico. En este artículo veremos estas diferencias para tres tipos de arquitectura:

  • BI tradicional
  • Micro cargas (como componente de un sistema BI basado en una Arquitectura Lambda)
  • Big Data

Factores que afectan a la arquitectura de una solución analítica

La decisión sobre qué arquitectura debe ser utilizada en una solución analítica, depende de las 3 V’s de las que hablamos en este artículo.

Por tanto, el volumen de datos generados en los sistemas origen, la variedad de datos y la latencia máxima para la explotación efectiva por parte de los usuarios, son los factores clave para decidir la arquitectura de una solución analítica y, por tanto, de la carga de datos.

Teniendo en cuenta estas tres variables, obtenemos la siguiente tabla, que nos muestra la arquitectura a utilizar en función de las 3 V’s:

Proceso de los datos: Batch vs. Streaming

La carga de datos puede realizarse, por lo que se refiere a cómo se procesan los datos, de dos maneras diferentes:

  • Batch: Los datos se acumulan en el sistema origen. En el momento de iniciarse la carga, estos datos acumulados se procesan a la vez.
  • Streaming: A medida que los datos son generados por el sistema origen, éstos son enviados para su proceso. El volumen de datos procesados depende de la frecuencia de generación de éstos. Este método de proceso de datos permite detectar patrones en los datos en tiempo real. Un ejemplo es el de la detección de fraude en compras online.

Para las tres arquitecturas anteriores, los tipos de proceso de datos que encontramos son:

ETL vs. ELT

Una carga de datos no es únicamente un movimiento de datos. Ésta suele ir acompañada de una transformación de los datos, ya sea en el modelo de datos (cómo se almacenan), en el valor de éstos (los datos pueden cambiar debido a estandardizaciones de valores, por ejemplo), etc.

Esta transformación requiere del uso de recursos del sistema y de tiempo. El objetivo a la hora de diseñar una carga de datos es que tanto el uso de recursos del sistema como del tiempo no supere el máximo establecido en cada caso.

En el caso de disponer de una ventana de tiempo limitada para la ejecución de una carga de datos, lo lógico es minimizar esas transformaciones, para aligerar el trabajo a realizar durante el proceso de los datos. Esta situación es extensible al escenario en el cual debemos procesar grandes cantidades de datos, ya que podríamos alargar el proceso más allá de la ventana de tiempo disponible.

Existen dos tipos de cargas de datos en función de cuándo se realiza la transformación de los datos:

  • ETL (Extraction – Transformation – Load): La transformación de los datos se realiza antes de la carga en el repositorio de datos. En este caso, al acabar la carga, los datos están disponibles en su estado final, listos para ser explotados por los usuarios finales.
  • ELT (Extraction – Load – Transformation): No existe transformación de datos (o en todo caso es mínima) antes de la carga en el repositorio de datos. Posteriormente, los datos son transformados mediante procesos de refinamiento de éstos. En este caso, los datos precisan de esa transformación posterior para poder ser explotados por los usuarios finales.

Para las tres arquitecturas anteriores, los tipos de carga de datos que encontramos según en qué momento se realiza la transformación de los datos son:

Es decir, en una solución Big Data, la transformación de los datos se realizará una vez cargados los datos en bruto en el repositorio de datos. Esta transformación se llevará a cabo mediante procesos de refinamiento de los datos, que irán añadiendo valor a éstos. Estos procesos pueden ser de calidad de datos, de enriquecimiento, analíticos, etc.

Conclusión

Existen grandes diferencias entre las cargas de datos de los sistemas BI y Big Data.

La carga de datos de un sistema BI (ya sea tradicional o con arquitectura Lambda), procesa los datos en modo batch, mientras que un sistema basado en Big Data puede utilizar cargas batch o basadas en streaming.

Cuando las transformaciones se hacen durante la carga y antes de dejar los datos en las tablas finales del repositorio de datos, se denomina ETL. Este tipo de cargas es el usado en los sistemas BI.

Cuando las transformaciones se realizan posteriormente a la carga de datos en el repositorio, éstas dotan a los datos de calidad, los refinan, los enriquecen y les proporcionan un valor añadido, se denomina ELT. Big Data usa este tipo de cargas.

Elegir el tipo de carga correcto para cada escenario es clave para el éxito de una solución analítica. De ello se deriva poder disponer de los datos para la toma de decisiones de manera efectiva. El hecho de utilizar una carga de datos errónea puede suponer el fracaso del proyecto de creación de una solución analítica.