Optimalizácia jazyka DAX pre LuckyTemplates pomocou nástroja DAX Studio – Formula Engines

Keď optimalizujete svoj dátový model a svoj DAX pre LuckyTemplates, je dobré si uvedomiť, že v zákulisí bežia dva motory – vzorec a modul úložiska .

Tieto dva motory spolupracujú, aby vrátili používateľovi potrebné výsledky. Poskytujú súbor výsledkov vo forme tabuľky alebo hodnoty stupnice.

Obsah

Úloha Formulového motora

V tomto článku sa zameriame na motor formuly.

Nástroj vzorcov je nástroj najvyššej úrovne, ktorý riadi celú architektúru dotazu.

Čokoľvek robíte pri vykonávaní dotazu alebo pri vytváraní vypočítaného stĺpca alebo vypočítanej tabuľky, spustí sa mechanizmus vzorcov.

Formulár rozumie dopytom prijatým nielen v jazyku DAX, ale aj v jazyku MDX. Napríklad, keď používate Excel, vytvárate kontingenčné modely založené na kontingenčných tabuľkách a kontingenčné tabuľky v skutočnosti používajú jazyk MDX.

Tu nastupuje formulový motor. Pretože si rozumie s DAX aj MDX, môžete použiť iný model LuckyTemplates. Dotazy odoslané z tohto dátového modelu budú používať jazyk DAX, zatiaľ čo dotazy z pivotného modelu budú používať MDX.

Ako funguje Formula Engine

Pochopenie dopytov pochádzajúcich zo zdroja MDX alebo zo zdroja DAX je len jedným z faktorov výkonu motora vzorcov. Prechádza aj ďalšími krokmi, ktoré vám pomôžu spracovať vaše otázky.

Najprv musí vygenerovať plán dotazov, ktorému bude ukladací mechanizmus rozumieť . Ako nástroj nižšej úrovne, ukladací mechanizmus v skutočnosti nevie, či kontingenčná tabuľka v Exceli alebo vizuál v LuckyTemplates vykonal dotaz.

Pri vytváraní plánu dotazov nástroj vzorcov najprv vytvorí plán logických dotazov a potom vytvorí plán fyzických dotazov. Logický aj fyzický plán dotazov by sa mali navzájom podobať.

Po dokončení fyzického plánu dotazov získa používateľ alebo klientsky nástroj sadu výsledkov. Odtiaľ klientsky nástroj diktuje, ako použije výsledky alebo množinu údajov na zobrazenie konečného výsledku používateľovi.

Hlavné obmedzenia Formulového motora

Pri optimalizácii jazyka DAX pre LuckyTemplates pomocou nástroja DAX Studio hrá vzorec vzorcov obrovskú úlohu. Má to však aj určité obmedzenia.

Po prvé, vzorec vzorcov vždy používa jedno jadro na riadenie celej vašej operácie bez ohľadu na to, koľko jadier CPU je vo vašom systéme k dispozícii .

Keď otvorím Správcu úloh, uvidíte, že môj procesor má šesť jadier.

Optimalizácia jazyka DAX pre LuckyTemplates pomocou nástroja DAX Studio – Formula Engines

Napriek tejto skutočnosti si formulový motor stále vyberie jedno z týchto šiestich jadier, s ktorým bude pracovať, zatiaľ čo zvyšok nechá použiť ukladací engine.

Po druhé, nástroj vzorcov nemá priamy prístup k vašej databáze . Kvôli tomuto obmedzeniu by ste museli ukladať dáta buď do internej pamäte, alebo ich môžete uložiť do databázy a vytvoriť DirectQuery nad touto databázou.

Spolieha sa tiež na ukladací mechanizmus, ktorý získava údaje vo forme dátovej vyrovnávacej pamäte. Nástroj vzorcov potom iteruje túto vyrovnávaciu pamäť údajov, aby pokračoval skôr, ako môže poskytnúť výsledky koncovému používateľovi.

Ako Formula Engine pomáha optimalizovať DAX pre LuckyTemplates

Niekedy, keď sa pokúšate optimalizovať svoj dátový model alebo DAX pre LuckyTemplates, všimnete si, že sa ukladací mechanizmus spomaľuje pri vykonávaní dotazov. V tomto prípade môžete použiť vzorec na dokončenie celého výpočtu na optimalizáciu procesu.

Všimnite si, že ak nástroj vzorcov vytvorí celú tabuľku sám, množina výsledkov vytvorená v procese sa nepoužije v následných dotazoch, ktoré vygeneruje klientsky nástroj, ak sú podobné predtým vykonaným dotazom . Ale v prípade, že ukladací mechanizmus poskytuje dátovú vyrovnávaciu pamäť, potom môže byť táto konkrétna dátová vyrovnávacia pamäť uchovávaná v pamäti, aby mohla optimalizovať požiadavky prichádzajúce z klientskeho nástroja.

Ako to bude fungovať?

Povedzme, že napíšeme dotaz, ktorý bude kompletne vykonaný ukladacím mechanizmom, ale s niektorými aspektmi, ktoré má vypočítať vzorec. V tomto prípade ukladací mechanizmus odošle vyrovnávaciu pamäť údajov späť do mechanizmu vzorcov a táto vyrovnávacia pamäť údajov (v prípade, že je to jednoduchá) môže byť uložená v pamäti.

Teraz, ak podobný dotaz príde o niekoľko sekúnd neskôr, namiesto opätovného skenovania celého dátového modelu použije vzorec alebo ukladací mechanizmus túto konkrétnu dátovú vyrovnávaciu pamäť, aby sa skrátil čas dopytu a používateľská skúsenosť mohla byť vylepšený.

Zníženie zaťaženia Formulového motora

Formulový engine si opäť rozumie s kódmi DAX a MDX.

Ak teda použijete,a ďalšie úlohy, vzorec vzorcov pozná všetky funkcie, ktoré používate v rámci jazyka DAX, a dokáže ich vyriešiť sám. To by však mohlo ovplyvniť výkon dotazu, najmä preto, že vzorec vzorcov sa snaží robiť všetko pomocou jedného jadra.

Preto musíme dbať aj na zníženie zaťaženia motora formuly a zvýšenie zaťaženia motora skladu.

Dobrým príkladom toho, aký rozdielny je výpočet vo vzorcovom motore oproti ukladaciemu stroju, by bolo použitie CROSSJOIN oproti.

Keď používate CROSSJOIN, cez ukladací mechanizmus sa bude prenášať iba obmedzené množstvo údajov. Pokiaľ ide o zvyšok výpočtu, všetko vykoná vzorec. Na porovnanie, použitie SUMMARIZE znamená vykonanie celého dotazu v rámci ukladacieho mechanizmu.

Samozrejme, bude to závisieť aj od toho, ako sa SUMMARIZE použije.

Ak sa SUMMARIZE použije ako najvnútornejšia funkcia, potom bude určite posunutá nadol do ukladacieho mechanizmu. V niektorých prípadoch sa však SUMMARIZE používa v spojení s iným kódom, ktorý vyžaduje fungovanie nástroja vzorcov. V tomto prípade motor formule zakročí a vykoná prácu.

Vedieť, kam ide záťaž, vám môže pomôcť optimalizovať výkon vášho dopytu, najmä ak máte na pamäti, aká je kapacita a obmedzenia pre motory, ktoré máte k dispozícii.

Nástroje, ktoré môžu pomôcť optimalizovať DAX pre LuckyTemplates

Optimalizácia jazyka DAX bude jednoduchšia, ak maximalizujete nástroje, ktoré to umožňujú. DAX Studio je jedným z týchto nástrojov.

Zoberme si príklad skôr, keď vzorec vzorcov prevezme celú záťaž dokončenia výpočtu, keď sa použije funkcia SUMMARIZE. DAX Studio vám môže pomôcť prepísať váš kód spôsobom, ktorý vloží SUMMARIZE do úložného mechanizmu, čím uvoľní záťaž na nástroji vzorcov. To potenciálne zlepšuje výkon vášho dátového modelu a dotazov.

Samozrejme, pri jednoduchých dopytoch by to malo fungovať bez problémov. Existujú aj komplikovanejšie scenáre.

Môžete napríklad vytvoriť zložené modely, ktoré používajú dva úložné mechanizmy v rámci samotného dátového modelu. Jeden by mohol byť pre Vertipaq, zatiaľ čo druhý by bol pre DirectQuery. V tomto prípade musí byť vaša databáza optimalizovaná tak, aby generované dotazy boli zostavené pre konkrétny relačný dátový model.

Povedzme, že máte vo svojom dátumovom modeli dve tabuľky – tabuľku Produkty a tabuľku Predaj. Tabuľka Products sa nachádza v úložisku Vertipaq, zatiaľ čo tabuľka Sales, ktorá je väčšou tabuľkou, je uložená priamo v databáze prostredníctvom pripojenia DirectQuery.

Predpokladajme tiež, že do matice presúvate stĺpec Značka, ako aj mieru celkového predaja, ktorá pochádza z tabuľky Predaj v rámci pripojenia DirectQuery.

V tomto prípade bude musieť motor formuly vykonať operáciu medzi oboma motormi.

Najprv získa stĺpce Product Key a Brand z tabuľky Produkty. Potom získa stĺpce Čistá cena, Množstvo a Produktový kľúč z tabuľky Predaj. Akonáhle bude mať dátovú vyrovnávaciu pamäť z Vertipaqu aj DirectQuery, vzorec bude musieť vziať dátovú vyrovnávaciu pamäť a pokúsiť sa ich spojiť, aby poskytol výsledky koncovému používateľovi.




Záver

Formulový motor skutočne zohráva obrovskú úlohu pri práci s DAX. Je však dôležité, aby ste najskôr porozumeli, ako to funguje, a až potom sa do toho pustite. Zvládnutie toho, ako zabezpečiť bezproblémovú súčinnosť motora vzorcov a úložiska, je kľúčové, najmä ak chcete, aby vaše dopyty DAX fungovali lepšie.

Ako motor najvyššej úrovne v architektúre analytických služieb musí vzorec vzorcov vykonávať množstvo operácií. Akonáhle však pochopíte aj detaily úložného motora, môžete zistiť, ktorú operáciu vložiť do úložného motora a ktorú ponechať v motore vzorca.

V samostatnom návode sa budeme hlbšie zaoberať ukladacím modulom.

Všetko najlepšie,


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.