(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

DP-600: diseñar y optimizar jerarquías de fecha en modelos semánticos

João Barros 10 de September de 2026 4 min de lectura

Voy a enseñar la habilidad de diseñar y optimizar jerarquías de fecha en modelos semánticos — una competencia esencial en el DP-600. Saber estructurar una dimensión de fecha correctamente mejora el rendimiento, facilita el análisis temporal y evita errores en las funciones de time intelligence.

Lo que necesitas saber

Una jerarquía de fecha típica agrega niveles como Año > Trimestre > Mes > Día. En los modelos semánticos (Tabular/Power BI/Fabric), una dimensión de fecha bien construida permite usar funciones de time intelligence (TOTALYTD, DATESINPERIOD, etc.) y optimizar filtros y agrupaciones. Conceptos clave:

  • Tabla de fechas dedicada: no uses una columna de fecha dentro de la fact table; crea una calendar table con una fila por día y claves enteras.
  • Clave de enlace: relaciona la fact table con la tabla de fechas mediante una columna entera (por ej., YYYYMMDD) o por un tipo date, dependiendo del storage mode.
  • Columnas de soporte: Año, Trimestre (nombre y número), Mes (nombre y número), Día de la semana (nombre y número), AñoFiscal, y un indicador de AñoCompleto (para filtros).
  • Jerarquías físicas: define la jerarquía en el modelo (Año > Trimestre > Mes > Día) para permitir drill-down eficiente en los informes.

Ejemplo simple de columnas en una calendar table:

DateKey (int) = 20260910
Date (date) = 2026-09-10
Year = 2026
Quarter = 3
MonthNumber = 9
MonthName = "September"
Day = 10
IsInFullYear = TRUE

En la práctica — paso a paso

Aquí tienes un flujo práctico para crear y optimizar tu jerarquía de fecha en Power BI Desktop o en el semantic model de Fabric.

  1. Crear la calendar table

    Genera la tabla con todas las fechas que cubran el intervalo de tus datos (ej.: desde la menor InvoiceDate hasta la mayor). En DAX puedes usar:

    Calendar =
    CALENDAR(MIN(Sales[OrderDate]), MAX(Sales[OrderDate]))

    Pero, para mejor rendimiento, es preferible crear también la DateKey entera y columnas numéricas para ordenar (MonthNumber, QuarterNumber).

  2. Añadir columnas de soporte

    Crea columnas calculadas (o preferiblemente, en el origen/ETL cuando sea posible) para evitar cálculos en runtime costosos. Ejemplos en DAX:

    Year = YEAR(Calendar[Date])
    MonthNumber = MONTH(Calendar[Date])
    MonthName = FORMAT(Calendar[Date], "MMMM")
    Quarter = "Q" & FORMAT(QUARTER(Calendar[Date]), "0")
    DateKey = VALUE(FORMAT(Calendar[Date], "YYYYMMDD"))

    Preferible: generar estas columnas durante el ETL (Synapse, Dataflow) para reducir la carga en el modelo.

  3. Crear jerarquía en el modelo

    En Power BI Desktop o en el Model Designer de Fabric, selecciona la tabla de fechas y crea una jerarquía arrastrando las columnas en el orden deseado (Year > Quarter > MonthName > Date). Esto mejora la experiencia de drill-down y permite usar automáticamente niveles en los visuales.

  4. Ordenación correcta de las columnas de texto

    Asegura que MonthName esté ordenado por MonthNumber; Quarter por QuarterNumber. Sin esto, enero puede aparecer después de septiembre en los informes.

    En la vista del modelo: seleccionar MonthName -> Sort by Column -> MonthNumber
  5. Relaciones y activación de time intelligence

    Crea una relación 1:* entre la tabla Date (DateKey o Date) y la fact table. Marca la tabla de fechas como "Date Table" (Mark as Date Table) y define la columna de fecha primaria. Esto permite que DAX use correctamente funciones de time intelligence.

Errores comunes

  • Usar la columna de fecha de la fact table como dimensión — causa duplicación, dificultades con múltiples fact tables y limita la reutilización de la calendar table.
  • Olvidar ordenar columnas de texto — MonthName mostrado por orden alfabético conduce a informes confusos.
  • Calcular demasiadas columnas en el modelo — crear columnas costosas en DAX en lugar de en el ETL afecta el tiempo de procesamiento y el tamaño del modelo.

Cómo practicar

Para practicar, crea un pequeño proyecto: carga una fact table de ventas, construye la calendar table con 5 años de datos, implementa la jerarquía y prueba medidas de time intelligence (YTD, MTD, MoM). Usa el Practice Assessment OFICIAL y GRATUITO de Microsoft para evaluar conocimientos generales del DP-600; consulta también la study guide oficial (ambos gratuitos). Estas herramientas oficiales son las únicas válidas para simulacros oficiales — no uses "dumps".

En resumen

  • Crea siempre una tabla de fechas dedicada y relaciónala correctamente con las fact tables.
  • Añade columnas numéricas para ordenar y desplaza la lógica al ETL cuando sea posible, reduciendo el procesamiento en el modelo.
  • Define jerarquías físicas (Year > Quarter > Month > Day) para mejor experiencia de análisis y rendimiento.
  • Marca la tabla como Date Table para habilitar funciones de time intelligence y evitar errores en las medidas temporales.