Vizualizácia a interpretácia diagnostiky dotazov v službe Power BI

Úvod

Po zaznamenaní diagnostiky, ktorú chcete použiť, ďalším krokom je schopnosť pochopiť, čo hovoria.

Je užitočné mať dobré pochopenie toho, čo presne každý stĺpec v schéme diagnostiky dotazu znamená, čo nebudeme opakovať v tomto krátkom tutoriále. Je tuúplný zápis.

Všeobecne platí, že pri budovaní vizualizácií je lepšie použiť úplnú podrobnú tabuľku, pretože bez ohľadu na to, koľko riadkov to je, pravdepodobne sa pozeráte, je nejaký druh zobrazenia toho, ako sa zvyšuje čas strávený v rôznych zdrojoch alebo čo bol emitovaný natívny dotaz.

Ako je uvedené v našom článku o nahrávaní diagnostiky, pracujem s OData a SQL stopy pre rovnakú tabuľku (alebo veľmi takmer tak) - tabuľku Zákazníci zo spoločnosti Northwind. Zameriam sa najmä na bežnú otázku od našich zákazníkov, ako aj na jednu z najľahšie interpretovaných sád stôp: úplné obnovenie dátového modelu.

Vytváranie vizualizácií

Keď prechádzate stopami, existuje veľa spôsobov, ako ich môžete vyhodnotiť. V tomto článku sa zameriame na rozdelenie dvoch vizualizácií - jeden na zobrazenie podrobností, na ktoré vám záleží, a druhý na ľahké zobrazenie časových príspevkov rôznych faktorov. Pre prvú vizualizáciu sa používa tabuľka. Môžete si vybrať ľubovoľné polia, ktoré sa vám páčia, ale tie, ktoré sa odporúčajú pre jednoduchý a vysoký vzhľad toho, čo sa deje, sú:

Pre druhú vizualizáciu je jednou z možností použiť skladaný stĺpcový graf. V parametri "Os" možno budete chcieť použiť "Id" alebo 'Krok" . Ak sa pozeráme na obnovenie, pretože to nemá nič spoločné s krokmi v samotnom editore, pravdepodobne sa chceme len pozrieť na 'Id'. Pre parameter "Legenda" by ste mali nastaviť 'Kategória" alebo 'Prevádzka" (v závislosti od požadovanej granularity). V prípade hodnoty nastavte"Výhradné trvanie"(a uistite sa, že to nie je %, aby ste získali hodnotu surového trvania). Nakoniec pre popis nástroja nastavte "Najskorší čas začiatku".

Po vybudovaní vizualizácie sa uistite, že zoradíte podľa vzostupu najskoršieho času začatia,aby ste mohli vidieť poradie, v akom sa veci dejú.

Vizualizácia podrobností a agregácia času.

Aj keď sa vaše presné potreby môžu líšiť, táto kombinácia grafov je dobrým miestom na začatie pri pohľade na veľa diagnostických súborov a na niekoľko účelov.

Interpretácia vizualizácií

Ako je uvedené vyššie, existuje veľa otázok, na ktoré sa môžete pokúsiť odpovedať pomocou diagnostiky dotazu, ale dve, ktoré vidíme najčastejšie, sa pýtajú, ako sa čas trávi, a pýtajú sa, aký je dotaz odoslaný do zdroja.

Pýtať sa, ako sa čas trávi, je jednoduché a bude veľmi podobné pre väčšinu konektorov. Upozornenie s diagnostikou dotazu, ako je uvedené inde, je, že v závislosti od konektora uvidíte drasticky odlišné možnosti. Napríklad mnohé konektory založené na ODBC nebudú mať presné záznamy o tom, aký dotaz sa odošle do skutočného back-end systému, pretože Power Query vidí iba to, čo odošle ovládaču ODBC.

Ak chceme vidieť, ako sa trávi čas, môžeme sa pozrieť na vizualizácie, ktoré sme postavili vyššie.

Teraz, pretože časové hodnoty vzorových dotazov, ktoré tu používame, sú také malé, ak chceme pracovať s tým, ako power BI zostavuje čas, je lepšie, ak v editore power query skonvertujeme stĺpec Exkluzívne trvanie na "Sekundy". Akonáhle to urobíme, môžeme sa pozrieť na náš graf a získať celkom slušnú predstavu o tom, kde sa trávi čas.

Pre moje výsledky OData vidím na obrázku, že prevažná väčšina času stráveného bolo načítanie údajov zo zdroja - ak kliknem na položku "Zdroj údajov" v legende, zobrazí mi všetky rôzne operácie súvisiace so odoslaním dotazu do zdroja údajov.

Súhrn diagnostiky dotazu OData Northwind.

Ak vykonáme všetky rovnaké operácie a vytvoríme podobné vizualizácie, ale s SQL stopy namiesto tých ODATA, môžeme vidieť, ako sa tieto dva zdroje údajov porovnávajú!

Súhrn diagnostiky dotazu OData Northwind.

Ak klikneme na tabuľku Zdroj údajov, ako pri diagnostike ODATA, môžeme vidieť prvé hodnotenie (2.3 na tomto obrázku) emituje otázky metaúdajov, pričom druhé hodnotenie skutočne načíta údaje, na ktorých nám záleží. Pretože v tomto prípade získavame veľmi málo údajov, stiahnuté údaje zaberú veľmi málo času (menej ako desatina sekundy na celé druhé hodnotenie, s menej ako dvadsiatou sekundou na samotné načítanie údajov), ale to nebude pravda vo všetkých prípadoch.

Ako je uvedené vyššie, môžeme kliknúť na kategóriu "Zdroj údajov" v legende, aby sme videli emitované dotazy.

Kopanie do údajov

Pohľad na cesty

Keď sa na to pozeráte, ak sa zdá, že čas strávený je zvláštny – napríklad v dotaze OData sa môže zobraziť, že existuje dotaz zdroja údajov s nasledujúcou hodnotou:

https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7

<Content placeholder>

Response:
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435

<Content placeholder>

Tento dotaz zdroja údajov je priradený k operácii, ktorá zaberá, povedzme, iba 1 % exkluzívneho trvania. Medzitým je tu veľmi podobný:

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

Tento dotaz zdroja údajov je priradený k operácii, ktorá zaberá takmer 75 % exkluzívneho trvania. Ak zapnete cestu,zistíte, že druhá je v skutočnosti dieťaťom prvého. To znamená, že prvý dotaz v podstate pridal veľmi málo času sám o sebe, pričom skutočné načítanie údajov je sledované "vnútorným" dotazom.

Sú to extrémne hodnoty, ale sú v medziach toho, čo by sa dalo vidieť.