Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um dos motivos mais comuns para usar o Diagnóstico de Consulta é entender melhor quais operações o Power Query delega à fonte de dados de back-end para execução. Esse processo também é conhecido como dobragem. Para ver quais operações têm query folding, observe a consulta mais específica ou as consultas que o Power Query envia à fonte de dados de backend. Você pode examinar esse processo para ODATA e SQL.
A operação descrita em Gravando diagnósticos de consulta no Power BI executa quatro etapas:
- Conecta-se à fonte de dados
- Recupera a tabela do cliente
- Filtra a função ID do Cliente para
Sales Representative - Agrupar por
Country
Como o conector ODATA atualmente não oferece suporte para delegar COUNT() ao endpoint, e como esse endpoint também é limitado em suas operações, não esperamos que essa etapa final seja delegada. Por outro lado, a filtragem é relativamente trivial. Isso é exatamente o que vemos se examinarmos a consulta mais 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 a tabela por ContactTitle, que é igual a Sales Representative, e estamos retornando apenas duas colunas: Customer ID e Country.
Country é necessário para a operação de agrupamento, que deve ser executada localmente porque não é executada pelo ponto de extremidade ODATA. Concluímos aqui o que dobra e o que não dobra.
Da mesma forma, se examinarmos a consulta específica e final emitida no diagnóstico do SQL, veremos algo ligeiramente 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]
Você pode ver que o Power Query cria uma subseleção na qual ContactTitle é filtrado para Sales Representative e, em seguida, agrupa por Country nessa subseleção. Todas as nossas operações encerraram.
Usando o Diagnóstico de Consulta, podemos examinar que tipo de operações dobradas. No futuro, esperamos tornar essa funcionalidade mais fácil de usar.