Tabla de Fechas en Power BI: ¿Query Editor o DAX o Nativas?

Si ya tienes tiempo trabajando con Power BI seguramente habrás notado que con el tema de las tablas de fechas tienes dos posibilidades:

  • Query Editor: Tabla de fechas que se guarda en el Dataset de Power BI con una estructura definida, con diseño asistido por la herramienta, pero que ocupa espacio y que debe sincronizarse como una fuente de datos más.
  • Formula DAX: Tabla de fechas que se mantiene en memoria porque permanentemente es creada en tiempo real según necesidad de las graficas y tablas que el usuario manipule en el reporte pero que podría afectar el performance de las consultas, filtros y gráficos igualmente.
  • Nativas: Cada columna de tipo fecha crea por defecto una tabla de fechas nativa y temporal con los datos de Fecha, Año, trimestre, Mes y Día. Esto podría afectar el espacio y performance del reporte en caso de que existan muchos campos de tipo fecha en el mismo.

¿Con estas tres posibles opciones qué podemos realizar entonces o cuál de las tres opciones es la mejor?

Mi primera recomendación es NO utilizar la tabla de fechas nativa, sino una tabla de fechas personalizadas (sea obtenida por Query Editor o por formula DAX). Porque no utilizar las tablas nativas de fecha:

  • Cada campo de tipo fecha tendrá su respectiva tabla de fechas temporal asociada.
  • Cada tabla temporal ocupa espacio, procesamiento y memoria perjudicando el performance del reporte.
  • Cada campo de fecha tiene su propia jerarquía de fechas asociado (Año, Trimestre, Mes, Día) lo cual puede confundir al usuario sobre cual jerarquía utilizar o si requiere combinaciones diferentes.
Varios campos de tipo fecha con la jerarquía asociada de forma nativa

para desactivar esta funcionalidad que por defecto trae Power BI, se debe ingresar a las opciones de configuración de Power BI y deshabilitar la opción de TIME INTELLIGENT, según la siguiente grafica:

¿Si ya no tengo las tablas de fechas nativas, entonces cuál tabla de fechas utilizo?

Comparemos el diseño y estructura de cada una de ellas para validar las opciones:

Tabla de Fechas por Query Editor

Vista de una tabla de fechas en el Query Editor

Desde el Query Editor podemos crear una tabla de fechas o conectarnos a una que posea nuestra fuentes de datos y personalizarla según nuestras necesidades.

Esta table de fechas, como es personalizada podría tener las columnas de:

  • Fecha: Registro único de acuerdo al rango de fechas definido
  • Año: Año, Inicio y fin de año
  • Mes: Número del mes, Nombre del mes, Inicio y fin del mes, Fin del mes anterior, Año-mes
  • Semana: Número de semana, Día semana, Nombre día, Día del Año
  • Trimestre: Número y nombre del Trimestre, Inicio y fin del trimestre, fin del trimestre anterior, Año-Trimestre
  • Semestre: Número y nombre del Semestre, Inicio y fin del semestre, fin del semestre anterior, Año-Semestre
  • Y todas las demás definiciones de fechas que se requieran para el reporte, ejemplo: bimestres, quincenas, festivos, entre otros

Entre las principales ventajas del diseño de una tabla de fechas en el Query Editor se encuentra:

  • Personalización a la medida
  • Datos Guardados en el Modelo (Dataset)
  • Merge o Append con otras tablas del modelo
  • Nombres personalizados de columnas, incluyendo definir campos en varios idiomas
  • Histórico de cambios en la tabla mediante la revisión de los pasos.

Tabla de fechas por formula DAX

Desde Power BI Desktop podemos crear una tabla de fechas mediante una formula DAX y personalizarla según nuestras necesidades.

Esta tabla de fechas, como es personalizada podría tener los mismos campos de la tabla diseñada con Query Editor, pero con una formula bastante compleja de entender y personalizar para algunos usuarios y sin histórico de cambios sobre la tabla:

Formula DAX para generar una tabla de fechas personalizada

Entre las principales ventajas del diseño de una tabla de fechas en DAX se encuentra:

  • Personalización a la medida
  • Datos Generados y mantenidos en memoria, liberando al Dataset de datos.
  • Power BI la toma como una tabla más y por tanto puedo hacer relaciones con otras tablas, medidas y columnas asociadas.
  • Nombres personalizados de columnas, incluyendo definir campos en varios idiomas

¿Tabla de Fechas en Query Editor o con Formula DAX?

La respuesta en simple: Depende.

  • Si el modelo de datos es muy complejo, tiene muchas columnas de tipo fechas, con jerarquías de fechas personalizadas y una buena cantidad de columnas y medidas con funciones DAX de análisis de fechas, creo que lo mejor es utilizar una tabla de fechas que este contenida en el modelo (DataSet) personalizada por el Query Editor.
  • Si el modelo no es complejo, columnas de fecha y jerarquías simples y somos buenos con formulas DAX, entonces las tablas con DAX serían una buena opción.

¿Si ya no tengo tablas de fechas nativas, como hace Power BI para identificar cual tabla de fechas utilizar en columnas y medidas en DAX?

Se debe identificar en Power BI cual es la tabla de fechas que el va a utilizar, no solo para los gráficos y jerarquías, sino para las formulas DAX que impliquen análisis de fechas.

Para realizar esta definición en Power BI se debe realizar los siguientes pasos:

Establecer tabla de fechas
  • Con la tabla de fechas seleccionada, damos clic en la opción “Marcar como tabla de fechas” en el menú de Modelamiento – Modeling
  • En la ventana de configuración se le indica cual es el campo que posee todas las fechas únicas de la tabla.
Marcar como tabla de fechas
  • La columna definida debe contener todas las fechas desde el primer hasta el última día según los registros de la tabla.
  • Si una fecha no existe en esa columna, NO podrá asignarse para la tabla de fechas.
  • Power BI realiza la validación y nos indica si la columna es valida o no.

Para más información te invito a que consultes:

Anuncios

One response to “Tabla de Fechas en Power BI: ¿Query Editor o DAX o Nativas?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s