DP-600: implementar tablas puente (bridge tables) en modelos semánticos
Te enseñaré cómo implementar y usar tablas puente (bridge tables) en un modelo semántico — una competencia útil en el DP-600 y crucial para modelos que tienen relaciones muchos‑a‑muchos, escalado de atributos o historización. Saber cuándo y cómo usar una bridge table ayuda a garantizar medidas correctas y un rendimiento aceptable en Power BI/Fabric.
Lo que necesitas saber
Una tabla puente (bridge table) es una tabla intermedia que normaliza o resuelve relaciones complejas entre tablas fact y dimension. Sirve, por ejemplo, cuando una entidad tiene múltiples categorías asignadas (tags), o cuando tienes varias claves naturales que enlazan dimensiones duplicadas. En lugar de crear relaciones directas muchos‑a‑muchos entre fact y dimension, colocas una bridge que contiene pares clave_fact–clave_dim y, opcionalmente, una granularidad o peso.
Ejemplo sencillo: tienes una tabla Sales con SalesID y ProductID, y una tabla Product con ProductID y Category. Pero un producto puede pertenecer a varias Category (por ejemplo, tags como "Eco", "Premium"). En lugar de almacenar todas las categorías en la tabla Product como lista, creas ProductCategory (ProductID, CategoryID) — la bridge — y enlazas Sales → Product (1:N) y ProductCategory → Category (N:1). Para agregaciones por Category, pasas por ProductCategory.
Cómo funciona en la práctica
Paso a paso para crear y usar una bridge table de forma correcta:
- Modelado inicial: Identifica las entidades y el tipo de relación (1:1, 1:N, N:N). Si hay N:N entre fact y dimensión, considera una bridge.
- Diseñar la bridge: Crea una tabla con las claves que enlazan las dos entidades (ej.: ProductID, CategoryID). Incluye metadatos si es necesario (ej.: weight, EffectiveFrom, EffectiveTo).
- Definir relaciones: En el modelo semántico, establece relaciones 1:N entre las tablas apropiadas. Evita relaciones directas N:N; usa la bridge para encaminar el filtrado.
- Medidas correctas: Las medidas deben funcionar a través de la bridge. Normalmente usas funciones DAX que respetan relaciones (ej.: SUM, CALCULATE) pero, si hay ambigüedad, usa funciones como RELATEDTABLE, CROSSFILTER o TREATAS.
- Rendimiento y filtrado: Evalúa la cardinalidad de la bridge — si es muy grande, añade pre‑agregaciones o índices en la fuente. Considera también Storage Mode y particiones.
Ejemplo DAX típico (escenario: contar ventas por Category cuando existe ProductCategory bridge):
SalesByCategory =
CALCULATE(
COUNTROWS(Sales),
CROSSFILTER(Sales[ProductID], Product[ProductID], Both),
VALUES(Category[CategoryID])
)
Una alternativa es usar TREATAS para aplicar un filtro a partir de una tabla derivada de la bridge:
SalesByCategory2 =
CALCULATE(
COUNTROWS(Sales),
TREATAS(VALUES(ProductCategory[ProductID]), Sales[ProductID])
)
Errores comunes
- Enlaces directos N:N sin bridge: Crear relaciones directas muchos‑a‑muchos puede llevar a resultados incorrectos y ambigüedad de filtrado. Usa la bridge para modelar explícitamente la relación.
- Ignorar granularidad: Si la bridge no incluye información de período (EffectiveFrom/To) puedes contaminar agregados temporales. Para datos historizados, añade columnas de validez y filtra/agrupa según sea necesario.
- Medidas que no consideran la bridge: Escribir medidas sencillas que asumen relación directa entre fact y dimensión conduce a recuentos duplicados u omitidos. Prueba las medidas con contextos de filtro variados y utiliza CROSSFILTER/TREATAS cuando haga falta.
Cómo practicar
Para practicar, construye un modelo pequeño con estas tablas: Sales (SalesID, ProductID, Amount, Date), Product (ProductID, Name), Category (CategoryID, Name) y ProductCategory (ProductID, CategoryID). Importa datos de ejemplo CSV e implementa relaciones en Power BI Desktop o en el Fabric Model. Crea medidas: total de ventas por categoría, media por categoría ponderada por peso, y análisis temporales con la bridge.
Refiérete siempre a los recursos oficiales: el Practice Assessment OFICIAL de Microsoft (gratuito) y la Study Guide oficial del DP-600 (gratuita). Usa el Practice Assessment para evaluar tu nivel y la Study Guide para cubrir todas las "skills measured". No uses exam dumps — practica con laboratorios y los materiales oficiales.
En resumen
- Una bridge table resuelve relaciones complejas y evita relaciones N:N directas en el modelo semántico.
- Diseña la bridge con las claves y metadatos esenciales (p. ej. peso, validez) para mantener la granularidad correcta.
- Escribe medidas DAX que respeten el filtrado a través de la bridge; utiliza CROSSFILTER o TREATAS cuando sea necesario.
- Prueba y optimiza: valida resultados con escenarios de filtrado diferentes y considera el impacto en el rendimiento.