Principy posouvání pomocí diagnostiky dotazů
Jedním z nejběžnějších důvodů použití diagnostiky dotazů je lepší porozumění tomu, jaké operace Power Query "odsunuly", aby je provedl back-endový zdroj dat, který se označuje také jako "skládání". Pokud chceme zjistit, co je přeložené, můžeme se podívat na to, co je "nejvýkonnější" dotaz nebo dotazy, které se odesílají do back-endového zdroje dat. Můžeme se na to podívat pro ODATA i SQL.
Operace popsaná v článku o diagnostice záznamu v podstatě dělá čtyři věci:
- Připojení ke zdroji dat
- Vezme tabulku zákazníků.
- Filtruje roli ID zákazníka na Prodejce.
- Skupiny podle země
Vzhledem k tomu, že konektor ODATA v současné době nepodporuje skládání COUNT() ke koncovému bodu, a protože je tento koncový bod ve svých operacích poněkud omezený, neočekáváme, že se tento poslední krok přeloží. Na druhou stranu je filtrování poměrně triviální. To je přesně to, co vidíme, když se podíváme na nejvýraznější dotaz vygenerovaný výše:
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
Vidíme, že vyfiltrujeme tabulku ContactTitle a rovná se "Obchodní zástupce" a vracíme jenom dva sloupce – ID zákazníka a zemi. Země je samozřejmě nutná pro operaci seskupování, která se vzhledem k tomu, že koncový bod ODATA neprovádí místně. Můžeme uzavřít, co záhyby a tady se nepřeloží.
Podobně pokud se podíváme na konkrétní a konečný dotaz v diagnostice SQL, vidíme něco trochu jiného:
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]
Tady vidíme, že Power Query vytvoří dílčí výběr, ve kterém je ContactTitle filtrovaný na Sales Representative (Obchodní zástupce) a pak seskupuje podle země v tomto dílčím výběru. Všechny naše operace se složily.
Pomocí diagnostiky dotazů můžeme prozkoumat, jaký druh operací se v budoucnu složí, doufáme, že tuto funkci usnadníme.