Verne academy

VERNE ACADEMY > BLOG > BLOG POWER BI > DEPURAR EXPRESIONES DAX CON DAX STUDIO

Depurar expresiones DAX con DAX Studio

Contenidos del Post

Como en todos los procesos de desarrollo, la depuración de código puede ser necesaria cuando no se consigue un resultado esperado y se desconoce el motivo. Lo mismo ocurre con las expresiones DAX y por ello, una forma fácil de depurar código en este lenguaje, es mediante la herramienta DAX Studio.


DAX es un lenguaje de consulta muy potente que permite desarrollar funciones para calcular y devolver uno o varios valores en entornos como Power BI, Power Pivot o modelos tabulares en SSAS. Como en todos los procesos de desarrollo, la depuración de código puede ser necesaria cuando no se consigue un resultado esperado y se desconoce el motivo. Lo mismo ocurre con las expresiones DAX y por ello, una forma fácil de depurar código en este lenguaje, es mediante la herramienta DAX Studio.

En este artículo, veremos las principales funcionalidades de la herramienta y cómo utilizarla desde un enfoque práctico.

¿Qué es DAX Studio?

1

DAX Studio es una herramienta gratuita de código abierto que permite ejecutar y analizar expresiones DAX con el objetivo de depurar y mejorar los tiempos de ejecución de estas funciones.

¿Qué funciones tiene?

Lo primero que se debe hacer cuando se abre esta herramienta, es conectar DAX Studio al modelo de datos de Power BI, Power Pivot o tabular, en el que se necesita depurar código DAX.

2 1 300x166 2 - Verne Academy

A continuación se detallan las cuatro principales funciones de DAX Studio:

Screenshot 1 980x109 1 - Verne Academy
  • “Format Query”: Se trata de una opción que permite formatear el código DAX de forma correcta para hacer la expresión lo más legible posible.
4
  • “All Queries”: Esta segunda funcionalidad activa un servidor con el objetivo de capturar todas las consultas que son ejecutadas en el modelo de datos conectado.
all queries - Verne Academy
  • “Query Plan”: Si se quiere ver el plan de ejecución generado a partir de una expresión DAX, esta es la característica de DAX Studio que lo permite. De esta forma se podrá capturar el plan lógico y físico de la expresión DAX analizada.
Query Plan
  • “Server Timings”: Junto con la opción anterior, esta tercera funcionalidad permite analizar los tiempos de ejecución de las expresiones DAX que corren en el modelo de datos. De esta manera, se permite completar el análisis del plan de ejecución ya que muestra los tiempos del plan lógico y físico así como el número de consultas que realiza cada uno de ellos.
7 - Verne Academy

Curso DAX Avanzado

Sácale el máximo partido a los datos y a su visualización con el curso de DAX Avanzado. ¡Conviértete en un experto en BI!
Best seller

¿Cómo utilizar DAX Studio?

A continuación se expone un caso real en el que es preciso depurar una expresión DAX debido a que su funcionamiento no es el esperado y se desconoce cuál puede ser el motivo:

En este caso, se trata de un modelo en estrella en Power BI, en el que se hayan una tabla de ventas, como tabla de hechos, y distintas dimensiones que permiten desglosar la información en función de la tienda, el producto, el cliente y la fecha.

4 1 - Verne Academy

El problema que se presenta es que existen dos métricas en la tabla de hechos, que aparentemente tienen una sintaxis equivalente, pero su comportamiento es distinto.

TotalSalesNY =

CALCULATE (

SUM ( Sales[SaleIncome] );

Store[StoreDescription] = «Store New York»

)

Esta métrica pretende mostrar el resultado de las ventas realizadas en la tienda de Nueva York.

9

TotalSalesJune =

CALCULATE (

SUM ( Sales[SaleIncome] );

‘Date'[MonthNameLong] = «June»

)

Esta métrica muestra el resultado de las ventas realizadas en el mes de junio.

10

Tal y como se puede observar, la métrica “TotalSalesNY” repite el resultado de Nueva York al desglosar el dato por todas las tiendas. Este es el comportamiento correcto de la función CALCULATE ya que se está sustituyendo el contexto de filtro que conlleva cada tienda, por el filtro de la propia métrica, siendo este la tienda de Nueva York.

Este comportamiento no se está replicando con la métrica “TotalSalesJune” y por este motivo se debe analizar en profundidad. Al tratarse de una métrica sencilla, no es posible hacer una depuración mediante la introducción de variables en la propia métrica para ver resultados intermedios. Es por ello que la utilización de DAX Studio es la mejor opción para realizar la depuración de dicha métrica. De este modo, lo que se pretende es analizar la consulta DAX que está detrás de la visualización de la tabla compuesta por la métrica “TotalSalesJune”.

 

Desde DAX Studio, una vez conectado al Power BI en cuestión, se pueden ver las tablas y sus distintos campos y métricas a través de un “Object Browser”.

11

Si se hace click encima de las métricas con el botón derecho, se puede seleccionar la opción “Define Measure” y ver la expresión de la métrica desde DAX Studio.

5 1 - Verne Academy

La principal utilidad de esta ventana en la que aparecen las expresiones que definen las métricas, es la de ejecutar consultas DAX. Estas, a diferencia de las expresiones DAX que conforman métricas o columnas calculadas, únicamente devuelven una tabla como resultado de ejecución. Toda expresión DAX, para obtener los datos correspondientes, es transformada previamente en una consulta DAX.

Para capturar la consulta DAX que se genera al mostrar la métrica “TotalSalesJune”, se debe activar la funcionalidad “All Queries”. De esta manera se establece un servidor que captura todas las consultas que son ejecutadas en el modelo de datos de Power BI.

13 - Verne Academy

Una vez activado el servidor, lo óptimo es volver a crear las dos tablas en las que se muestran las métricas “TotalSalesNY” y “TotalSalesJune” desglosadas respectivamente por tiendas y por meses. De esta forma se capturan las consultas DAX generadas para la obtención de toda esta información.

14 - Verne Academy

Al crear las tablas, el servidor muestra las consultas DAX capturadas en la pestaña “All Queries”.

15

Si se hace click en las dos queries, se muestra en la ventana principal el código completo que componen ambas consultas. En las dos consultas, la primera parte está relacionada con un filtro que hay en el informe en el que se elimina la tienda “Main Store”.

El recuadro en rojo señala la parte de la consulta en la que se obtienen las ventas de la tienda de Nueva York con el desglose por tienda utilizando el campo “StoreDescription”.

7524-3

De la misma forma, en la siguiente captura se señala en rojo la parte de la consulta en la que se obtienen las ventas de junio junto con el desglose mensual utilizando el campo “MonthNameLong”. En este caso, también se está utilizando el campo “MonthNumber” sin que en el Power BI se esté mostrando. Esta es la principal diferencia entre las dos métricas analizadas y por ese motivo no se están comportando de la misma forma.

7524-3

Lo que está ocurriendo, es que al utilizar el campo “MonthNameLong”, internamente se está utilizando también la columna “MonthNumber” para que se muestren los meses ordenados. Por este motivo, la función CALCULATE en este caso, no puede sustituir su filtro por el contexto de filtro de cada fila en la tabla visualizada. Se debe forzar la obtención de todos los meses y no solamente el mes de junio mediante la siguiente modificación de la métrica:

TotalSalesJune2 =

CALCULATE (

SUM ( Sales[SaleIncome] );

‘Date'[MonthNameLong] = «June»;

ALL ( ‘Date'[MonthNumber] )

)

De esta forma, si creamos de nuevo la tabla con la métrica modificada y desglosando por meses, el comportamiento ahora es el correcto.

Depurar expresiones DAX studio

Esta ha sido una forma de depurar una métrica mediante la herramienta DAX Studio.

¿Quieres mejorar tus competencias con DAX y Power BI? Infórmate sobre todos nuestros cursos para aprender Power BI de cero a experto, en la modalidad que más se ajuste a tus necesidades. 

Facebook
Twitter
LinkedIn
Equipo Verne Academy
Equipo Verne Academy
Deja una respuesta

Artículos Recomendados

¿Buscas formación para

ti o para tu empresa?

Desarrolla tu talento o el de tu equipo con formaciones prácticas impartidas por expertos de la industria. Tú eliges la modalidad: formación privada, clases públicas online en directo o cursos on-demand (formación en video). Durante los cursos trabajamos sobre casos reales y soluciones aplicadas en proyectos, basadas en nuestros años de experiencia. ¿Hablamos? 😉

Carrito0
Aún no agregaste productos.
Seguir viendo
0