El diablo está en los detalles Conviértete en un campeón de Power BI pensando fuera de lo convencional.

El diablo está en los detalles. Sé un campeón de Power BI pensando de manera no convencional.

Foto de Alice Dietrich en Unsplash

Hace unas semanas, estaba trabajando en la optimización del rendimiento del informe de Power BI para uno de mis clientes. La página del informe se cargaba muy lenta (más de 15 segundos). Para darte un poco de contexto: el informe utiliza una conexión en vivo a un modelo tabular alojado en SSAS Tabular 2016.

Sigue leyendo y verás por qué muchas veces el diablo está en los detalles y cómo pensar de manera creativa puede ayudarte a convertirte en un verdadero campeón de Power BI 🙂

Imagen del autor

Permíteme explicarte rápidamente la ilustración anterior. Hay un gráfico de líneas y columnas agrupadas, donde las cuatro líneas representan la elección del usuario de los segmentadores a la izquierda (umbral de informes y tres capas), mientras que las columnas son el monto total de ventas. Los datos se desglosan por año y producto. Cada una de las líneas se calcula utilizando DAX (por cierto, no hay una función SELECTEDVALUE disponible en SSAS 2016).

He activado el Analizador de rendimiento, he tomado la consulta DAX y la he ejecutado en el DAX Studio:

Imagen del autor

Como puedes ver, la consulta tarda 13.5 segundos en ejecutarse (con la caché borrada antes de la ejecución), y la mayor parte del tiempo se gasta en el Motor de fórmulas (76%). Esto es importante, porque compararemos este resultado con una versión mejorada de la página del informe.

Entonces, ¿qué haría un desarrollador experimentado de Power BI para optimizar este escenario? ¿Reescribir DAX? ¡INCORRECTO!

En caso de que no lo sepas, Power BI te ofrece una función subestimada, o pensemos en ella como un “héroe anónimo”, que se llama el panel de análisis.

Imagen del autor

La mayoría de nosotros obviamente pasamos la mayor parte de nuestro tiempo de desarrollo en Power BI en los otros dos paneles: datos y formato. Por lo tanto, te sorprendería saber cuántos desarrolladores de Power BI ni siquiera conocen este tercer panel, o incluso si lo conocen, lo usan muy raramente.

Sin entrar en detalles, este panel te permite agregar ingredientes analíticos adicionales a tus visualizaciones, como líneas de mínimo, máximo, promedio, mediana, barras de error, etc. ¡Dependiendo del tipo de visualización, no todas las opciones están disponibles! Y esto era importante en mi caso de uso.

Una vez que abrí el panel de análisis, solo estaban disponibles las barras de error:

Imagen del autor

En esencia, la idea aquí es, dado que estas cuatro líneas no cambian en función de los números en la visualización misma (tienen un valor constante basado en la selección del slicer), aprovechar la función de línea constante del panel de análisis. Dado que no hay una línea constante disponible en la visualización de gráfico de líneas y columnas agrupadas, duplicaremos nuestra visualización y cambiaremos su tipo a un gráfico de columnas agrupadas regular.

Imagen del autor

Como puedes ver, aquí están los “números”, pero nos faltan nuestras líneas. Cambiemos al panel de análisis y creemos 4 líneas constantes, cada una basada en la medida DAX producida por la selección del slicer:

Imagen del autor

El primer paso es agregar una línea constante. A continuación, expande la propiedad de Línea y como valor, elige el botón “fX”, que te permite establecer el valor de la línea constante basado en una expresión (en nuestro caso, esa es la expresión generada por la medida DAX). Repite el proceso para las cuatro líneas.

Te recuerdo una vez más, ¡ten en cuenta que no he modificado el código DAX en absoluto!

Una vez que desactivé el eje Y, así es como se ve mi visualización “gemela”:

Imagen del autor

Prácticamente es la misma, ¿verdad?

Bien, ahora veamos el rendimiento de esta visualización:

Imagen del autor

¡Es más de 5 segundos más rápido que la original! Si comparas detenidamente la captura de pantalla anterior de DAX Studio, notarás que el número de consultas del Motor de Almacenamiento es exactamente el mismo que en el caso anterior (y el tiempo del MA es prácticamente el mismo), lo que significa que el Motor de Almacenamiento tiene exactamente la misma cantidad de trabajo para recuperar los datos.

La diferencia clave está en los tiempos del Motor de Fórmulas: a diferencia de la visualización original, donde el 75% del tiempo total de la consulta se gastaba en el MF, esta vez se reduce a menos del 60%.

Me dio curiosidad ver por qué sucede eso y cuál es la diferencia principal entre los dos planes de consulta generados por el Motor de Fórmulas.

Consulta más lenta - parte del código DAX
Consulta más rápida - parte del código DAX

La “única” diferencia entre los dos planes de consulta – en la versión más lenta se crearon dos tablas virtuales: una para calcular el valor de la “columna” en la visualización (_ScopedCoreI0) y otra para calcular el valor de las líneas en la misma visualización (_ScopedCoreDM0). Finalmente, estas dos tablas se unieron utilizando la función NATURALLEFTOUTERJOIN.

En la versión más rápida, no hay una segunda tabla que calcule el valor de las líneas. Además, las medidas que calculan el valor de las líneas se envolvieron con la función IGNORE, que etiqueta las medidas dentro de la expresión SUMMARIZECOLUMNS para que se omitan en la evaluación de las filas no vacías.

Conclusión

Como has presenciado, cambiar el tipo de visualización, combinado con el uso del “héroe desconocido”, el panel de análisis, aseguró una mejora significativa en el rendimiento en este escenario. No es por casualidad que la gente dice que “el diablo está en los detalles” – por lo tanto, más a menudo de lo que crees, pensar de manera creativa y fuera de lo común te llevará a algunas soluciones creativas.

¡Gracias por leer!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Libre de Limitaciones La Validación de las Alucinaciones de la Máquina en el MoMA

El científico de datos principal en Refik Anadol Studio, Christian Burke, relata su experiencia trabajando en la exhi...

Inteligencia Artificial

Investigadores demuestran pagos digitales cuánticos 'incondicionalmente seguros

La investigación representa un posible avance en las comunicaciones cuánticas y, potencialmente, el comienzo de la er...

Inteligencia Artificial

Investigación en Stanford presenta PointOdyssey un conjunto de datos sintético a gran escala para el seguimiento de puntos a largo plazo

Los conjuntos de datos anotados a gran escala han servido como una autopista para crear modelos precisos en varias ta...

Investigación

El Gran Desafío Inaugural de J-WAFS tiene como objetivo desarrollar variantes de cultivos mejorados y llevarlos del laboratorio a la tierra.

Matt Shoulders liderará un equipo interdisciplinario para mejorar el RuBisCO, la enzima de la fotosíntesis considerad...

Inteligencia Artificial

La Associated Press revela pautas de IA para periodistas

El rápido avance de la inteligencia artificial (IA) ha allanado el camino para su integración en diversas industrias,...

Inteligencia Artificial

Un cambio de paradigma en el desarrollo de software los agentes de inteligencia artificial AI de GPTConsole abren nuevos horizontes

En una industria donde el cambio es la única constante, GPTConsole ha presentado un trío de agentes de IA que destaca...