Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een van de meest voorkomende redenen om querydiagnose te gebruiken, is om beter te begrijpen welke bewerkingen Power Query naar de back-endgegevensbron pusht om uit te voeren. Dit proces wordt ook wel vouwen genoemd. Als u wilt zien welke bewerkingen worden teruggevouwen, kijkt u naar de meest specifieke query of query's die Power Query naar de gegevensbron in de back-end verzendt. U kunt dit proces onderzoeken voor zowel ODATA als SQL.
De bewerking die wordt beschreven in querydiagnose opnemen in Power BI voert vier stappen uit:
- Verbinding maken met de gegevensbron
- Haalt de klanttabel op
- Hiermee filtert u de Klant-ID-rol op
Sales Representative - Groeperen op
Country
Omdat de ODATA-connector momenteel geen ondersteuning biedt voor folding COUNT() naar het eindpunt en omdat dit eindpunt ook beperkt is in de bewerkingen, verwachten we niet dat die laatste stap moet worden gevouwen. Aan de andere kant is filteren relatief triviaal. Dit is precies wat we zien als we kijken naar de meest specifieke query die wordt verzonden:
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
We kunnen zien dat we de tabel filteren voor ContactTitle die is gelijk aan Sales Representative, en we retourneren slechts twee kolommen: Customer ID en Country.
Country is vereist voor de groeperingsbewerking, die lokaal moet worden uitgevoerd omdat deze niet wordt uitgevoerd door het ODATA-eindpunt. We kunnen concluderen wat wel en wat niet gevouwen wordt.
Als we ook kijken naar de specifieke en uiteindelijke query die wordt verzonden in de SQL-diagnose, zien we iets anders:
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]
U kunt zien dat Power Query een subselectie maakt waarin ContactTitle wordt gefilterd op Sales Representative, en vervolgens binnen deze subselectie op basis van Country groepeert. Al onze activiteiten zijn gestopt.
Met Query Diagnostics kunnen we onderzoeken welke bewerkingen zijn teruggevouwen. In de toekomst hopen we dat deze mogelijkheid gemakkelijker te gebruiken is.