Pochopte skladanie pomocou diagnostiky dotazov

Jedným z najčastejších dôvodov používania diagnostiky dotazov je lepšie pochopiť, aké operácie Power Query posiela do zadného zdroja dát. Tento proces je známy aj ako skladanie. Aby ste videli, ktoré operácie sa skladajú, pozrite sa na najšpecifickejší dotaz alebo dotazy, ktoré Power Query posiela do zdroja dát na backende. Tento proces môžete preskúmať pre ODATA aj SQL.

Operácia popísaná v Recording query diagnostics in Power BI vykonáva štyri kroky:

  • Pripája sa k dátovému zdroju
  • Vyzdvihne zákaznícky stôl
  • Filtruje rolu Customer ID na Sales Representative
  • Skupiny podľa Country

Keďže konektor ODATA momentálne nepodporuje skladanie COUNT() na koncový bod a keďže aj tento koncový bod je obmedzený vo svojich operáciách, neočakávame, že sa tento posledný krok zloží. Na druhej strane, filtrovanie je relatívne triviálne. Presne toto vidíme, ak sa pozrieme na najšpecifickejší vyslaný dotaz:

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 filtrujeme tabuľku na ContactTitle , ktorá sa rovná , Sales Representativea vraciame len dva stĺpce: Customer ID a Country. Country je potrebná pre operáciu zoskupovania, ktorá musí byť vykonaná lokálne, pretože nie je vykonávaná koncovým bodom ODATA. Tu môžeme usúdiť, čo sa skladá a čo nie.

Podobne, ak sa pozrieme na konkrétny a záverečný dotaz vydaný v SQL diagnostike, vidíme niečo mierne odlišné:

    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]

Vidíte, že Power Query vytvára podvýber, kde ContactTitle je filtrovaný na Sales Representative, a potom zoskupuje na Country tento podvýber. Všetky naše operácie zanikli.

Pomocou Query Diagnostics môžeme skúmať, aké operácie sa zrušili. V budúcnosti dúfame, že túto schopnosť sprístupníme jednoduchšie.