Descripción del plegado mediante diagnósticos de consultas

Una de las razones más comunes para usar Diagnóstico de consultas es comprender mejor qué operaciones Power Query delega en el origen de datos del back-end para realizarlas. Este proceso también se conoce como plegado. Para ver qué operaciones se pliegan, mire la consulta o consultas más específica que Power Query envía al origen de datos de back-end. Puede examinar este proceso para ODATA y SQL.

La operación descrita en Grabación de diagnósticos de consultas en Power BI realiza cuatro pasos:

  • Se conecta al origen de datos
  • Obtiene la tabla de clientes
  • Filtra el rol de ID de cliente hasta Sales Representative
  • Agrupar por Country

Dado que el conector OData no admite actualmente delegar COUNT() al extremo y que este extremo también está limitado en sus operaciones, no esperamos que ese paso final se pueda plegar. Por otro lado, el filtrado es relativamente trivial. Esto es exactamente lo que vemos si observamos la consulta más específica emitida:

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

Podemos ver que estamos filtrando la tabla por ContactTitle, que es igual a Sales Representative, y solo devolvemos dos columnas: Customer ID y Country. Country es necesario para la operación de agrupación, que se debe realizar localmente porque el punto de conexión de ODATA no lo realiza. Podemos concluir qué se pliega y qué no se pliega aquí.

De forma similar, si examinamos la consulta específica y final emitida en los diagnósticos de SQL, vemos algo ligeramente diferente:

    count(1) as [Count]
from 
(
    select [_].[Country]
    from [dbo].[Customers] as [_]
    where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]

Puede ver que Power Query crea una subselección donde ContactTitle se filtra a Sales Representativey, a continuación, agrupa por Country en esta subselección. Todas nuestras operaciones se cerraron.

Con Diagnóstico de consultas, podemos examinar qué tipo de operaciones se han plegado. En el futuro, esperamos que esta funcionalidad sea más fácil de usar.