Filterfuncties gebruiken in plaats van tijdreeksfuncties

In dit onderwerp wordt het verschil uitgelegd tussen tijdreeksfuncties en filterfuncties, en er wordt uitgelegd hoe u filterfuncties kunt implementeren. Deze informatie geldt voor zowel werkmappen als klassieke dashboards.

Tijdreeksfuncties versus filterfuncties

De tijdreeksfuncties Ago en Todate bieden een eenvoudige manier om metrics te maken voor het berekenen van year-ago, year-to-date, enzovoorts. Deze methode werkt goed voor rapporten van zakelijke gebruikers. Het is echter wel zo dat deze functies complexe query's genereren die een aanzienlijke invloed hebben op de prestaties. Daar komt bij dat elke keer dat een van deze functies wordt gebruikt in een rapport, er aanvullende subquery wordt gegenereerd waardoor er nog meer resources voor de database worden gebruikt.

In klassieke dashboards kunt u, in plaats van tijdreeksfuncties te gebruiken, meestal hetzelfde resultaat krijgen door basismetrics te gebruiken met de functie Filter om te filteren op het gewenste tijdvak. Deze methode is mogelijk te complex voor rapporten voor zakelijke gebruikers, maar werkt prima in dashboards die vooraf zijn gedefinieerd door het IT-team. Bij gebruik van deze methode is de gegenereerde fysieke SQL-code veel eenvoudiger en efficiënter, en is er ook geen aanvullende subquery nodig. Dit betekent dat de SQL-query sneller is en er minder resources nodig zijn voor de database, waardoor het algehele CPU-gebruik voor de database en de input-output-aanroepen afnemen.

De volgende afbeelding is een voorbeeld van de fysieke query die wordt gegenereerd wanneer u zowel basismetrics als de metric 'month Ago' gebruikt in hetzelfde rapport. Er worden twee zoekopdrachten gegenereerd.

Beschrijving van GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg volgt hierna
.jpg

De volgende afbeelding toont de SQL-code die wordt gegenereerd voor een enkele query wanneer u de functie Filteren gebruikt.

Beschrijving van GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg volgt hierna
.jpg

Filterfuncties met prompts implementeren in een dashboard

In de meeste implementaties bevat het dashboard al een prompt, zodat gebruikers de maand kunnen selecteren die ze zoeken. De eerste stap is om de tijdvakken te identificeren waarop u moet filteren op basis van de selectie van een gebruiker.

In dit voorbeeld bevat de kalenderdimensie een kolom Julian Period Number omdat de berekening hierdoor een gemakkelijker wordt. Dit is ook mogelijk zonder Julian Period Number, maar dan zijn veel complexere formules nodig om het geselecteerde tijdvak te berekenen.

  1. Pas de prompt Month aan om de presentatievariabele (MonthSelected) toe te voegen.

    Beschrijving van GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.png volgt hierna
    .png

  2. Maak een afzonderlijke dashboardprompt voor het ophalen van het bijbehorende Julian Period Number en plaats dit in een andere variabele (PeriodNumberSelected). Deze tweede prompt wordt niet weergegeven aan de eindgebruiker. Deze prompt wordt verborgen in het dashboard en de waarde ervan wordt automatisch berekend op basis van de variabele MonthSelected.

    Beschrijving van GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.png volgt hierna
    .png

  3. Bewerk de dashboardeigenschappen en klik op Filters en variabelen.
  4. Voeg het promptpad Julian Period toe.

    Beschrijving van GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg volgt hierna
    .jpg

  5. Verwijder in de analyse het algemene filter voor de kolom Month en gebruik zo nodig de filterfuncties van de kolomformules op basis van Julian Period Number. Hieronder volgen enkele voorbeelden:

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

Filterfuncties met parameters implementeren in een werkmap

U kunt hetzelfde principe toepassen op een werkmap. Prompts en presentatievariabelen worden dan vervangen door een dashboardfilter en parameters.

Maak drie parameters: MonthSelected, PeriodNumberSelected en YearSelected. Alleen de parameter MonthSelected wordt weergegeven op het canvas in een dashboardfilter.

De mogelijke waarden voor de parameter MonthSelected worden gedefinieerd op basis van een logische SQL-query waarmee alle maanden worden geselecteerd.

Voor de parameters PeriodNumberSelected en YearSelected worden de mogelijke waarden niet ingevuld.Beschrijving van GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg volgt hierna
.jpg

Alleen de oorspronkelijke waarde wordt ingevuld met een logische zoekopdracht die is gefilterd op basis van de waarde van MonthSelected.Beschrijving van GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg volgt hierna
.jpg