Tutorial Tableau 06. Optimización

Herramientas: Tableau

Aviso: Este documento es un complemento a las sesiones que imparto sobre visualización de datos y analítica visual, y en ningún caso pretende ser un manual comprehensivo sobre Tableau.

Unir datos de fuentes diversas

Tipos de uniones

Unión de columnas (join)

Los datos que analiza en Tableau suelen componerse de una colección de tablas que se relacionan mediante campos específicos (columnas). La Unión es un método para combinar los datos relacionados en esos campos comunes. El resultado de combinar los datos usando una Unión es una tabla virtual que normalmente se extiende horizontalmente añadiendo columnas de datos.

Tipos de join:

  • Interna
Fuente de la imagen: R for data science
  • Izquierda / Derecha (left y right en la imagen de R4DS): son el mismo tipo de Unión.

  • Externa completa (full en la imagen de R4DS)

Fuente de la imagen: R for data science
  • Unión: ver Unión de filas

Más información en la ayuda de Tableau: “Combinar datos” (join, Unión de columnas)

Unión de columnas (blend)

Aviso: en la web de ayuda en español de Tableau se utiliza “Combinación de datos” para blend y “Combinación” para join.

La Combinación de datos (blend) es un método de Combinación que agrega a una tabla de datos procedentes de una fuente de datos columnas de datos de otra fuente de datos. Normalmente se utilizan las combinaciones (join) para llevar a cabo este tipo de relaci?n de datos, pero a veces, dependiendo de factores como el tipo de datos y su granularidad, es mejor utilizar la Combinación de datos (blend).

“La Combinación de datos simula una Combinación izquierda tradicional. La diferencia principal es el momento en el que se efectúa la Combinación con respecto a la agregación”

Cuando combinamos tablas usando blending, las tablas se combinan con una Unión a la izquierda. Sin embargo, hay una diferencia b?sica entre estos dos tipos de operaciones.

  • Cuando usa una Combinación izquierda (join) primero se unen los datos, y luego se agregan (lo que crear duplicaciones).
  • Cuando usa la Combinación de datos (blend) primero se agregan los datos de todas las fuentes, y luego se unen.

Hay casos especiales en los que es mejor usar blend que join:

  • La fuente de datos no permite join
  • El nivel de detalle de cada fuente de datos es distintos
  • Los datos necesitan limpieza
  • Las combinaciones (join) generan datos duplicados
  • Hay muchos datos

Más información en la ayuda de Tableau: “Combinar datos” (blending)

Unión de filas (union)

Puede unir los datos para combinar dos o más tablas adjuntando valores (filas) de una tabla a otra. Para poder unir los datos en una fuente de datos de Tableau, las tablas deben proceder de la misma conexión.

Las fuentes de datos a unir pueden estar en varios archivos, o en varias pesta?as de una misma hoja de cálculo, por ejemplo.

Si los nombres de los campos de la Unión no coinciden, los campos contienen valores nulos. Puede combinar los campos que no coincidan en un solo campo mediante la opción de combinar y eliminar así los valores nulos. Cuando se utiliza la opción de combinar, los campos originales se sustituyen por un campo nuevo, en el que se muestra el primer valor que no es nulo para cada fila en los campos no coincidentes.

Más información en la ayuda de Tableau: “Unir los datos” (Unión de filas)

Unión de columnas de archivos espaciales (spatial join)

Desde la versión 2018.2, podemos combinar dos archivos espaciales (uno de puntos y otro de polígonos) sin tener ninguna columna en común, de tal forma que Tableau identifique qué puntos caen dentro de un polígono determinado.

El tipo de Combinación de columnas puede ser cualquiera (interior, izquierda/derecha, exterior), pero la condición a de ser la siguiente:

Geometría (tabla A) <intersects> Geometría (tabla B)

Más información en la ayuda de Tableau: “Unión espacial”

Cuándo usar cada tipo de Unión

Tableau knowledge base: Deciding Between Joining Tables and Blending Data

Ejercicio

  • ¿qué tipo de Unión podríamos usar en el dataset de Metro Bike Share para evitar que los datos se dupliquen, pero tener cada punto de inicio/fin en una fila separada?
  • Como consecuencia del paso anterior, ¿debemos transformar los datos originales? Si la respuesta es afirmativa, ¿qué estructura tienen que tener cada fuente de datos?
  • ¿qué flujos de trabajo ETL deberemos definir para obtener las fuentes de datos?
  • La web Metro Bike Share ofrece un dataset con información de las estaciones de bicicletas que contiene las siguientes variables: Station ID, Station Name, Go live date, Region y Status. ¿qué utilidad puede ofrecernos este dataset? ¿qué tipo de Combinación necesitaríamos para poder usarlo?

Tipos de cálculos

La información de esta sección se ha obtenido de las siguientes fuentes:

Expresiones básicas

Las expresiones básicas permiten transformar los valores o miembros a nivel de detalle de fuente de datos (un cálculo a nivel de fila) o de visualización (un cálculo agregado).

Cálculos a nivel de fila

SPLIT([Author], '.', 3 )
ID del libro Título del libro Serie Año de publicación Autor Apellido del autor
1 El león, la bruja y el armario Las crónicas de Narnia 1950 C. S. Lewis Lewis
2 El príncipe Caspio: Regreso a Narnia Las crónicas de Narnia 1951 C. S. Lewis Lewis
3 La travesía del viajero del alba Las crónicas de Narnia 1952 C. S. Lewis Lewis
4 La silla de plata Las crónicas de Narnia 1953 C. S. Lewis Lewis
5 El caballo y el muchacho Las crónicas de Narnia 1954 C. S. Lewis Lewis
6 El sobrino del mago Las crónicas de Narnia 1955 C. S. Lewis Lewis
7 La última batalla Las crónicas de Narnia 1956 C. S. Lewis Lewis
8 Harry Potter y la piedra filosofal Harry Potter 1997 J. K. Rowling Rowling
9 Harry Potter y la cámara secreta Harry Potter 1998 J. K. Rowling Rowling
10 Harry Potter y el prisionero de Azkabán Harry Potter 1999 J. K. Rowling Rowling
11 Harry Potter y el cáliz de fuego Harry Potter 2000 J. K. Rowling Rowling
12 Harry Potter y la Orden del Fénix Harry Potter 2003 J. K. Rowling Rowling
13 Harry Potter y el misterio del príncipe Harry Potter 2005 J. K. Rowling Rowling
14 Harry Potter y las Reliquias de la Muerte Harry Potter 2007 J. K. Rowling Rowling

Cálculos agregados

// Número de libros de la serie (nivel de detalle Serie)

COUNT([Series])
Serie Número de libros de la serie (nivel de detalle Serie)
Las crónicas de Narnia 7
Las crónicas de Narnia
Las crónicas de Narnia
Las crónicas de Narnia
Las crónicas de Narnia
Las crónicas de Narnia
Las crónicas de Narnia
Harry Potter 7
Harry Potter
Harry Potter
Harry Potter
Harry Potter
Harry Potter
Harry Potter

La agregación se hace al nivel de detalle de la vista, y después de aplicar filtros.

Estos cálculos dependen del nivel de detalle de la vista

Expresiones de nivel de detalle

Las expresiones LOD representan una manera elegante y eficaz de responder preguntas que incluyen múltiples niveles de granularidad en una única visualización. (Aldrige & Walker, 2015, “Comprensión de las expresiones de nivel de detalle”)

INCLUDE

include añade granularidad al nivel de detalle de la vista

EXCLUDE

exclude resta granularidad al nivel de detalle de la vista

FIXED

fixed añade o resta granularidad al nivel de detalle de la vista, dependiendo de las dimensiones usadas
// Serie publicada

{ FIXED [Series]:(MIN([Year Released]))}
ID del libro Título del libro Serie Año de publicación Autor Serie publicada
1 El león, la bruja y el armario Las crónicas de Narnia 1950 C. S. Lewis 1950
2 El príncipe Caspio: Regreso a Narnia Las crónicas de Narnia 1951 C. S. Lewis 1950
3 La travesía del viajero del alba Las crónicas de Narnia 1952 C. S. Lewis 1950
4 La silla de plata Las crónicas de Narnia 1953 C. S. Lewis 1950
5 El caballo y el muchacho Las crónicas de Narnia 1954 C. S. Lewis 1950
6 El sobrino del mago Las crónicas de Narnia 1955 C. S. Lewis 1950
7 La última batalla Las crónicas de Narnia 1956 C. S. Lewis 1950
8 Harry Potter y la piedra filosofal Harry Potter 1997 J. K. Rowling 1997
9 Harry Potter y la cámara secreta Harry Potter 1998 J. K. Rowling 1997
10 Harry Potter y el prisionero de Azkabán Harry Potter 1999 J. K. Rowling 1997
11 Harry Potter y el cáliz de fuego Harry Potter 2000 J. K. Rowling 1997
12 Harry Potter y la Orden del Fénix Harry Potter 2003 J. K. Rowling 1997
13 Harry Potter y el misterio del príncipe Harry Potter 2005 J. K. Rowling 1997
14 Harry Potter y las Reliquias de la Muerte Harry Potter 2007 J. K. Rowling 1997

LODE y filtros

Expresiones de nivel de detalle y orden de aplicación de filtros

Cálculos de tabla

// Años transcurridos desde el último libro

ATTR([Year Released]) - LOOKUP(ATTR([Year Released]), -1)

En la tabla de ejemplo, las dos primeras subcolumnas de Años transcurridos desde el último libro muestran los datos necesarios para realizar el cálculo, mientras que la última columna muestra el valor resultante, que es el que podremos usar para marcas gráficas, filtros…

Los cálculos dependen del nivel de detalle de la vista, y de la direccionalidad (addressing) y particionamiento (partitioning) de la tabla.

ID del libro Título del libro Serie Año de publicación Autor  Años transcurridos desde el último libro
1 El león, la bruja y el armario Las crónicas de Narnia 1950 C. S. Lewis NULL  
2 El príncipe Caspio: Regreso a Narnia Las crónicas de Narnia 1951 C. S. Lewis 1951- 1950 1
3 La travesía del viajero del alba Las crónicas de Narnia 1952 C. S. Lewis 1952- 1951 1
4 La silla de plata Las crónicas de Narnia 1953 C. S. Lewis 1953- 1952 1
5 El caballo y el muchacho Las crónicas de Narnia 1954 C. S. Lewis 1954- 1953 1
6 El sobrino del mago Las crónicas de Narnia 1955 C. S. Lewis 1955- 1954 1
7 La última batalla Las crónicas de Narnia 1956 C. S. Lewis 1956- 1955 1
8 Harry Potter y la piedra filosofal Harry Potter 1997 J. K. Rowling NULL  
9 Harry Potter y la cámara secreta Harry Potter 1998 J. K. Rowling 1998- 1997 1
10 Harry Potter y el prisionero de Azkabán Harry Potter 1999 J. K. Rowling 1999- 1998 1
11 Harry Potter y el cáliz de fuego Harry Potter 2000 J. K. Rowling 2000- 1999 1
12 Harry Potter y la Orden del Fénix Harry Potter 2003 J. K. Rowling 2003- 2000 3
13 Harry Potter y el misterio del príncipe Harry Potter 2005 J. K. Rowling 2005- 2003 2
14 Harry Potter y las Reliquias de la Muerte Harry Potter 2007 J. K. Rowling 2007- 2005 2

Más ejemplos: Los 10 cálculos de tablas principales de Tableau

Elegir el tipo de cálculo adecuado

Ayuda de Tableau: Elegir el tipo de cálculo adecuado

 

Orden de operaciones y filtros

Fuente de la imagen: Ayuda de Tableau

Optimización

Conceptos

Esta sección es un resumen de la charla de Jason Oakes en la Tableau Conference 2018: “Designing efficient workbooks”.

El flujo de trabajo cuando accedermos a una visualización de Tableau es el siguiente:

Fuente: Oakes, 2018, ‘Designing efficient workbooks’

Los motivos por los que la renderización de una visualización puede ser lenta pueden agruparse en estos niveles: plataforma de los datos, datos propiamente dichos, analítica y representación gráfica. Estos cuatro niveles pueden contemplarse como una pir?mide invertida. En un extremo tendríamos la plataforma, donde la frecuencia de problemas es menor, pero la capacidad para cambiar y corregir algo también es menor; en el otro extremo estaría la representación gráfica, donde la frecuencia de problemas es mayor pero también tenemos más posibilidades de corregir los errores.

Fuente: Oakes, 2018, ‘Designing efficient workbooks’

Una herramienta indispensable para intentar detectar los cuellos de botella es el registro de rendimiento.

Ayuda > Configuración y rendimiento > Comenzar registro del rendimiento
Iniciar el registro de rendimiento

Al parar el registro de rendimiento Tableau generará un nuevo workbook con un cuadro de mando en el que se ve el tiempo dedicado a distintas tareas: ejecutar consultas, dibujar, geocodificar…

Dashboard generado por el registro de rendimiento

Representación gráfica

Problemas relacionados con el diseño y la interacción de las gráficas y los cuadros de mando (objetos que consumen datos y objetos que no consumen datos): encabezados, ejes, paneles, células, marcas, Títulos, etiquetas, leyendas…

Conviene mantener las gráficas lo más simples posibles:

  • Reducir el Número de marcas: no solicitar datos que no se necesitan, no renderizar marcas que no se van a ver (overploting).
  • Evitar filtros enumerados de dimensiones de cardinalidad alta
  • Algunas marcas llevan más cálculos que otras: los polígonos o algunas gráficas personalizadas (donuts, sankey…) llevan más cálculos que puntos o barras.
  • Cuantos más elementos interactivos haya en los cuadros de mando más cómputos tendrá que realizar Tableau.
  • Para dimensiones de cardinalidad alta, es mejor crear sets, filtros de comodín (en lugar de cargar toda la lista)…

Análisis

Problemas relacionados con los tipos de datos, filtros, cálculos, trabajar con distintas fuentes de datos…

  • Los tipos de datos convertidos conllevan más cómputos.
  • Tener en cuenta el orden de las operaciones y aplicación de filtros. Utilizar las variantes de filtros que realicen cálculos más simples.
  • En cuanto a la rapidez de cálculo, el tipo de dato influye: Número entero > Número decimal > Fechas, booleanos > Cadenas
  • Las expresiones de nivel de detalle pueden conllevar mucha necesidad de cómputo si el dataset es muy grande.
  • En el caso de que sea posible, es mejor usar funcionalidades nativas de Tableau sobre cálculos con los que obtendríamos el mismo resultado: grupos, conjuntos, agrupaciones (bins), fechas personalizadas, campos combinados, alias, líneas de referencia y herramientas de analítica.
  • Para trabajar con cadenas, mejor utilizar expresiones regulares.
  • La Combinación de datos (blending) puede ralentizar las visualizaciones, especialmente con dimensiones de cardinalidad alta.

Datos

Problemas relacionados con la conexión a los datos, combinaciones de datos, extractos…

  • Las conexiones nativas de Tableau son más rápidas que las conexiones ODBC.
  • Mejor no tener las fuentes de datos en distintos sitios.
  • Si nos conectamos a datos remotos, la velocidad de la red puede suponer un problema.
  • Intentar no usar consultas SQL personalizadas.
  • Intentar que las fuentes de datos ya tengan la estructura adecuada, para que Tableau no tenga que realizar esas tareas.
  • Crear extractos: eliminar variables que no se van a usar, agregar los datos, filtrar observaciones, materializar campos calculados…

Plataforma

  • Si trabajamos con versiones online/server, monitorizar los servidores.
  • Testar las visualizaciones en todos los entornos de producción en los que se vayan a consumir.
  • Actualizar siempre como poco a la penúltima versión de Tableau.

Más recursos sobre optimización de cuadernos de trabajo

Vídeos TC18

 

 

Difusión

Flujo de trabajo y difusión

Flujo de trabajo y difusión con Tableau

Vídeos TC18

Recursos


Más posts