Plegamiento de consultas de Power Query
Este artículo está dirigido a los modeladores de datos que desarrollan modelos Power Pivot o Power BI Desktop. Describe qué es Power Query de consultas y por qué es importante en los diseños de modelos de datos. En este artículo también se describen los orígenes de datos y las transformaciones que pueden lograr el plegado de consultas y cómo determinar que las consultas Power Query se pueden plegar, ya sea total o parcialmente.
El plegado de consultas es la capacidad de una consulta Power Query generar una única instrucción de consulta para recuperar y transformar los datos de origen. El Power Query mashup se esfuerza por lograr el plegado de consultas siempre que sea posible por motivos de eficiencia.
El plegado de consultas es un tema importante para el modelado de datos por varios motivos:
- Importar tablas de modelo: La actualización de datos se realizará de forma eficaz para las tablas del modelo de importación (Power Pivot o Power BI Desktop), en términos de uso de recursos y duración de actualización.
- DirectQuery y tablas de modo de almacenamiento dual: Cada tabla de modo de almacenamiento directQuery y dual (solo Power BI) debe basarse en una consulta Power Query que se pueda plegar.
- Actualización incremental: La actualización incremental de datos (Power BI solo) será eficaz, en términos de uso de recursos y duración de la actualización. De hecho, la Power BI configuración actualización incremental le notificará una advertencia si determina que no se puede lograr el plegado de consultas para la tabla. Si no se puede lograr, se gana el objetivo de la actualización incremental. A continuación, el motor de mashup tendría que recuperar todas las filas de origen y, después, aplicar filtros para determinar los cambios incrementales.
El plegado de consultas se puede realizar para una consulta de Power Query completa o para un subconjunto de sus pasos. Cuando no se puede lograr el plegado de consultas, ya sea parcial o totalmente, el motor de mashup de Power Query debe compensarse mediante el procesamiento de transformaciones de datos. Este proceso puede implicar la recuperación de los resultados de la consulta de origen, que para grandes conjuntos de datos consume muchos recursos y es lento.
Se recomienda que se esfuercen por lograr la eficacia en los diseños de modelos al garantizar que el plegado de consultas se produzca siempre que sea posible.
Orígenes que admiten el plegado
La mayoría de los orígenes de datos que tienen el concepto de lenguaje de consulta admiten el plegado de consultas. Estos orígenes de datos pueden incluir bases de datos relacionales, fuentes de OData (incluidas las listas de SharePoint), Exchange y Active Directory. Sin embargo, los orígenes de datos como los archivos planos, blobs y web normalmente no lo hacen.
Transformaciones que pueden lograr el plegado
Las transformaciones de orígenes de datos relacionales que se pueden plegar son aquellas que se pueden escribir como una única instrucción SELECT. Una instrucción SELECT se puede construir con las cláusulas WHERE, GROUP BY y JOIN adecuadas. También puede contener expresiones de columna (cálculos) que usan funciones integradas comunes admitidas por las bases de datos SQL.
Por lo general, en la lista siguiente se describen las transformaciones que se pueden plegar.
Quitar columnas.
Cambiar el nombre de las columnas (alias de columna SELECT).
Filtrar filas, con valores estáticos o Power Query parámetros (predicados de cláusula WHERE).
Agrupación y resumen (cláusula GROUP BY).
Expandir columnas de registro (columnas de clave externa de origen) para lograr una combinación de dos tablas de origen (cláusula JOIN).
Combinación no aproximada de consultas con capacidad de plegado basadas en el mismo origen (cláusula JOIN).
Anexar consultas con capacidad de plegado basadas en el mismo origen (operador UNION ALL).
Agregar columnas personalizadas con lógica simple (expresiones de columna de la instrucción SELECT). La lógica simple implica operaciones sin complicaciones, posiblemente incluyendo el uso de funciones M que tienen funciones equivalentes en el origen de datos SQL, como funciones matemáticas o de manipulación de texto. Por ejemplo, las expresiones siguientes devuelven el componente year del valor de columna OrderDate (para devolver un valor numérico).
Date.Year([OrderDate])Pivoting and unpivoting (operadores PIVOT y UNPIVOT).
Transformaciones que impiden el plegado
Por lo general, en la lista siguiente se describen las transformaciones que impiden el plegado de consultas. Esta lista no está pensada para ser una lista exhaustiva.
Combinar consultas basadas en distintos orígenes.
Anexar (unión) consultas basadas en orígenes diferentes.
Agregar columnas personalizadas con lógica compleja. La lógica compleja implica el uso de las funciones M que no tienen funciones equivalentes en el origen de datos. Por ejemplo, las expresiones siguientes formatearán el valor de columna OrderDate (para devolver un valor de texto).
Date.ToText([OrderDate], "yyyy")Agregar columnas de índice.
Cambiar un tipo de datos de columna.
Tenga en cuenta que cuando una consulta de Power Query abarca varios orígenes de datos, la incompatibilidad de los niveles de privacidad del origen de datos puede impedir que se realice el plegado de consultas. Para obtener más información, consulte el artículo Power BI Desktop niveles de privacidad.
Determinar cuándo se puede plegar una consulta
En la Power Query editor, es posible determinar cuándo se puede plegar Power Query consulta. En el panel Configuración consulta, al hacer clic con el botón derecho en el último paso aplicado, si la opción Ver consulta nativa está habilitada (no está en gris), se puede plegar toda la consulta.

Nota
La opción Ver consulta nativa solo está disponible para determinadas bases de datos relacionales SQL generar conectores. Por ejemplo, no funciona para los conectores basados en OData, aunque se produzca un plegado en el back-end. La característica Diagnóstico de consultas es la mejor manera de ver qué plegado se ha producido para los conectores que no son de SQL (aunque los pasos que se plegan no se indican explícitamente, solo verá la dirección URL resultante que se — generó).
Para ver la consulta plegado, seleccione la opción Ver consulta nativa. A continuación, se le presentará la consulta nativa que Power Query usará para los datos de origen.

Si la opción Ver consulta nativa no está habilitada (en gris), esto es una evidencia de que no todos los pasos de consulta se pueden plegar. Sin embargo, podría significar que se puede plegar un subconjunto de pasos. Al trabajar hacia atrás desde el último paso, puede comprobar cada paso para ver si la opción Ver consulta nativa está habilitada. Si es así, ha aprendido dónde, en la secuencia de pasos, ya no se podría lograr ese plegado de consultas.

Pasos siguientes
Para obtener más información sobre el plegado de consultas y artículos relacionados, consulte los siguientes recursos: