Usted está aquí:
Dimensiones compartidas en semántica de Tableau
Analice y compare datos entre múltiples tablas de hechos conectándolos a través de las mismas tablas de dimensiones. Cree análisis complejos relevantes para el negocio de una forma limpia y fiable, evitando relaciones duplicadas y eliminando ciclos en su modelo semántico.
En la mayoría de los conjuntos de datos, diferentes dominios de negocio realizan un seguimiento de sus propios eventos por separado: Ventas realiza un seguimiento de transacciones, Marketing realiza un seguimiento de campañas, Inventario realiza un seguimiento de niveles de stock, etc. Cada uno de estos procesos de negocio se representa como una tabla de hechos, que contiene las mediciones principales y los datos de transacciones relevantes para ese dominio.
Para que estos datos tengan sentido, cada tabla de hechos se conecta a una o más tablas de dimensiones, como Productos, Fechas, Campañas, Clientes o Proveedores. Las dimensiones describen los hechos y permiten a los usuarios agruparlos, filtrarlos o agregarlos (por ejemplo, por fecha, por categoría de producto, por segmento de cliente).
A menudo, las tablas de hechos diferentes comparten las mismas dimensiones. Por ejemplo, Marketing y Ventas están relacionados con Productos y Fechas.
Cuando las tablas de hechos están relacionadas con una dimensión compartida, su organización puede alinear los datos y analizar los valores juntos, permitiéndole:
- Comparar costos de campaña desde Marketing e ingresos desde Ventas por producto
- Desglose los niveles de inventario y el desempeño de ventas por proveedor o cliente
- Analice la actividad del servicio de atención al cliente junto con el comportamiento de compra y devolución.
Dichas consultas abarcan diferentes tablas de hechos, mientras que las dimensiones compartidas proporcionan los puntos de conexión que le permiten reunir estos hechos y explorarlos lado a lado.
Para dar cobertura a esto en el modelo semántico, presentamos el concepto de tablas compartidas. Cuando una tabla de dimensiones se marca como compartida, el sistema sabe que se puede utilizar para conectar múltiples tablas de hechos de forma segura. Esto permite un análisis de múltiples hechos limpio y sin ciclos y garantiza que el modelo semántico pueda interpretar y ejecutar consultas entre dominios correctamente.
Tablas relacionadas frente a no relacionadas
Un concepto clave adicional en tablas compartidas es la diferencia entre tablas relacionadas y no relacionadas.
Dos tablas se consideran relacionadas cuando están conectadas directamente por una relación definida. Las consultas entre tablas relacionadas funcionan como se espera: el sistema utiliza la ruta definida para unirlos.
Si dos tablas no están completamente relacionadas, lo que significa que no tienen conexión directa o compartida, el sistema no puede determinar cómo combinar sus datos y la consulta fallará.
En algunos casos, las tablas solo están conectadas a través de una dimensión compartida. Si consulta campos desde ambas tablas de hechos sin incluir un campo desde la tabla compartida y los campos no están agregados, el sistema realiza una unión cruzada. Esto significa que cada fila de una tabla de hechos se combina con cada fila de la otra, ya que no hay ninguna clave compartida para alinearlas.
Por ejemplo, si Ventas y Marketing están vinculados a una tabla Productos compartida y consulta [Ventas].[Cantidad de ventas] y [Marketing].[Gasta] sin [Productos].[Nombre de producto], el sistema simplemente combinará todas las filas Ventas con todas las filas Marketing.
Para evitar esto, la consulta debe incluir un campo de la tabla compartida, como Producto o Fecha, que actúa como la clave de unión y proporciona un eje compartido para agrupar y agregar valores entre los dos hechos.
Las dimensiones compartidas permiten analizar datos procedentes de tablas que de otro modo estarían aisladas, pero solo cuando se utilizan correctamente en la consulta.
Árboles de hechos y su estructura
Un árbol de hechos es un grupo de tablas que pertenecen a la misma área de negocio y están conectadas entre sí. Normalmente incluye una o más tablas de hechos junto con tablas de dimensiones.
Esta estructura no es solo un concepto de modelado, es algo que el sistema crea automáticamente cuando ejecuta una consulta. Los árboles de hechos son el modo en que la capa semántica organiza las tablas de forma interna para evaluar las dimensiones compartidas correctamente.
En el diagrama de ejemplo anterior, Marketing es una tabla de hechos conectada a tablas compartidas Productos y fechas. Esto forma su árbol de hechos. Ventas es otra tabla de hechos que conecta con las mismas dimensiones compartidas, formando un árbol de hechos separado. Esta estructura permite al sistema comprender cómo funciona cada árbol de forma independiente, permitiendo al mismo tiempo el análisis entre árboles a través de dimensiones compartidas.
Los árboles de hechos deben permanecer libres de ciclos. Los ciclos introducen ambigüedad: si el sistema puede llegar a la misma tabla a través de más de una ruta, es posible que no sepa cuál seguir o cómo aplicar filtros y agregaciones correctamente. Por este motivo, no se permite la creación de una nueva relación que introduzca un ciclo, como conectar Marketing directamente con Subcategoría (a la que ya se puede acceder a través de Producto).
Cómo afectan las dimensiones compartidas a las consultas
Las dimensiones compartidas no solo ayudan a estructurar su modelo semántico, también rigen el comportamiento de las consultas en tiempo de ejecución, garantizando resultados precisos y lógica coherente.
Supongamos que está analizando cómo se relaciona el gasto de marketing con la cantidad de ventas. Estas dos mediciones proceden de tablas de hechos diferentes: Marketing y ventas. Por sí solos, no se pueden alinear de forma significativa porque no hay contexto compartido por el que agruparlos. Si solo arrastra ambos campos en una consulta sin utilizar una referencia compartida, el sistema no puede comparar las filas y puede devolver resultados engañosos o incluso fallar.
Sin embargo, una vez que incorpora dos dimensiones compartidas, como Producto y Fecha, la situación cambia. Con estos en vigor, puede preguntar: “Para cada producto y mes, ¿cuánto gastamos en marketing y cuántas unidades se vendieron?”
Como Ventas y Marketing están conectados a Productos y Fechas (tablas compartidas), el sistema ahora puede alinear ambas mediciones correctamente (por producto, por mes) y devolver resultados agregados significativos:
| Producto | Mes | Gasto de marketing | Cantidad de ventas |
|---|---|---|---|
| Bicicleta | Ene 2024 | 5 000 | 12 |
| Bicicleta | Feb 2024 | null | 8 |
| Vehículo | Ene 2024 | 10,320 | 22 |
| Vehículo | Feb 2024 | 5 000 | 10 |
Comportamiento de filtrado
Los filtros se aplican de una forma que evita cambiar datos desde tablas no relacionadas.
- Cuando aplica un filtro en un campo específico de hechos, como Tipo de marketing, solo filtra esa tabla de hechos, no cualquier otro hecho o dimensión compartida.
- Cuando aplica un filtro en una dimensión compartida, como Nombre de producto o Fecha, se aplica a todas las tablas de hechos conectadas a ella.
Este comportamiento evita que los filtros eliminen registros no relacionados. Por ejemplo, si selecciona Online en el filtro Tipo de marketing, solo se actualiza Gasto de marketing: la cantidad de ventas no se ve afectada.
Los árboles de hechos deben permanecer libres de ciclos. Los ciclos introducen ambigüedad: si el sistema puede llegar a la misma tabla a través de más de una ruta, es posible que no sepa cuál seguir o cómo aplicar filtros y agregaciones correctamente. Por este motivo, no se permite la creación de una nueva relación que introduzca un ciclo, como conectar Marketing directamente con Subcategoría (a la que ya se puede acceder a través de Producto).
Campos calculados y contención de árboles de hechos
Los campos calculados deben respetar los límites del árbol de hechos. Si crea un campo calculado a nivel de fila, por ejemplo:
IF [Support].[Priority] <= 1 THEN "High" ELSE "Low"
-- ese campo es válido siempre que permanezca en el mismo árbol de hechos (Asistencia en este caso). Puede utilizarlo para analizar patrones o filtrar la actividad relacionada con la asistencia con dimensiones como Cliente o Producto (si esas dimensiones están compartidas), y todo se comportará como se espera.
Sin embargo, si intenta crear un campo calculado que abarque múltiples tablas de hechos, como:
[Inventario].[Cantidad] + [Ventas].[Cantidad de ventas]
-- la plataforma generará un error. Intenta combinar datos a nivel de filas desde dos árboles de hechos diferentes, y el sistema no puede resolver un nivel de detalle común para esa expresión. Cada árbol de hechos tiene su propia granularidad independiente y contexto de filtrado.
Para lograr cálculos de hechos cruzados válidos, debe agregar cada hecho de forma independiente y luego combinar esos agregados en el nivel de la vista:
SUM([Inventario].[Cantidad]) + SUM([Ventas].[Cantidad de ventas])
Esta expresión se permite porque ambas mediciones se agregan antes de combinarse, y la agregación tiene ámbito al nivel de producto o cualquier dimensión que se encuentre en la vista.
Limitaciones de dimensiones compartidas y árboles de hechos
- Las tablas de hechos deben permanecer desconectadas entre sí. No se pueden unir directamente. Cualquier conexión entre ellos debe producirse únicamente a través de tablas de dimensiones compartidas.
- Los campos calculados a nivel de filas, ya sean dimensiones o mediciones, deben estar completamente contenidos en un único árbol de hechos.
- No puede conectar una tabla compartida con otra tabla compartida y luego con una tabla de hechos. En otras palabras, solo puede existir una tabla compartida en la ruta de conexión entre cualquier tabla de hechos y sus dimensiones. Por ejemplo, si Productos es una tabla compartida conectada a Fechas (otra tabla compartida) y luego ambas conectan con Ventas, esta estructura no es compatible.
- Cuando filtra campos desde múltiples árboles de hechos en la misma consulta, esos filtros deben combinarse utilizando una condición AND, no OR.
- Crear una nueva tabla compartida
Utilice tablas compartidas para vincular múltiples tablas de hechos a través de una dimensión común, para comparar registros entre diferentes tablas. Esto mantiene su modelo de datos limpio e inequívoco y garantiza que los filtros se comportan correctamente entre diferentes conjuntos de datos.
