Zdieľať cez


Informácie o postupných posúvaní pomocou funkcie Diagnostika dotazov

Jedným z najbežnejších dôvodov na používanie diagnostiky dotazov je lepšie pochopenie toho, aké operácie power Query posunul nadol, aby ich mohol vykonať serverový zdroj údajov, ktorý sa označuje aj ako "skladanie". Ak chceme zistiť, čo je zbalené, môžeme sa pozrieť na "najšpecifickýchší" dotaz alebo dotazy, ktoré sa odošlú do serverového zdroja údajov. Môžeme sa na to pozrieť pre ODATA aj SQL.

Operácia, ktorá bola popísaná v článku o diagnostike nahrávania, vykonáva v podstate štyri veci:

  • Pripojenie zdroja údajov
  • Uchopí tabuľku zákazníkov
  • Filtruje rolu ID zákazníka na zástupcu predaja.
  • Skupiny podľa krajiny

Pretože konektor ODATA v súčasnosti nepodporuje skladanie funkcie COUNT() do koncového bodu a keďže tento koncový bod je vo svojich operáciách trochu obmedzený, neočakávame, že by sa posledný krok postupne posúval. Na druhej strane, filtrovanie je pomerne jednoduché. To je presne to, čo vidíme, ak sa pozrieme na najpresnenejší dotaz, ktorý je vynechaný vyššie:

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 tabuľku ContactTitle filtrujeme tak, aby sa rovnla stĺpcu Obchodný zástupca a vraciame len dva stĺpce – ID zákazníka a Krajina. Krajina je, samozrejme, potrebná pre operáciu zoskupenia, ktorá sa vzhľadom na to, že sa nevykonáva koncovým bodom ODATA, musí vykonať lokálne. Môžeme uzavrieť, čo tu záhyby a nezloží tu.

Podobne, ak sa pozrieme na konkrétny a posledný dotaz vynechaný v diagnostike SQL, vidíme niečo trochu 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]

Tu vidíme, že Power Query vytvorí podvýber, v ktorom sa položka ContactTitle vyfiltruje na 'Obchodného zástupcu', a potom pri tomto podvýbere zoskupí podľa krajiny. Všetky naše operácie sa ložili.

Pomocou funkcie Diagnostika dotazov môžeme preskúmať, aký druh operácií sa dá v budúcnosti postupne používať. Veríme, že táto funkcia sa bude dať jednoduchšie používať.