Entendiendo las expresiones de nivel de detalle (Level of Detail LOD) en Tableau

Algunas veces se nos presenta la situación de tener que trabajar con datos que han sido agregadosa diferentes niveles. Por ejemplo, para comparar el tamaño medio de los pedidos a través de regiones de ventas con el tamaño medio de los pedidos en todo el mundo es necesario calcular un valor:

A nivel de la orden (es decir, necesita sumar los valores de los elementos individuales);

A nivel de la región (es decir, tomar el valor total del pedido y el promedio por región); y

A nivel mundial (es decir, tomar el valor total del pedido y el promedio a través de todas las órdenes).

En Tableau a esto lo llamamos «nivel de detalle» (abreviado a LOD). Esto es esencialmente la forma agregada o granular los datos y se determina por las dimensiones. De forma predeterminada Tableau agregara los datos al nivel de detalle que coincida con la vista:

012115_2344_understandi1

Los cálculos LOD funcionan mediante la construcción de subconsultas en segundo plano utilizando el lenguaje de consulta interna de Tableau para realizar agregaciones de varios niveles, donde se está realizando la pre-agregación de los datos antes de realizar la agregación primaria de la consulta principal, si desea ver cómo funciona esto puede consultar el log de registros de Tableau Software.

Por medio de las expresiones  de nivel de detalle, Tableau permite que el usuario defina directamente el nivel de detalle con el que el cálculo se debe realizar, siendo la expresión de este tipo

{ FIXED [Order ID]SUM([Sales]) }

La parte azul de la expresión es sólo una función de agregación que le indica a Tableau calcular la suma de las ventas. La parte roja es la nueva capacidad y le dice a Tableau qué nivel de detalle utilizar cuando se realiza la agregación. En este caso, se indica llevar a cabo la agregación para cada ID de pedido, independientemente de las dimensiones utilizadas en la vista.

Uno de los aspectos interesantes de la expresión FIXED, es en qué momento se calcula en Tableau. Es la única medida que se calcula antes de aplicar los filtros de dimensión, lo que le da algunas funciones de gran alcance, por el contrario, las funciones INCLUDE y EXCLUDE se calculan inmediatamente después de que se aplican los filtros de dimensión.

Hay tres tipos de expresión LOD – INCLUDE, EXCLUDE y FIXED  los cuales vamos a explorar con más detalle a continuación.

INCLUDE

Si desea calcular una expresión a un nivel que es (menos agregados que / más granular que / más bajo) que el mostrado en la vista, utilice la palabra clave «INCLUDE». Esto se suma a la dimensión (es) especificadas en la vista. Como el resultado es (menos agregados / más granular) que el  nivel de detalle de la vista, los valores necesitan ser agregados por cada registro al nivel de detalle indicado (por ejemplo, suma, promedio, mínimo, máximo, …).

Include

INCLUDE calcula la agregación a nivel de detalle en la vista, e incluye la dimensión o dimensiones en sus expresiones, incluso si no están en la vista.

Una pregunta común del negocio es encontrar el promedio de una suma, por ejemplo, «¿Cuál es el total de ventas promedio generados por cada miembro del equipo de ventas en una semana?»

INCLUDE [Employee], [Week]  sum([Sales])}

En esta expresión se resumen las ventas en la vista, en primer lugar agrega por [Empleados], y luego por [Semana], dando la suma de las ventas por empleado, por semana,

EXCLUDE

Si se desea calcular un resultado en un nivel (más agregados que / menos granulado de / por encima) que en el nivel de detalle de la vista, utilice la palabra clave «EXCLUDE». Esto elimina la dimensión (es) especificada (s) de la vista. Como el resultado es (más agregada/menos granulado) que la vista. El valor debe ser duplicado para cada registro de la vista.

Exclude

EXCLUDE calcula la agregación a nivel de detalle en la vista, pero excluye la dimensión o dimensiones especificadas, aunque estén en la vista.

Excluir es lo contrario de incluir, es decir, que se llevará a cabo su agregación a nivel de detalle en la vista, con la exclusión de la dimensión o dimensiones especificadas. Esto hace que sea muy útil para comparar con los totales o promedios globales. Por ejemplo, consideremos una cadena de tiendas que quiere comparar el gasto total del cliente promedio, en un promedio de gasto del cliente en cada tienda. Para este cálculo se necesita averiguar la suma de cada venta(s) de los clientes, pero dado que tienen que tener las tiendas en la vista y los clientes pueden comprar en varias tiendas, al intentar resumir las ventas seria incorrecto, ya que agregará en el nivel de detalle equivocado. En su lugar se puede escribir:

{EXCLUDE [Store] sum([Sales])}

Este cálculo le indica a Tableau que ignore la dimensión  [Store], a pesar de que está en la vista, lo que le permite alcanzar el total correcto.

FIXED

La palabra clave «FIXED» le permite especificar la agregación / granularidad independiente a las dimensiones utilizadas en la vista. Si el resultado es (agregación mayor que / menos granulado que) o no esta relacionado con la vista entonces se duplica por cada registro mostrado en la vista.

Fixed 1

Si el resultado es (menos agregado que / más granular que) los limites mostrados en la vista, entonces la agregación hará match.

Fixed 2

Expresiones LOD anidadas

También es posible crear cálculos que tienen múltiples expresiones LOD anidadas una dentro de la otra. Por ejemplo, se puede comenzar con el nivel de la vista, a continuación, tienen una parte interna que utiliza una expresión INCLUDE para producir un resultado más granular. Esto se envuelve en una expresión EXCLUDE lo que da como resultado que se agregue otro nivel de detalle a la salida. Por último, el cálculo del nivel de detalle se resuelve de nuevo para que coincida con el nivel de detalle de la vista.

NESTED

Como resolver «Cannot mix aggregate and non-aggregate arguments» en los errores de cálculo en Tableau.

Al crear un campo calculado, es posible que aparezca un mensaje de error » Cannot mix aggregate and non-aggregate arguments to function». Este mensaje se muestra cuando un cálculo contiene una mezcla de valores desglosados (a nivel de registro) y valores agregados. Las agregaciones nos permiten observar los datos numéricos en forma resumida, como suma o promedio. En la siguiente fórmula, el campo de ventas es un valor agregado (SUM), pero el campo de ganancia es un valor desglosados:

[Profit] / SUM ([Sales] )

Cannnot 1

 

Para resolver el problema, aplique una agregación al campo de lucro, o eliminar la agregación de la materia de ventas.

SUM([Profit]) / SUM ([Sales)]       o          [Profit] / SUM [Sales]

En otros casos, es posible que tenga una dimensión y una medida en su fórmula:

IF [Category] = «Technology» THEN SUM([Sales]) END

cannot 2

Debido a que Category no esta agregada, Tableau mostrará el mismo error que en el primer ejemplo. El problema se puede resolver mediante la aplicación de una agregación (ATTR) al campo dimensión:

IF ATTR([Category]) = «Technology» THEN SUM([Sales]) END

Aunque Category es una dimensión, es necesario agregarla ya que las ventas están agregadas.

Funciones LOD (Nivel de detalle) en Tableau (Include)

Nivel de detalle

Para aquellos que hemos trabajado con Tableau sabemos que los datos se presentan agregados (sumarizados) en la vista final; peor ¿cómo es que estos se agregan?, ¿Qué nivel de detalle nos presenta?.  Esto va a depender de acuerdo a las dimensiones que se hayan elegido para la vista.

1

Si se colocan dimensiones en alguna de las marcas resaltadas en esta figura, estas se agregaran al LOD de la visualización.

Un punto a destacar es que las expresiones LOD nos permiten determinar el nivel de detalle (dimensiones) de un cálculo sin incluir estas dimensiones en la visualización.  El nivel de detalle que se desea manejar en un cálculo puede ser definido independientemente del nivel de detalla de la visualización.

En el siguiente ejemplo se incluyeron dos dimensiones (Categoría y Sub-Categoría):

2

Los datos mostrados se agregaron según el LOD de la visualización Categoría y Sub-Categoría y sumarizados a nivel ventas. Si agregaramos mas dimensiones a la vista produciría un LOD menos agregado/sumarizado.

Si deseáramos incluir una dimensión al LOD de la visualización, pero sin arrastrar el campo a dicha visualización, deberemos de crear una expresión LOD, la cual nos permitirá realizar esta tarea.

 

Expresiones de nivel de detalle

Aparte del nivel de vista, las expresiones de nivel de detalle admiten la agregación en dimensionalidades. Con las expresiones de nivel de detalle, puede adjuntar una o varias dimensiones a cualquier expresión agregada.

A diferencia de los cálculos, los totales o las líneas de referencia, las expresiones de nivel de detalle se calculan en la fuente de datos. La ventaja es que esto le permite trasladar todos los datos de la base de datos al equipo a través de la red. Con fuentes de datos grandes, esto puede suponer un aumento del rendimiento considerable. El inconveniente es que esto puede hacer que Tableau ejecute consultas más complicadas (por ejemplo, con muchas uniones) y, si la fuente de datos subyacente es lenta, el rendimiento se puede ver afectado

Las expresiones de nivel de detalle (que también se denominan «expresiones LOD» o «cálculos LOD») son útiles para varios casos de uso, entre otros:

Análisis de cohortes: comparar datos de distintos subgrupos

  • Totales o promedios en segmentos
  • Agregaciones de agregaciones
  • Agregaciones agrupadas

Existen tres palabras clave para las expresiones LOD (EXCLUDE, INCLUDE y FIXED), cada una de las cuales modifica el alcance de la expresión LOD.

Ejemplo 1 (Include)

A continuación se muestra el promedio de las ventas por estado:

3

Esta sería la vista que nos da la función normal de promedio, pero ¿realmente este número nos hace sentido?

Revisemos con el estado de Chihuahua. Aquí tenemos que el total de las ventas  es $332,875 repartido en tres ciudades; lo que hace este cálculo es tomar la suma total por estado y dividirlo entre el número de registros:

4

Si quisiéramos ver el promedio a nivel ciudad sin incluir la dimensión en la vista, primero ¿habría variación en el número? Y ¿Qué tendríamos que hacer?

La respuesta a la primera pregunta es, sí, habría variación, tal como lo muestra la siguiente imagen:

5

Como podrás observar, el valor para todos cambio, continuando con Chihuahua cambio de un promedio de 2,080 a 110,958

Pero ¿Por qué sucedió esto? Fue gracias a crear un campo calculado tipo LOD, el cual nos permitió meter la dimensión ciudad sin que apareciera en la vista, modificando los cálculos. Para crear dicho campo, utilizamos la siguiente fórmula:

6

Por medio de la sentencia INCLUDE,  nos aseguramos de incluir la dimensión Ciudad en el cálculo, funcionando de la siguiente manera.

Ya sabemos que el total es 332,875, pero en lugar de dividirlo entre 160 registros, lo dividimos entre las tres ciudades que componen Chihuahua, dando un resultado de 110,958

7

 

 

Seminarios Web de Informatica

Les comparto los nuevos seminarios que estara impartiendo Informatica.

 

Wednesday 06 February:
(Featuring the Head of Data Governance from CNO Insurance)
Quantifying the Business Benefit of Data Governance and Data Quality.
http://bit.ly/WM0LvA 

Friday 08 February:
(Featuring the Informatica Product Desk)
Agile Data Integration in Practice.
http://bit.ly/106FfEL 

Wednesday 13 February:
(Featuring Tony Baer from Ovum, and Murali Rathnam from Symantec)
Enterprise Data Archiving Best Practices.
http://bit.ly/WBrsjq 

Wednesday 13 February:
(Featuring a key Informatica Ultra Messaging customer)
How to Gain a Competitive Edge with your FX Trading Applications.
http://bit.ly/11KseNh 

Friday 22 February:
(Featuring Rick van der Lans)
Best Practices for Operational BI by Doing Data Replication Right.
http://bit.ly/XtREw0