Compartir a través de


Información general sobre la evaluación de consultas y el plegado de consultas en Power Query

En este artículo se proporciona información general básica sobre cómo se procesan y convierten las consultas M en solicitudes de origen de datos.

Script M de Power Query

Cualquier consulta, ya sea creada por Power Query, escrita manualmente en el editor avanzado o escrita mediante un documento en blanco, consta de funciones y sintaxis del lenguaje de fórmulas M de Power Query. Esta consulta se interpreta y evalúa por el motor de Power Query para generar sus resultados. El script M actúa como el conjunto de instrucciones necesarias para evaluar la consulta.

Sugerencia

Puede considerar el script M como una receta que describe cómo preparar los datos.

La manera más común de crear un script M es mediante el editor de Power Query. Por ejemplo, cuando se conecta a un origen de datos, como una base de datos de SQL Server, observe en el lado derecho de la pantalla que hay una sección denominada pasos aplicados. En esta sección se muestran todos los pasos o transformaciones usados en la consulta. En este sentido, el editor de Power Query actúa como una interfaz para ayudarle a crear el script M adecuado para las transformaciones que desea, y garantiza que el código que usa es válido.

Nota:

El script M se usa en el editor de Power Query para:

  • Muestre la consulta como una serie de pasos y permita la creación o modificación de nuevos pasos.
  • Mostrar una vista de diagrama.

Captura de pantalla de los pasos aplicados y la vista de vista previa de datos.

La imagen anterior resalta la sección pasos aplicados, que contiene los pasos siguientes:

  • Origen: establece la conexión con el origen de datos. En este caso, es una conexión a una base de datos de SQL Server.
  • Navegación: navega a una tabla específica de la base de datos.
  • Se han quitado otras columnas: selecciona las columnas de la tabla que se van a conservar.
  • Filas ordenadas: ordena la tabla con una o varias columnas.
  • Filas superiores mantenidas: filtra la tabla para mantener solo algunas filas de la parte superior de la tabla.

Este conjunto de nombres de paso es una manera fácil y amigable de ver el script M que Power Query creó para ti. Hay varias maneras de ver el script M completo. En Power Query, puede seleccionar Editor avanzado en la pestaña Ver. También puede seleccionar Editor avanzado desde el grupo Consulta en la pestaña Inicio. En algunas versiones de Power Query, también puede cambiar la vista de la barra de fórmulas para mostrar el script de la consulta; para ello, vaya a la pestaña Ver y, desde el grupo Diseño, seleccione Vista de script o Script de consulta.

Captura de pantalla que contiene el script M completo y los nombres correspondientes de los pasos aplicados.

La mayoría de los nombres que se encuentran en el panel Pasos aplicados también se usan tal como está en el script M. Los pasos de una consulta se denominan con algo denominado identificadores en el lenguaje M. A veces, los caracteres adicionales se encapsulan alrededor de los nombres de paso en M, pero estos caracteres no se muestran en los pasos aplicados. Un ejemplo es #"Kept top rows", que se clasifica como un identificador entre comillas debido a estos caracteres adicionales. Se puede usar un identificador entre comillas para permitir que cualquier secuencia de cero o más caracteres Unicode se use como identificador, incluidas palabras clave, espacios en blanco, comentarios, operadores y signos de puntuación. Para obtener más información sobre los identificadores en el lenguaje M, vaya a Estructura léxica.

Los cambios que realice en la consulta a través del editor de Power Query actualizan automáticamente el script M de la consulta. Por ejemplo, con la imagen anterior como punto de partida, si cambia el nombre del paso Mantener las filas superiores para que sea Las 20 primeras filas, este cambio se actualiza automáticamente en la vista de script.

Captura de pantalla en la que el nombre del paso aplicado se cambió a 'Las 20 primeras filas', lo que también actualiza el script M.

Aunque se recomienda usar el editor de Power Query para crear todo o la mayoría del script M automáticamente, puede agregar o modificar manualmente partes del script M. Para obtener más información sobre el lenguaje M, vaya al sitio oficial de documentos para el idioma M.

Nota:

El script M, también conocido como código M, es un término que se usa para cualquier código que use el lenguaje M de Power Query. En el contexto de este artículo, el script M también hace referencia al código que se encuentra dentro de una consulta de Power Query y es accesible a través de la ventana del editor avanzado o a través de la vista de script en la barra de fórmulas.

Evaluación de consultas en Power Query

En el diagrama siguiente se explora el proceso que se produce cuando se evalúa una consulta en Power Query.

Diagrama que muestra el proceso de una evaluación de la consulta desde el script M hasta la salida final.

  1. El script M, que se encuentra en el editor avanzado, se envía al motor de Power Query. También se incluye otra información importante, como las credenciales y los niveles de privacidad del origen de datos.
  2. Power Query determina qué datos se deben extraer del origen de datos y envía una solicitud al origen de datos.
  3. El origen de datos responde a la solicitud de Power Query mediante la transferencia de los datos solicitados a Power Query.
  4. Power Query recibe los datos entrantes del origen de datos y realiza cualquier transformación mediante el motor de Power Query si es necesario.
  5. Los resultados derivados del punto anterior se cargan hacia un destino.

Nota:

Aunque en este ejemplo se muestra una consulta con una instancia de SQL Database como origen de datos, el concepto se aplica a las consultas con o sin un origen de datos.

Cuando Power Query lee el script M, ejecuta el script a través de un proceso de optimización para evaluar de forma más eficaz la consulta. En este proceso se determina qué pasos (transformaciones) de la consulta se pueden delegar al origen de datos. También determina qué otros pasos deben evaluarse mediante el motor de Power Query. Este proceso de optimización se denomina plegado de consultas, donde Power Query intenta transferir la mayor parte posible de la ejecución al origen de datos para optimizar la ejecución de la consulta.

Importante

Se siguen todas las reglas del lenguaje de fórmulas M de Power Query (también conocido como lenguaje M ). Más notablemente, la evaluación diferida desempeña un papel importante durante el proceso de optimización. En este proceso, Power Query entiende qué transformaciones específicas de la consulta deben evaluarse. Power Query también entiende qué otras transformaciones no es necesario evaluar porque no son necesarias en la salida de la consulta.

Además, cuando intervienen varios orígenes, se tiene en cuenta el nivel de privacidad de los datos de cada origen de datos al evaluar la consulta. Más información: En segundo plano del firewall de privacidad de datos

En el diagrama siguiente se muestran los pasos que tienen lugar en este proceso de optimización.

Diagrama que muestra el proceso de optimización durante la evaluación de consultas.

  1. El script M, que se encuentra en el editor avanzado, se envía al motor de Power Query. También se proporciona otra información importante, como las credenciales y los niveles de privacidad del origen de datos.
  2. El mecanismo de plegado de consultas envía solicitudes de metadatos al origen de datos para determinar las funcionalidades del origen de datos, esquemas de tabla, relaciones entre tablas diferentes en el origen de datos, etc.
  3. En función de los metadatos recibidos, el mecanismo de plegado de consultas determina qué información extraer del origen de datos y qué conjunto de transformaciones deben producirse dentro del motor de Power Query. Envía las instrucciones a otros dos componentes que se encargan de recuperar los datos del origen de datos y transformar los datos entrantes en el motor de Power Query si es necesario.
  4. Una vez que los componentes internos de Power Query reciben las instrucciones, Power Query envía una solicitud al origen de datos mediante una consulta de origen de datos.
  5. El origen de datos recibe la solicitud de Power Query y transfiere los datos al motor de Power Query.
  6. Una vez que los datos se encuentran en Power Query, el motor de transformación (también conocido como motor mashup) realiza las transformaciones que no se pudieron redirigir o delegar al origen de datos.
  7. Los resultados derivados del punto anterior se cargan hacia un destino.

Nota:

Según las transformaciones y el origen de datos utilizados en el script M, Power Query determina si transmite o almacena en búfer los datos entrantes.

Descripción general del plegado de consultas

El objetivo del plegado de consultas es descargar o delegar la mayor parte de la evaluación de una consulta a un origen de datos que sea capaz de calcular las transformaciones de la consulta.

El mecanismo de plegado de consultas logra este objetivo mediante la traducción del script M a un lenguaje que el origen de datos puede interpretar y ejecutar. A continuación, transfiere la evaluación al origen de datos y envía el resultado de esa evaluación a Power Query.

Esta operación suele proporcionar una ejecución de consulta más rápida que extraer todos los datos necesarios del origen de datos y ejecutar todas las transformaciones necesarias en el motor de Power Query.

Al usar la experiencia de obtención de datos, Power Query le guía por el proceso que, en última instancia, le permite conectarse al origen de datos. Al hacerlo, Power Query usa una serie de funciones en el lenguaje M clasificadas como funciones de acceso a datos. Estas funciones específicas usan mecanismos y protocolos para conectarse al origen de datos mediante un lenguaje que el origen de datos pueda comprender.

Sin embargo, los pasos siguientes en la consulta son los pasos o transformaciones que el mecanismo de plegado de consultas intenta optimizar. A continuación, comprueba si se pueden transferir al origen de datos en lugar de procesarse mediante el motor de Power Query.

Importante

Todas las funciones de origen de datos, que normalmente se muestran como el paso Origen de una consulta, consulta los datos en el origen de datos en su idioma nativo. El mecanismo de plegado de consultas se utiliza en todas las transformaciones que se aplican a tu consulta después de la función de origen de datos. A continuación, se pueden traducir y combinar en una única consulta de origen de datos o en tantas transformaciones como puedan delegarse al origen de datos.

En función de cómo se estructura la consulta, podría haber tres resultados posibles en el mecanismo de plegado de consultas:

  • Plegado de consultas completo: cuando todas las transformaciones de consulta se devuelven al origen de datos y se produce un procesamiento mínimo en el motor de Power Query.
  • Plegado de consultas parciales: cuando solo unas pocas transformaciones de la consulta, y no todas, se pueden devolver al origen de datos. En este caso, solo se realiza un subconjunto de las transformaciones en el origen de datos y el resto de las transformaciones de consulta se producen en el motor de Power Query.
  • Sin plegado de consultas: cuando la consulta contiene transformaciones que no se pueden traducir al lenguaje de consulta nativo del origen de datos, ya sea porque las transformaciones no se admiten o el conector no admite el plegado de consultas. En este caso, Power Query obtiene los datos sin procesar del origen de datos y usa el motor de Power Query para lograr la salida que desea mediante el procesamiento de las transformaciones necesarias en el nivel del motor de Power Query.

Nota:

El mecanismo de plegado de consultas está disponible principalmente en conectores para orígenes de datos estructurados, como, entre otros, Microsoft SQL Server y OData Feed. Durante la fase de optimización, el motor puede reordenar a veces los pasos de la consulta.

El uso de un origen de datos que tenga más recursos de procesamiento y que tenga funcionalidades de plegado de consultas puede acelerar los tiempos de carga de consultas a medida que se produce el procesamiento en el origen de datos y no en el motor de Power Query.

Para obtener ejemplos detallados de los tres posibles resultados del mecanismo de plegado de consultas, vaya a Ejemplos de plegado de consultas.

Para obtener información sobre los indicadores de plegado de consultas que se encuentran en el panel Pasos aplicados, consulte Indicadores de plegado de consultas.