Vizualizace a interpretace diagnostiky dotazů v Power BI
Úvod
Jakmile zaznamenáte diagnostiku, kterou chcete použít, je dalším krokem pochopení toho, co říkají.
Je užitečné mít dobrou představu o tom, co přesně znamená každý sloupec ve schématu diagnostiky dotazů, což v tomto krátkém kurzu neopakujeme. Tady je plný zápis.
Obecně platí, že při vytváření vizualizací je lepší použít úplnou podrobnou tabulku. Vzhledem k tomu, že bez ohledu na počet řádků se pravděpodobně díváte, je nějaký druh znázornění toho, jak se čas strávený v různých prostředcích sčítá nebo jaký byl nativní dotaz vygenerovaný.
Jak jsme zmínili v našem článku o záznamu diagnostiky, pracujem s trasování OData a SQL pro stejnou tabulku (nebo téměř tak) – s tabulkou Customers z Northwind. Konkrétně se zaměřím na společnou žádost od našich zákazníků a jednu z jednodušších interpretací sad trasování: úplnou aktualizaci datového modelu.
Sestavení vizualizací
Když procházíte trasováním, existuje mnoho způsobů, jak je můžete vyhodnotit. V tomto článku se zaměříme na dvě vizualizace rozdělené na jednu vizualizaci, abychom zobrazili podrobnosti, o kterých vás zajímá, a druhý, abychom se mohli snadno podívat na časové příspěvky různých faktorů. Pro první vizualizaci se použije tabulka. Můžete vybrat libovolná pole, která se vám líbí, ale ty doporučené pro snadný a vysoký přehled o tom, co se děje:
- Id
- Počáteční čas
- Dotaz
- Step
- Dotaz na zdroj dat
- Výhradní doba trvání (%)
- Počet řádků
- Kategorie
- Je uživatelský dotaz
- Cesta
Pro druhou vizualizaci je jednou z možností použití skládaného sloupcového grafu. V parametru Axis můžete chtít použít ID nebo Step. Pokud se díváme na aktualizaci, protože nemá nic společného s kroky v samotném Editoru, chceme se pravděpodobně podívat na ID. U parametru Legend byste měli nastavit Category nebo Operation (v závislosti na požadované členitosti). Pro hodnotu nastavte hodnotu Exclusive Duration (a ujistěte se, že není %, abyste získali nezpracovanou hodnotu doby trvání). Nakonec u popisu nastavte "Nejstarší čas zahájení".
Po sestavení vizualizace se ujistěte, že řadíte vzestupně podle počátečního času, abyste viděli pořadí, ve které se děje.
I když se vaše přesné potřeby můžou lišit, je tato kombinace grafů vhodným místem, kde začít hledat mnoho diagnostických souborů a pro různé účely.
Interpretace vizualizací
Jak už jsme zmínili výše, můžete se pokusit odpovědět pomocí diagnostiky dotazů, ale dva, které vidíme nejčastěji, se ptají, jak je čas strávený, a ptají se, co je dotaz odeslaný do zdroje.
Dotaz, jak je čas strávený, je snadný a bude podobný pro většinu konektorů. Upozornění s diagnostikou dotazů, jak je uvedeno jinde, je, že v závislosti na konektoru uvidíte výrazně odlišné možnosti. Mnoho konektorů založených na rozhraní ODBC například nebude mít přesný záznam toho, jaký dotaz se odesílá do skutečného back-endového systému, protože Power Query vidí jenom to, co odesílá ovladač ODBC.
Pokud chceme zjistit, jak se čas stráví, můžeme se podívat na vizualizace, které jsme vytvořili výše.
Vzhledem k tomu, že hodnoty času pro ukázkové dotazy, které tady používáme, jsou tak malé, pokud chceme pracovat s tím, jak je čas sestav Power BI lepší, když v editoru Power Query převedeme sloupec Exclusive Duration na Sekundy. Jakmile tento převod provedeme, můžeme se podívat na náš graf a získat slušnou představu o tom, kde je čas stráven.
U výsledků OData vidím na obrázku, že velká většina času strávila načítáním dat ze zdroje – pokud v legendě vyberu položku Zdroj dat, zobrazí se všechny různé operace související s odesláním dotazu do zdroje dat.
Pokud provádíme všechny stejné operace a vytváříme podobné vizualizace, ale s trasováníMI SQL místo těch ODATA, uvidíme, jak se oba zdroje dat porovnávají.
Pokud vybereme tabulku Zdroje dat, například s diagnostikou ODATA, uvidíme první vyhodnocení (2.3 na tomto obrázku) vygeneruje dotazy na metadata, přičemž druhé vyhodnocení skutečně načítá data, o která nám záleží. Vzhledem k tomu, že v tomto případě načítáme malé objemy dat, trvá vrácení dat malou dobu (méně než desetinu sekundy pro celé druhé vyhodnocení se stane méně než dvacátá sekunda pro samotné načtení dat), ale to nebude platit ve všech případech.
Jak je uvedeno výše, můžeme v legendě vybrat kategorii Zdroj dat a zobrazit vygenerované dotazy.
Zkoumání dat
Pohled na cesty
Když se na to díváte, pokud se zdá, že čas strávený časem je podivný – například v dotazu OData se může zobrazit dotaz zdroje dat s následující hodnotou:
Request:
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 zdroje dat je přidružený k operaci, která zabírá pouze 1 % exkluzivní doby trvání. Mezitím je tu 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 zdroje dat je přidružený k operaci, která zabírá téměř 75 % exkluzivní doby trvání. Pokud zapnete cestu, zjistíte, že druhá je ve skutečnosti dítětem bývalého. To znamená, že první dotaz v podstatě přidal malý objem času, přičemž skutečné načítání dat sledované dotazem "inner".
Jedná se o extrémní hodnoty, ale jsou v mezích toho, co by mohlo být vidět.