Používanie funkcií filtrov namiesto funkcií časovej série

Táto téma vysvetľuje rozdiel medzi funkciami časovej série a funkciami filtrov a objasňuje, ako implementovať funkcie filtrov. Tieto informácie sa vzťahujú na zošity aj na klasické panely.

Funkcie časovej série vs. funkcie filtrov

Funkcie časovej série Ago a Todate ponúkajú jednoduchý spôsob vytvárania metrík na výpočet hodnôt year-ago, year-to-date a podobne. Tieto metódy sú vhodné pre zostavy podnikových používateľov, tieto funkcie však generujú zložité dopyty, ktoré významne ovplyvňujú výkon. Navyše, vždy keď sa niektorá z týchto funkcií použije v zostave, vygeneruje sa ďalší poddopyt, ktorý bude využívať ešte viac prostriedkov v databáze.

Na klasických paneloch môžete namiesto používania funkcií časovej série dosiahnuť rovnaký výsledok použitím základnej metriky s funkciou Filter, ktorá filtruje v príslušnom časovom období. Táto metóda môže byť príliš zložitá pre zostavy podnikových používateľov, ale dobre funguje na paneloch preddefinovaných IT tímom. Pri použití tejto metódy je vygenerovaný fyzický kód SQL oveľa jednoduchší a efektívnejší a nevyžaduje žiadny ďalší poddopyt. Znamená to, že dopyt SQL sa vykoná rýchlejšie a v databáze bude využívať menej prostriedkov, vďaka čomu sa zníži celkové využitie CPU a počet vstupných a výstupných volaní.

Nasledujúci obrázok znázorňuje príklad fyzického dopytu, ktorý sa vygeneruje, keď v tej istej zostave použijete základnú metriku aj metriku pred mesiacom (Ago). Vygenerujú sa dva dopyty.

Popis GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg je uvedený nižšie
.jpg

Nasledujúci obrázok znázorňuje kód SQL, ktorý sa vygeneruje pre jeden dopyt, keď používate funkciu Filter.

Popis GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg je uvedený nižšie
.jpg

Implementácia funkcií filtrov na paneli s výzvami

Vo väčšine implementácií panel už obsahuje výzvu, takže používatelia môžu vybrať mesiac, ktorý hľadajú. Prvým krokom je identifikácia časových období, podľa ktorých potrebujete vyfiltrovať záznamy na základe výberu používateľa.

V tomto príklade dimenzia kalendára obsahuje stĺpec Julian Period Number, pretože to uľahčuje výpočet. Je to možné aj bez premennej Julian Period Number, ale na výpočet vybraného časového obdobia by to vyžadovalo oveľa zložitejšie vzorce.

  1. Modifikujte výzvu Month na pridanie premennej prezentácie (MonthSelected).

    Popis GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.png je uvedený nižšie
    .png

  2. Vytvorte samostatnú výzvu panela na vyvolanie zodpovedajúcej premennej Julian Period Number a vložte ju do ďalšej premennej (PeriodNumberSelected). Táto druhá výzva sa nezobrazí koncovému používateľovi, namiesto toho bude na paneli skrytá a hodnota sa vypočíta automaticky na základe premennej MonthSelected.

    Popis GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.png je uvedený nižšie
    .png

  3. Upravte vlastnosti panela a kliknite na položku Filtre a premenné.
  4. Pridajte cestu výzvy Julian Period.

    Popis GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg je uvedený nižšie
    .jpg

  5. V analýze odstráňte globálny filter v stĺpci Month a podľa potreby použite funkcie filtra vzorcov stĺpca na základe premennej Julian Period Number. Tu je niekoľko príkladov:

    Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})

    Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)

    Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)

    Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})

Implementácia funkcií filtrov v zošite s parametrami

Rovnaký princíp môžete použiť aj v zošite. Výzvy a premenné prezentácie sa nahradia filtrom a parametrami panela.

Vytvorte tri parametre: MonthSelected, PeriodNumberSelected a YearSelected. Na kresliacom plátne vo filtri panela sa zobrazí len parameter MonthSelected.

Možné hodnoty parametra MonthSelected sú definované na základe logického dopytu SQL na výber všetkých mesiacov.

Pre parametre PeriodNumberSelected a YearSelected sa možné hodnoty nevyplnia.Popis GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg je uvedený nižšie
.jpg

Vyplní sa len počiatočná hodnota s logickým dopytom filtrovaným na základe hodnoty MonthSelected.Popis GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg je uvedený nižšie
.jpg