Claves del PL-300: Una Inmersión Profunda en Query Folding y los Modos de Almacenamiento

Written by:

El pasado viernes 10 de octubre, en nuestra séptima clase en vivo para la Certificación PL-300 de NamasData , nos sumergimos en uno de los temas más densos y, a la vez, más cruciales de Power BI: la conectividad con bases de datos, los modos de almacenamiento y la optimización del rendimiento. Sé que era viernes y el tema era exigente, pero la energía y el compromiso de los alumnos fue increíble.

Hoy quiero compartir un resumen detallado de lo que vimos, porque dominar estos conceptos no solo es vital para aprobar el examen, sino que es lo que marca la diferencia entre un informe funcional y una solución de Business Intelligence robusta y escalable. Si no estás seguro de tu nivel actual, te recomiendo hacer nuestro test de nivel gratuito antes de sumergirte en este artículo.

El Origen de Todo: La Conexión a SQL Server

Todo comienza con la conexión a los datos. En la clase, nos conectamos a una base de datos SQL Server, y la primera ventana que aparece ya contiene preguntas de examen.

Al configurar la conexión, nos encontramos con dos campos principales:

  • Servidor: Es la dirección de la base de datos. Este campo es siempre obligatorio.
  • Base de datos: El nombre específico de la base de datos. Sorprendentemente, para el conector de SQL Server, este campo es opcional. Si lo dejas en blanco, Power BI te mostrará todas las bases de datos disponibles en ese servidor, permitiéndote incluso combinar tablas de diferentes bases de datos en una sola carga.

Justo debajo, encontramos la primera gran decisión estratégica: el Modo de conectividad de datos. Aquí elegimos entre Importar y DirectQuery. Hablaremos de esto en profundidad más adelante, pero esta elección define cómo Power BI interactuará con tus datos.

En las «Opciones avanzadas», hay una casilla que fue la protagonista silenciosa de nuestra clase: Incluir columnas de relación. Mantenerla activa es lo que nos permite realizar algunas de las transformaciones más eficientes dentro de Power Query, como veremos a continuación.

Contenido del artículo

De un Modelo «Copo de Nieve» a una «Estrella» sin Esfuerzo

Una vez en Power Query, nos encontramos con un modelo de datos tipo «copo de nieve» (snowflake schema). Esto ocurre cuando una tabla de dimensiones se conecta a otra tabla de dimensiones en lugar de hacerlo directamente a la tabla de hechos (nuestra tabla de ventas, en este caso). Por ejemplo, teníamos la tabla Venta conectada a Producto, y Producto, a su vez, conectada a Subcategoría, que se conectaba con Categoría.

Aunque es un modelo válido, para Power BI es mucho más eficiente trabajar con un modelo en estrella (star schema), donde todas las tablas de dimensiones se conectan directamente a la tabla de hechos.

La forma tradicional de solucionar esto sería usar la función «Combinar consultas» (Merge Queries) varias veces para integrar la información de la categoría y subcategoría en la tabla de producto. Sin embargo, gracias a que mantuvimos activada la opción «Incluir columnas de relación», Power Query nos ofrece una vía mucho más directa.

Al lado de nuestras columnas habituales, aparecieron columnas especiales con el valor [Table] o [Value]. Estas no son columnas de datos, sino puertas de enlace a las tablas relacionadas. Con solo hacer clic en el botón de expandir sobre la columna Subcategoría dentro de nuestra tabla Producto, pudimos traer no solo el nombre de la subcategoría, sino también la información de la categoría principal, aplanando el modelo en cuestión de segundos. Esto simplifica enormemente el modelo y mejora el rendimiento.

Contenido del artículo

Si quieres profundizar en los fundamentos del modelado de datos, te invito a explorar nuestra Biblioteca de recursos gratuita.

El Secreto del Rendimiento: Entendiendo el Query Folding

Aquí es donde la magia realmente sucede. Cuando aplicamos transformaciones en Power Query sobre una base de datos como SQL Server, no siempre es Power Query quien hace el trabajo pesado. Este proceso, conocido como plegado de consultas o Query Folding, es la capacidad de Power Query para traducir los pasos que aplicamos en la interfaz (filtros, agrupaciones, etc.) al lenguaje nativo de la base de datos de origen (en este caso, SQL).

En lugar de traerse millones de filas a Power BI para luego filtrarlas, Power Query le envía una instrucción a la base de datos diciendo: «Oye, dame ya filtrados solo los productos de color amarillo». La base de datos, que está optimizada para estas tareas, ejecuta la orden y devuelve solo el resultado. Esto es infinitamente más eficiente.

¿Cómo sabemos si el Query Folding está activo? Hacemos clic derecho en el último paso aplicado y, si la opción «Ver consulta nativa» está habilitada, significa que el plegado está funcionando.

¡Cuidado! No todas las transformaciones son «plegables». Algunas acciones, como cambiar el tipo de dato de un número decimal a un número entero fijo, pueden «romper» el plegado. A partir del paso donde se rompe, el resto de las transformaciones las realizará el motor de Power Query, lo que puede ser menos eficiente. Por ello, una buena práctica es ordenar los pasos, dejando aquellos que rompen el plegado para el final.

Import vs. DirectQuery: La Batalla por los Datos

Ahora volvamos a la decisión crucial: ¿Importar o DirectQuery?

  • Modo Importar: Es el modo por defecto. Power BI se conecta a la fuente, copia los datos y los almacena dentro del propio archivo .pbix en un formato columnar altamente comprimido (el motor VertiPaq).
  • Ventajas del modo Importar: El rendimiento de los informes es rapidísimo, ya que todas las consultas se resuelven con la información guardada en memoria.
  • Desventajas del modo Importar: El tamaño del archivo puede crecer considerablemente. Los datos son una foto estática del momento de la última actualización; no es en tiempo real.
  • Modo DirectQuery: Power BI establece una conexión en vivo con la base de datos. Los datos no se almacenan en el archivo .pbix.
  • Ventajas del modo DirectQuery: El archivo .pbix es muy pequeño. Permite trabajar con volúmenes de datos que serían imposibles de importar y ofrece datos casi en tiempo real.
  • Desventajas del modo DirectQuery: Cada interacción en el informe (hacer clic en un filtro, cambiar un gráfico) envía una consulta a la base de datos de origen, lo que puede hacer que la experiencia del usuario sea más lenta. Además, tiene un gran impacto en el sistema de origen, por lo que debe usarse con precaución y en coordinación con los administradores de la base de datos.
Contenido del artículo

Durante la clase, vimos la diferencia de forma práctica: un archivo en modo Importar ocupaba casi 15 MB, mientras que su gemelo en DirectQuery apenas llegaba a los 200 KB. Además, en DirectQuery no tenemos la «Vista de datos», porque los datos, simplemente, no están ahí.

Modelos Compuestos y el Modo Dual: Lo Mejor de Ambos Mundos

¿Y si no queremos elegir? Aquí es donde entran en juego los modelos compuestos. Power BI nos permite tener en un mismo informe tablas en modo Importar y tablas en modo DirectQuery.

Imaginemos un escenario común: tenemos una tabla de Ventas gigantesca con millones de transacciones diarias que queremos ver en tiempo real (candidata a DirectQuery) y una tabla de Presupuesto que se actualiza mensualmente (candidata a Importar).

Pero, ¿qué pasa con las dimensiones que se conectan a ambas, como Calendario o Producto? Si las dejamos en DirectQuery, los informes de presupuesto serán lentos. Si las ponemos en Importar, rompemos la relación en tiempo real con las ventas.

La solución es el Modo Dual. Una tabla en modo Dual es un camaleón: actúa como Importar cuando se le consulta junto a otras tablas de Importar, y como DirectQuery cuando se le consulta con tablas de DirectQuery. Power BI elige automáticamente la ruta más eficiente para cada consulta.

Contenido del artículo

En nuestro modelo, al poner la tabla Canal en modo Dual:

  • Al analizar Presupuesto por Canal, la consulta es rapidísima, ya que ambas tablas actúan como si estuvieran importadas.
  • Al analizar Ventas por Canal, la consulta va a la base de datos para obtener los datos en tiempo real, y ambas tablas actúan en modo DirectQuery.

Llevando DirectQuery al Límite: Actualización y Detección de Cambios

Para los escenarios que requieren datos casi en tiempo real, DirectQuery ofrece la actualización automática de página. Podemos configurar una página del informe para que se actualice sola cada pocos segundos o minutos.

Sin embargo, esto puede generar una carga constante en la base de datos. Una solución más inteligente, disponible en licencias Premium, es la detección de cambios. En lugar de refrescar todo el informe, configuramos una medida ligera (por ejemplo, un recuento de filas o una suma total). Power BI consulta únicamente esa medida cada pocos segundos. Solo si el valor de esa medida cambia, lanza la actualización completa de los objetos visuales. Es una forma mucho más eficiente de mantener los informes al día sin sobrecargar los sistemas.

Contenido del artículo

Conclusión

Como vimos en clase, la forma en que nos conectamos y modelamos nuestros datos tiene un impacto monumental en el rendimiento, la escalabilidad y la funcionalidad de nuestros informes. No se trata solo de crear gráficos bonitos, sino de construir soluciones eficientes.

Estos conceptos son el corazón de muchos de los desafíos que encontrarás en el mundo profesional y, por supuesto, en el examen de certificación. Si te sientes abrumado, ¡no te preocupes! Puedes empezar con nuestra iniciativa «Power BI sin miedo» para asentar las bases.

Para los que están listos para llevar sus habilidades al siguiente nivel, les invito a poner todo esto en práctica con nuestros desafíos gratuitos de Power BI. Y si tu objetivo es la certificación, toda la información de nuestro programa formativo está en pl300.namasdata.com. Una vez certificado, el siguiente paso es demostrar tus habilidades, y para eso, te recomiendo nuestro curso de creación de portafolio profesional.

¡Gracias por acompañarme en esta clase tan intensa! Nos vemos en la próxima.

Deja un comentario

Descubre más desde Blog de Alex Ayala

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo