Saltar al contenido

Advertencias al momento de estudiar DAX

En la década de los noventas recuerdo la etiqueta pegada en la portada de los discos sobre: «Parental Advisory Explicit Content» en cada uno de los álbumes de rock que me gustaban. Era un recordatorio del lenguaje utilizado en las canciones; siendo fiel al sentir de sus autores. De hecho, la censura en la televisión y otros medios hizo desastres en muchas de ellas.

Actualmente, parece que después de tantas guerras estamos con la piel curtida para no sorprendernos en lo que pudiese ser ofensivo o causar resquemor.

En la educación, si bien existen niveles, clasificaciones o separaciones ante los grados de dificultad de diversos lenguajes, resulta que por la sencilla razón de ser parte de un programa que inicialmente se piensa que es exclusivo para crear reportes, cuadros de mandos, tableros o dashboards, esconde y tiene un costo considerablemente elevado para su comprensión: hablamos de DAX.

Teoría

Para profundizar en DAX, es imperativo conocer sobre su teoría. Existen funciones que permiten acceder a nuevos contextos que, de lo contrario no se podría lograr el resultado adecuado, por ejemplo, los iteradores. En otros, se activan conceptos abstractos como la transición de contexto (inserte un western espagueti aquí), porque aún entendiendo su razón, genera gran confusión. De la misma forma, tenemos funciones únicas y exclusivas para lograr comportamientos de crear, convertir o ignorar contextos.

La teoría obligará al usuario del programa, a sentarse a estudiar y entender, luego aprender y, si la intención lo requiere dominar el tema.

Entiéndase que son aspectos diferentes: entender, aprender y dominar.

En DAX, por mucho que uno quiera ir aprendiendo a partir del ensayo y error, habrán comportamientos sin sentido alguno. Causará frustración, y será el reflejo de haber subestimado algo por su cascarón (presumo la inclinación visual del programa).

Asimismo, es importante recordarnos que, desde un punto de vista didáctico, no es muy intuitivo escribir en una barra de herramientas en blanco para luego poder ver si el resultado es el correcto en algún objeto visual 1. En otras palabras: el lenguaje desde Power BI Desktop (lo que la mayoría utiliza) no ofrece una previsualización sobre la consulta; obviemos que, desde Tabular Editor 3 o DAX Studio podemos lograrlo.

Si pensamos en el usuario inicial, es mucho más fácil digerir la referencia a celdas individuales que nos ofrece Excel.

Juntos pero no revueltos

Otra de las condiciones relevantes del lenguaje es la configuración de las sintaxis en DAX de acuerdo al tipo de consumo. Al comienzo, se piensa que todo cálculo podrá ser utilizado en cualquier contexto porque al ser dinámico, fluido y propagado en todo el modelo «Eso esta listo, siguiente en la línea» cuando en realidad, en la mayoría de los casos el principal aspecto que condiciona su creación o estructura es la siguiente pregunta:

¿Cómo será utilizado?

De acuerdo a la respuesta obtenida, entonces será necesario ajustar la métrica.

Ejemplo: la representación de totales, siendo un caso típico en el que los resultados a nivel de fila en una tabla o matriz, difieren de los totales o viceversa, requiriendo armar desde cero una tabla que contemple el nivel de granularidad adecuado para alcanzar el resultado deseado.

Ese requerimiento, léase bien, alcanzar un total correctamente, implica conocer sobre funciones de manipulación de tablas, posiblemente cambio de granularidad e iteradores.

Cambio en la manera de pensar

Con el tiempo y el estudio, la abstracción va desapareciendo porque la mente ya no asocia un cálculo a una estructura física de tabla. En cambio, la puede descomponer o volverla a diseñar bajo diferentes formas en memoria o virtuales para llegar al resultado.

En pocas palabras: se piensa en tablas, columnas y sus relaciones; solo eso.

La constante es reducir llegando a una porción de todos los datos; pero bajo el comportamiento que requiere el escenario. Esto es difícil de explicarlo con palabras; me atrevo a definirlo como: la unión de la teoría y sus conceptos, y el medio de consumo por los usuarios.

Sacar de la mente el pensamiento de una ubicación en el plano cartesiano para realizar un cálculo, llevándolo a uno virtual, temporal y con la capacidad de transmutar según su contexto es todo un reto.

Y con ustedes, la lógica booleana

Como el lenguaje tiene tantas aristas según el tipo de consumo por parte de los usuarios (omitiéndose a usted, digamos que vas a crear un modelo analítico de grado organizacional), la aplicación de lógicas es parte del día a día. En ocasiones, será necesario aplicarlas en escenarios algo intrincados para alcanzar el resultado, y ojo, no estamos hablando de cálculos necesariamente aritméticos, sino de poder llegar a un grado de personalización en la capa de visualización para que el objeto visual o gráfico se comporte de la manera deseada.

Esto quiere decir lo siguiente: la aplicación de lógicas y sus reglas hay que tenerlas muy claras.

Amoldar los datos

A mi me encantan las empanadas.

Amasar la harina de maíz P.A.N o cuando las hacemos estilo andinas con harina de trigo. Entiendo que es necesario esa etapa para llegar a la textura ideal, y así freírlas u hornearlas.

Los datos son iguales, y con DAX realizamos lo que se conoce como modelado de datos.

Lo interesante es que según el cumplimiento de las buenas practicas, postulados y técnicas aceptadas por la industria (si quieres poder escalar), estará estrechamente relacionado al nivel de complejidad requerido en el lenguaje para conseguir resultados.

Es decir, tienes que aprender sobre aspectos que no implican ni siquiera la primera página de DAX para no complicarte con sintaxis excesivamente elaboradas, extensas y toscas.

Pensar por etapas

Recientemente leí en Twitter lo siguiente: «las entrevistas enfocan mucho tiempo en escribir código en vez de debuggear o depurar. Depurar código es una de las habilidades que más busco en profesionales senior».

En este bonito lenguaje, –porque al final le tomas cariño-, existen las variables (que en realidad son constantes) para ir atacando una problemática por etapas o partes.

Las variables ofrecen la oportunidad de escribir elegantemente con la capacidad de invocar sus partes paso a paso, y así identificar posibles errores; son geniales a decir verdad.

Pero pensar de esa forma toma tiempo.

Al final, no vemos el problema de forma lineal, sino que se va comiendo poco a poco hasta lograr el resultado. Y es precisamente ese cambio, el «obligar a la mente a abordar los problemas de otra manera», lo que genera una brecha en muchos usuarios que no son precisamente programadores, sino usuarios de negocio que buscan conseguir respuestas en su día a día.

Recomiendo leer:

El orden de prelación en DAX

1.- En la actualización de Power BI Desktop noviembre 2023, agregaron una característica llamada «Vista de Consultas DAX» permitiéndonos precisamente previsualizar los datos sin la necesidad de tener que utilizar objetos visuales.

8 comentarios en «Advertencias al momento de estudiar DAX»

  1. Saludos José
    Defines, con muy buenas pinceladas, la complejidad de DAX.

    Planteas muy bien, que no es solo DAX, sino, el conjunto con el modelado, que es vital. Y si, es cambiar la forma de pensar. Por ejemplo, cuando comenzanos en desarrollo con Clipper o pascal, con la vision top down, y luego surge la programación orientada a objetos e interfaz gráfica . Fue sacar ese cassette y meter un chip. En este medio, toco sacar ese chip.

    Muy aleccionador el artículo, como siempre..
    Un gran n saludo desde Bogotá

  2. Hola José!

    Un artículo (cómo todos los tuyos), llenos de mucha analogía, conocimiento y coherencia

    Me quedo más con ésto:
    • Entender
    • Aprender y
    • Dominar

    Un abrazo!

    1. José Rafael Escalante

      Gracias Gerson por tus apreciaciones. Creo que esos tres puntos que has nombrado, seria interesante plantearlos en un próximo artículo desde la visión del lenguaje.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *