≡En resumen
- El query folding convierte los pasos que haces en el editor de Power Query en una consulta nativa, normalmente SQL, que ejecuta la fuente.
- Microsoft distingue tres resultados: plegado completo, parcial o ninguno; cuanto más se pliega, menos datos viajan.
- Las fuentes con motor de consultas (SQL Server, OData, muchas bases de datos) lo admiten; CSV y Excel no.
- El orden de los pasos importa: un paso que no se pliega impide que se plieguen los que vienen detrás.
- La actualización incremental de Power BI depende de que el filtro por fechas se pliegue en la fuente.
01 ¿Qué es el query folding?
El nombre viene del inglés fold, plegar: los pasos que ves en el panel «Pasos aplicados» se «pliegan» dentro de una única consulta nativa. Según la documentación de Microsoft Learn, Power Query intenta ejecutar en la fuente todo lo posible y evalúa en su propio motor (el mashup engine) solo lo que no puede delegar.
Es un concepto central en cualquier proyecto de business intelligence (BI) con Microsoft: de él depende que un informe tarde segundos o minutos en actualizarse, y que la puerta de enlace o la capacidad de Fabric no se saturen.
02 Cómo funciona el plegado de consultas en Power Query
-
1
Escribes o generas el script M
Cada clic en el editor (quitar columnas, filtrar, ordenar) añade un paso al script M de la consulta.
-
2
Power Query pide metadatos
El mecanismo de plegado consulta a la fuente qué capacidades tiene, qué esquema tienen las tablas y cómo se relacionan.
-
3
Decide qué se delega
Con esos metadatos separa los pasos que la fuente puede ejecutar de los que tendrá que resolver el motor de Power Query.
-
4
Envía la consulta nativa
Los pasos plegables se combinan en una sola petición en el lenguaje de la fuente, por ejemplo SQL.
-
5
Transforma el resto y carga
El motor de Power Query aplica los pasos no plegados sobre los datos recibidos y carga el resultado en el modelo.
03 Plegado completo, parcial o sin plegado
| Resultado | Qué hace la fuente | Qué hace Power Query |
|---|---|---|
| Plegado completo | Ejecuta todas las transformaciones | Casi nada: recibe el resultado final |
| Plegado parcial | Ejecuta los pasos que se pueden traducir a su lenguaje | Procesa los pasos restantes |
| Sin plegado | Devuelve los datos de origen sin transformar | Procesa todas las transformaciones |
6 min 1 s
Consulta de ejemplo sin plegado sobre la tabla fact_Sale
Fuente: Microsoft Learn, ejemplos de query folding
3 min 4 s
La misma salida con plegado parcial
Fuente: Microsoft Learn, ejemplos de query folding
31 s
La misma salida con plegado completo
Fuente: Microsoft Learn, ejemplos de query folding
10 frente a 3,6 millones
Filas pedidas a la fuente con plegado completo frente a sin plegado
Fuente: Microsoft Learn, ejemplos de query folding
En ese ejemplo oficial se quieren las 10 últimas ventas con cinco columnas. Sin plegado, Power Query descarga millones de filas para quedarse con diez; con plegado completo, la base de datos resuelve el TOP y el orden, y solo viajan diez filas.
04 Qué fuentes de datos admiten query folding
El plegado depende de tres cosas: el conector, la fuente y las transformaciones de la consulta. Las fuentes estructuradas con motor de consultas propio lo admiten con frecuencia; los archivos planos no, porque no hay nadie «al otro lado» que pueda ejecutar un filtro.
Suelen plegar
Bases de datos relacionales como SQL Server, feeds OData y almacenes analíticos como un data warehouse en la nube.
Pliegan según el conector
Conexiones ODBC u OData pueden decidirlo en tiempo de ejecución; el indicador aparece como «podría plegarse».
No pliegan
CSV, libros de Excel y otras fuentes sin motor de consultas: todo se transforma en Power Query.
Si trabajas con volúmenes grandes, mover los datos desde archivos a una base de datos o a un servicio como Google BigQuery o un data warehouse es a menudo la mejora de rendimiento más rentable, precisamente porque habilita el plegado.
05 Cómo saber si una consulta se pliega
| Indicador | Qué significa |
|---|---|
| Plegado | La fuente evalúa la consulta hasta ese paso |
| Sin plegado | Parte de la consulta hasta ese paso se evalúa fuera de la fuente |
| Podría plegarse | Se decide en tiempo de ejecución; poco habitual, típico de ODBC u OData |
| Opaco | El plan no es concluyente, por ejemplo con una tabla constante |
| Desconocido | No hay plan de consulta, por error o porque el paso no devuelve una tabla |
- ✓Revisa los indicadores junto a cada paso aplicado (Power Query Online y dataflows).
- ✓Abre el plan de consulta para ver qué nodos se ejecutan en la fuente y cuáles en el motor.
- ✓Haz clic derecho sobre un paso y usa «Ver consulta nativa» cuando el conector lo permita.
- ✓Si la opción aparece atenuada en un paso, ese paso ya no se está plegando.
06 Qué rompe el plegado y cómo mantenerlo
Filtra y quita columnas primero
Pon al principio los pasos que se traducen fácil a SQL: elegir columnas, filtrar filas, agrupar. Deja al final los pasos exóticos.
Cuidado con la consulta nativa escrita a mano
Si pegas tu propio SQL, lo que viene detrás no se pliega salvo que uses Value.NativeQuery con la opción EnableFolding = true.
Evita mezclar fuentes pronto
Combinar tablas de orígenes distintos obliga a traer datos al motor; los niveles de privacidad también influyen.
Revisa las transformaciones personalizadas
Columnas de índice, funciones M complejas o pasos que la fuente no entiende suelen cortar el plegado.
07 Query folding vs pushdown y optimizador de consultas
Fuera del mundo Microsoft verás ideas parecidas con otros nombres. Conviene no mezclarlas, porque cada una ocurre en una capa distinta: el plegado lo decide Power Query antes de hablar con la fuente; el optimizador actúa dentro del motor de base de datos una vez recibe la consulta.
| Concepto | Dónde ocurre | Qué hace |
|---|---|---|
| Query folding | Power Query (Power BI, Excel, Fabric) | Traduce pasos M a la consulta nativa de la fuente |
| Pushdown de predicados | Motores de consulta y conectores en general | Empuja filtros y proyecciones hacia la fuente para leer menos datos |
| Optimizador de consultas | Dentro del gestor de base de datos | Elige el plan de ejecución más eficiente para una consulta SQL recibida |
| Modo DirectQuery | Modelo semántico de Power BI | Envía consultas a la fuente cada vez que se usa un visual; Microsoft recomienda comprobar que los pasos se pliegan |
08 Ejemplo práctico de query folding
Una tienda online conecta Power BI a su base de datos de pedidos. La consulta original importaba la tabla completa, añadía una columna de índice y después filtraba el último año: la columna de índice rompía el plegado y cada actualización descargaba todo el histórico.
Al mover el filtro de fechas y la selección de columnas al principio, y eliminar el índice innecesario, «Ver consulta nativa» muestra un único SELECT ... WHERE. El resultado se alimenta de muchas menos filas y el dashboard de ventas se refresca en una fracción del tiempo. Si además necesitas integrar ese informe en tu propia plataforma, es un trabajo típico de desarrollo de aplicaciones web a medida o de un desarrollo de software SaaS con analítica integrada.
Preguntas frecuentes sobre Query folding
Significa plegado de consultas: Power Query traduce los pasos de transformación al lenguaje nativo de la fuente, como SQL, para que los ejecute la propia base de datos en lugar de su motor.
Sirve para que las actualizaciones sean más rápidas y ligeras: se transfieren menos filas y columnas, se aprovecha la potencia de la base de datos y es requisito práctico para la actualización incremental.
Mira los indicadores de plegado junto a cada paso en Power Query Online, abre el plan de consulta o haz clic derecho en un paso y elige «Ver consulta nativa» si el conector lo admite.
No. Los archivos CSV o Excel no tienen motor de consultas, así que todas las transformaciones se hacen dentro de Power Query.
En el completo la fuente ejecuta todas las transformaciones; en el parcial solo las que puede traducir a su lenguaje y Power Query procesa el resto.
El término se usa sobre todo en Power Query. En otros motores y conectores la idea equivalente se suele llamar pushdown: llevar filtros y columnas a la fuente para leer menos datos.
Porque esa transformación no tiene equivalente en el lenguaje de la fuente o el conector no sabe traducirla. Desde ese paso, todo lo que sigue se evalúa en Power Query.
Fuentes consultadas
Sobre el autor
Germán Gutiérrez
Development Manager en appyweb
Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.
Ver perfil en LinkedIn ↗