Analisis con Tableau: Cómo mejorar el rendimiento en Tableau I: Optimizar los campos calculados

lunes, 7 de diciembre de 2015

Cómo mejorar el rendimiento en Tableau I: Optimizar los campos calculados

Hoy comienzo otra pequeña serie de entradas, esta vez sobre cómo podemos mejorar el rendimiento de nuestros dashboards. Una de las ventajas de Tableau es que podemos analizar y visualizar datos de manera muy rápida y muy efectiva. Sin embargo, nada es infalible, y cuando utilicemos bases de datos muy grandes (y hablo de muchos millones de registros) o cuando nuestros datos se encuentran en un servidor o formato que no sea especialmente eficiente, podemos tardar un rato en trabajar con nuestros datos, y lo que es peor, el usuario final de nuestro dashboard puede llegar a impacientarse si la espera es notable al usar filtros, acciones, etc.

Para evitar esto hay ciertos aspectos que podemos optimizar en Tableau, así como recomendaciones que conviene tener en cuenta. Una de ellas tiene que ver con como definimos y creamos nuestros campos calculados, por lo que a continuación indico varios consejos que conviene tener en mente.

Un aspecto clave es recordar que los valores lógicos (verdadero/falso) y los numéricos son más eficientes que los valores de cadena. Así, si queremos por ejemplo crear un campo que nos indique si nuestras ventas de este año han sido mayores que el objetivo que nos pusimos a principio de año, si no pensamos en maximizar el rendimiento podríamos crearlo del siguiente modo:


De este modo, para cada registro de nuestra base de datos, Tableau evaluará si es mayor o no de 1.000 e indacará el texto correspondiente. Ahora pensad que nuestra base de datos tiene millones de ventas realizadas en los últimos 15 años... el tiempo que puede requerir computar ese texto para tantos registros sin duda puede ser mayor. No obstante, tal como hemos dicho, los valores numéricos son más rápidos y eficiente, por lo que podemos realizar ese mismo ejemplo, pero de la siguiente manera:


Y a continuación, si queremos mantener esas etiquetas de "Venta elevada" y "Venta no elevada", es mucho más eficiente hacerlo editando el Alias de cada uno de los valores. E incluso podemos hacerlo aún mejor utilizando valores lógicos, así:


En este último caso, veremos como el campo calculado creado es un valor lógico viendo el icono en el panel de datos.


Para editar los alias, tan sólo tenemos que hacer click derecho en el campo que queramos editar y seleccionar Alias (Aliases). Y cambiar los valores existentes (en este caso los valores por defecto de verdadero y falso) por los que queramos que se muestren:


Otro ejemplo de cómo optimizar los campos calculados se da en los casos en que tenemos un campo con varias condiciones que se deben cumplir. En estas situaciones, conviene pensar si podemos definir el campo de alguna forma que mejore la velocidad de evaluación del conjunto del campo condicional. Así, siguiendo con el ejemplo anterior, si queremos evaluar si las ventas están por encima o por debajo de 1000 y si además dichas ventas han producido en Madrid, lo que tal vez nos parezca más sencillo en un primer momento es definir el campo del siguiente modo:



No obstante, de esta forma Tableau tendrá que evaluar la condición de ventas y de ciudad para cada registro de nuestro base de datos. Veamos como podemos optimizar este cálculo;



Así, evaluamos primero la condición de las ventas, si estas son mayores de 1.000 para el registro concreto que se está evaluando en ese momento, entonces pasaremos a evaluar la ciudad. En caso contrario, directamente Tableau otorgará el valor 3 al que podemos posteriormente editar el alias como "Resto de ventas", evitando por tanto que se evalue la ciudad para todos los registros, si no tan solo para aquellos que en primer lugar cumplen la condición de que sus ventas son mayores de 1000.

Iré escribiendo más consejos sobre cómo mejorar el rendimiento en Tableau. Pero si sois muy impacientes os recomiendo que os leyerais este documento de Tableau Designing Efficient Dashboards donde podréis encontrar ejemplos como estos y muchos más para mejorar el rendimiento en Tableau.

No hay comentarios: