Použití funkcí filtru místo funkcí časových řad

Toto téma vysvětluje rozdíl mezi funkcemi časových řad a funkcemi filtru a vysvětluje, jak funkce filtru implementovat. Uvedené informace platí jak pro sešity, tak pro klasické panely.

Porovnání funkce časových řad a funkce filtrů

Funkce časových řad AgoTodate nabízejí jednoduchý způsob, jak vytvořit metriky pro výpočet parametrů year-ago, year-to-date a tak dále. Tato metoda dobře funguje u sestav firemních uživatelů. Tyto funkce však generují složité dotazy, které mají značné nároky na výkon. Při každém použití jedné z těchto funkcí v sestavě je generován další dílčí dotaz s využitím ještě více zdrojů v databázi.

Na klasických panelech můžete místo použití funkcí časových řad obvykle dosáhnout stejného výsledku použitím základních metrik s funkcí Filter k filtrování podle příslušného časového období. Tato metoda může být příliš složitá u sestav firemních uživatelů, ale funguje dobře na panelech předem definovaných týmem IT. Při použití této metody je generovaný fyzický kód SQL mnohem jednodušší a efektivnější a nevyžaduje další dílčí dotaz. To znamená, že dotaz SQL běží rychleji a spotřebuje méně zdrojů v databázi, čímž se sníží celkové využití procesoru databáze a počet volání vstupu/výstupu.

Následující obrázek ukazuje příklad fyzického dotazu generovaného při použití základní metriky a metriky Ago pro měsíc ve stejné sestavě. Budou generovány dva dotazy.

Popis GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg následuje
.jpg''

Následující obrázek ukazuje kód SQL, který je vygenerován pro jeden dotaz, pokud místo toho použijete funkci Filtr.

Popis GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg následuje
.jpg''

Implementace funkcí filtru do panelu pomocí výzev

Ve většině implementací již panel obsahuje výzvu, aby si uživatelé mohli vybrat měsíc, který hledají. Prvním krokem je určení časových období, která potřebujete filtrovat na základě výběru uživatele.

V tomto příkladu dimenze kalendáře obsahuje sloupec Julian Period Number, protože se tím značně zjednoduší výpočet. Úlohu lze provést i bez sloupce Julian Period Number, ale vyžadovala by mnohem složitější vzorce pro výpočet vybraného časového období.

  1. Upravte výzvu Měsíc a přidejte prezentační proměnnou (MonthSelected).

    Popis GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.png následuje
    .png''

  2. Vytvořte samostatnou výzvu panelu, aby byl načten odpovídající údaj Julian Period Number a následně vložen do další proměnné (PeriodNumberSelected). Tato druhá výzva se koncovému uživateli nezobrazí. Místo toho zůstane skrytá na panelu a hodnota bude vypočítána automaticky na základě proměnné MonthSelected.

    Popis GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.png následuje
    .png''

  3. Upravte vlastnosti panelu a klikněte na volbu Filtry a proměnné.
  4. Přidejte cestu výzvy Julian Period.

    Popis GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg následuje
    .jpg''

  5. V analýze odstraňte globální filtr pro sloupec Month a podle potřeby použijte funkce filtrování vzorců sloupce na základě položky Julian Period Number. Zde je několik příkladů:

    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})

Implementace funkcí filtru do sešitů pomocí parametrů

Stejný princip můžete použít i v sešitu. Výzvy a prezentační proměnné jsou nahrazeny filtrem a parametry panelu.

Vytvořte tři parametry: MonthSelected, PeriodNumberSelected a YearSelected. Na kanvasu ve filtru panelu se zobrazí pouze parametr MonthSelected.

Možné hodnoty parametru MonthSelected jsou definovány na základě logického dotazu SQL pro výběr všech měsíců.

U parametrů PeriodNumberSelected a YearSelected nejsou možné hodnoty vyplněny.Popis GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg následuje
.jpg''

Vyplněna je pouze počáteční hodnota pomocí logického dotazu filtrovaného na základě hodnoty parametru MonthSelected.Popis GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg následuje
.jpg''