Visualización efectiva de información

 

El objetivo de mostrar información es la fácil comprensión de ésta para poder realizar una toma de decisión.

La información puede presentarse en una gran variedad de formatos. Dar con el formato ideal es, en sí, una quimera (ya se sabe que para gustos, colores). Sin embargo, lo cierto es que la manera cómo se presenta la información puede facilitar en diferente grado la comprensión de ésta.

Es por esto que una visualización efectiva de la información es tan importante como el mismo tratamiento de los datos a la hora de diseñar una solución analítica.

Tablas: El A, B, C de la visualización

Los datos suelen ser tratados como una sucesión de información con una estructura concreta. Y su almacenados más habitual, al menos desde el punto de vista conceptual, es el de una matriz.

Esa matriz está compuesta de:

  • Filas: Cada uno de los sucesivos registros de información.
  • Columnas: Las diferentes unidades de información (datos) que componen ese registro.

Por tanto, la manera más simple e intuitiva de visualizar información es mediante su representación en una tabla.

A continuación se muestra un ejemplo:

Hasta aquí todo es fácil.

Sin embargo, esta tabla es un caso simple. Se trata de la visualización de una matriz de 2 filas por 3 columnas (6 celdas de información). Esta tabla es fácilmente interpretable debido a la poca cantidad de información a visualizar.

En muchos casos nos encontraremos con tablas con más registros de los que nos caben en pantalla, lo cual dificultará la visualización (scroll continuo para ver todos los registros o simplemente la línea de totales que podamos tener al final de ésta).

Si añadimos el mes a la tabla anterior, obtenemos la siguiente tabla:

Esta tabla ya no cabe en la mayoría de las pantallas.

Si la tabla fuera por año y semana en lugar de por año y mes, aún es más evidente (ahora podréis experimentar la agonía de tener que hacer scroll para poder seguir con el artículo):

Prosigamos.

Llegados a este punto, ¿crees que es fácil identificar el mes con más ingresos de 2018? Lo de la semana lo dejo para los que no tengáis nada más interesante que hacer.

En este caso, los datos están ordenados por año, lo cual facilita la búsqueda de la respuesta. Pero, ¿y si os pido el mes y año con un mayor objetivo? Ahora ya nos toca hacer un recorrido visual por toda la tabla.

Independientemente del número de filas de la tabla, nos encontramos con otra dificultad añadida. En este escenario, como en muchos otros, podemos necesitar la realización de cálculos para poder obtener un conocimiento que nos permita tomar decisiones.

En este escenario, queremos identificar los meses (dupla año, mes) donde el objetivo no se ha cumplido. Además queremos ver esa diferencia numérica.

Una solución fácil vendría a partir de la creación de una nueva columna con fórmula «= INGRESOS – OBJETIVO» nos daría esa diferencia. De esta manera podríamos identificar fácilmente los valores negativos, que son los que nos interesan. El uso de un filtro para eliminar los registros que no queremos visualizar permitiría reducir el número de filas, pero eso no siempre sería suficiente.

Queda claro que esta visualización no es efectiva.

Tablas dinámicas: Uso inteligente del espacio

El uso de una tabla dinámica nos permite tener valores de las dimensiones en las filas y las columnas. Esto supone una reducción del número de filas, lo que supone la posible supresión del scroll.

La siguiente visualización muestra la diferencia entre ingresos y objetivo por año y mes, a la cual se le ha añadido un formato condicional para identificar los meses que no han llegado al objetivo:

Hemos mejorado mucho, pero a la vez hemos perdido detalle. Al no disponer de los ingresos y los objetivos, no podemos cuantificar si estos números representan un desvío elevado respecto a los objetivos o no.

Podríamos usar porcentajes, pero éstos se ven altamente distorsionados cuando los valores son bajos.

Podríamos añadir las columnas «Ingresos» y «Objetivo», o únicamente una de ellas, pero esto implicaría añadir mucha información a la tabla dinámica, cosa que complicaría su comprensión.

Gráficos: Una imagen vale más que mil palabras

El uso de gráficos permite mostrar información en una imagen, de manera que ésta resalte aquello que queremos obtener del análisis.

En este caso, nos interesa identificar los meses en los cuales no se ha llegado a los objetivos, a la vez que queremos ver esos ingresos y objetivos.

El siguiente gráfico nos muestra exactamente eso:

En este gráfico podemos identificar fácilmente, mediante las barras verticales y su dirección, si la diferencia entre ingresos y objetivos es positiva o negativa.

Además, podemos ver también el valor numérico de estos dos valores, con lo cual tenemos una visión más completa de la realidad.

En esta imagen estamos mostrando un total de 108 valores (3 métricas x 3 años x 12 meses/año), todo concentrado en una sola pantalla.

Además, los gráficos de la mayoría de las herramientas analíticas nos permiten obtener más información de detalle al posicionarnos sobre un elemento del gráfico (normalmente en forma de ventana emergente).

Usuarios y organizaciones anclados en el pasado

Lo expuesto hasta aquí no es nada que quede fuera del conocimiento de la mayoría de los usuarios. De hecho, entra dentro de lo que se puede considerar «sentido común».

Siendo así, ¿porqué hay tantos usuarios en tantas organizaciones que continúan visualizando la información en forma de tablas? ¿Porqué estos usuarios pierden tanto tiempo interpretando los resultados cuando podrían ser más eficientes y obtener mejores respuestas con riesgo de error en sus interpretaciones mucho menor?

Es necesario que las organizaciones tomen el control del análisis de datos, formando a sus empleados y apoyándolos para que puedan obtener respuestas para la correcta toma de decisiones de la manera más simple y eficiente. Solamente de esta manera podrán modernizar sus procesos analíticos.

La creación de soluciones analíticas sin la correcta formación y soporte a los usuarios, es un error. Los usuarios son los que decidirán como usar las herramientas. Y si ellos deciden usarlas de la manera más ineficiente, la organización es incapaz de mejorar sus procesos internos de toma de decisión.

Conclusión

La visualización de información es clave para una toma de decisiones eficiente.

El uso de tablas como visualización por defecto genera grandes ineficiencias en las organizaciones, debido al alto coste temporal y al riesgo de errores en la interpretación de la información.

El uso de tablas dinámicas es una ligera mejora respecto al uso de tablas, pero arrastra ciertas limitaciones de éstas.

Los gráficos pueden ser una gran solución para la visualización de información. Existe una gran variedad de formatos, cada uno adecuado a resaltar cierto elemento de información. El hecho de no obligar a leer los resultados es una gran ventaja respecto a las tablas y tablas dinámicas.

Las organizaciones deben apostar en la visualización para poder facilitar la interpretación de la información por parte de sus empleados. De esta manera conseguirán una mayor eficiencia y un menor grado de error en la toma de decisiones.

Arquitecturas Lambda

 

En un sistema analítico basado en un Business Intelligence (BI) tradicional, los datos suelen estar disponibles en el repositorio analítica con una latencia típicamente de 24 horas (aunque la frecuencia de las cargas de datos puede aumentarse de diaria a varias -pocas- veces por día).

Esto supone que los usuarios no disponen de los datos para su explotación en los sistemas analíticos hasta que la carga de datos ha finalizado.

Existen escenarios en los que los usuarios deben tomar decisiones con una latencia cercana a tiempo real. En estos casos, una carga de datos tradicional no es capaz de dar respuesta a los requerimientos de explotación de la información.

Carga de datos tipo ETL

Una carga de datos en un BI tradicional es del tipo ETL (Extract – Transformation – Load). Esto significa que las transformaciones de datos se realizan durante la carga de datos para finalmente dejar los resultados en las tablas que los usuarios utilizarán para la explotación de datos.

Las transformaciones a realizar incluyen, entre otras, las siguientes:

  • Control de calidad de datos (mediante reglas de dominio y de negocio)
  • Estandardización de valores y formatos
  • Cambio del modelo de datos
  • Enriquecimiento de datos
  • Creación de agregaciones

Toda transformación requiere una inversión de recursos y de tiempo. Este último factor (el tiempo de carga) es el más determinante a la hora de decidir el diseño de las cargas de datos.

Límite en la frecuencia de las cargas de datos

Una carga de datos tradicional tiene una frecuencia establecida. El escenario más habitual es el de la carga diaria.

En ocasiones, los usuarios requieren de información actualizada con una latencia inferior a las 24 horas que proporciona la carga diaria. En este caso, es posible que los usuarios pidan que los datos se carguen con una frecuencia mayor.

Sin embargo, esto no siempre es posible. Y si lo es, el aumento de la frecuencia tiene un límite.

Las cargas de datos requieren tiempo para su ejecución. Durante ese periodo de tiempo, los datos disponibles pueden tener algún periodo donde muestren inconsistencias (e.g. Entre datos de detalle y agregados), a no ser que las cargas hayan sido diseñadas con este objetivo desde su inicio. Por tanto, la ejecución de una carga de datos en un periodo en el cual los usuarios pueden estar usando el sistema, podría dar lugar a inconsistencias en los datos.

Por otra parte, el consumo de recursos del sistema durante la carga de datos, podría restar recursos a la explotación de datos por parte de los usuarios. En otras palabras, las consultas de los usuarios se podrían ver afectadas negativamente por el hecho de cargar datos en ese mismo instante, lo cual provocaría un retraso en la obtención de respuestas desde el sistema analítico.

Es por eso que, si una carga de datos no ha sido diseñada inicialmente con miras a su ejecución en un entorno de disponibilidad continua de los datos, es un riesgo ejecutarla mientras los usuarios están utilizando la solución analítica. Además, la duración de la carga define un periodo durante el cual no deberíamos volver a lanzar la misma carga de datos para no entrar en conflictos de bloqueo o sobrescritura de resultados.

Por tanto, si bien es cierto que podemos aumentar la frecuencia de la carga de datos, si ésta no ha sido diseñada a tal efecto, el aumento de la frecuencia implica un riesgo adicional. El límite en la frecuencia está en el riesgo máximo asumible.

Una posible solución es la de definir ventanas de inactividad durante el día, durante las cuales el repositorio de datos no está disponible para consultas. Otra solución es el rediseño total de la carga de datos. Una tercera alternativa es la creación de micro cargas de datos que se ejecuten en paralelo a la carga de datos. Es lo que se denomina, arquitecturas Lambda.

Micro cargas de datos

Ante la necesidad de dar respuesta a los requerimientos de los usuarios que necesitan disponer de datos actualizados con una frecuencia superior a la de las cargas de datos, una solución es la creación de micro cargas de datos.

Estas micro cargas se caracterizan por lo siguiente:

  • Frecuencia elevada de ejecución
  • Bajo volumen de datos
  • Acceso rápido a los datos en origen
  • Mínima o nula transformación de los datos

Esto permite cargar los datos con un rendimiento muy alto en el sistema analítico, donde los usuarios podrán acceder a ellos.

Las micro cargas tienen algunas particularidades que es importante tener en cuenta a la hora de diseñarlas. Además, la aparición de micro cargas puede implicar cambios en la carga de datos existente. He aquí algunas preguntas a tener en cuenta:

  • ¿Los datos se cargarán en las tablas finales (utilizadas en la carga de datos diaria, por poner una frecuencia estándar) o en unas tablas específicas para esta segunda carga?
  • ¿Será una carga incremental o incremental a partir de la última carga diaria en todas las ejecuciones?
  • ¿Qué sucede con los datos previamente cargados cuando ejecutemos la siguiente carga diaria? ¿Sobrescribimos los datos o no los cargamos porque ya lo hemos hecho en las micro cargas?

Foto final: Arquitectura Lambda

La existencia de micro cargas en paralelo a una carga de datos es lo que se conoce como Arquitectura Lambda.

Los sistemas que usan este tipo de arquitecturas tienen un flujo periódico de datos a partir de una carga diaria (por ejemplo), y otro flujo de datos con una latencia mucho menor proveniente de una micro carga.

Conclusión

Cuando los usuarios requieren disponer de datos actualizados, las cargas de datos tradicionales de frecuencia diaria no permiten satisfacer esa necesidad.

Las cargas de datos, si han sido diseñadas a tal efecto, pueden ver incrementada su frecuencia, pero siempre con un límite que es función de la duración de la carga de datos.

En todo caso, hay que tener en cuenta el impacto en el sistema de la ejecución de cargas durante periodos en los que los datos sean explotados por los usuarios.

La creación de micro cargas de corta ejecución es la solución para complementar las cargas de datos tradicionales.

El escenario donde conviven estas dos cargas se denomina: Arquitectura Lambda.