Dette emnet forklarer forskjellen mellom tidsseriefunksjoner og filterfunksjoner samt hvordan du implementerer filterfunksjoner. Disse opplysningene gjelder for både arbeidsbøker og klassiske instrumentpaneler.
Tidsseriefunksjoner kontra Filterfunksjoner
Tidsseriefunksjonene Ago
og Todate
gir en enkel måte å opprette målinger på for å beregne year-ago, year-to-date,
og så videre. Denne metoden fungerer godt for forretningsbrukerrapporter, men disse funksjonene genererer komplekse spørringer som har betydelig innvirkning på ytelsen. Hver gang en av disse funksjonene brukes i en rapport, genereres det i tillegg en ekstra delspørring som bruker enda flere ressurser i databasen.
I stedet for å bruke tidsseriefunksjoner kan du som regel oppnå det samme resultatet på klassiske instrumentpaneler ved å bruke basismålinger med funksjonen Filter
for å filtrere på den aktuelle tidsperioden. Denne metoden er kanskje for kompleks for forretningsbrukerrapporter, men den fungerer godt på instrumentpaneler IT-teamet har definert på forhånd. Ved hjelp av denne metoden er den genererte fysiske SQL-koden mye enklere og mer effektiv, og det er ikke nødvendig med noen ekstra delspørring. Det betyr at SQL-spørringen kjører raskere og bruker færre ressurser i databasen, noe som reduserer den totale prosessorbruken og inndata/utdata-kall.
Figuren nedenfor viser et eksempel på en fysisk spørring som genereres når du bruker både basismålingen og målingen Month Ago
i samme rapport. To spørringer genereres.
Figuren nedenfor viser SQL-koden som genereres for én spørring når du i stedet bruker funksjonen Filter
.
Implementere filterfunksjoner på et instrumentpanel med ledetekster
I de fleste implementeringer inneholder instrumentpanelet allerede en ledetekst, slik at brukerne kan velge måneden de er interessert i. Det første trinnet er å identifisere tidsperiodene du må filtrere på, basert på brukervalgene.
I dette eksemplet inneholder kalenderdimensjonen kolonnen Julian Period Number
, fordi det gjør beregningen enklere. Dette er også mulig uten Julian Period Number
, men det forutsetter langt mer komplekse formler for å beregne den valgte tidsperioden.
Month
for å legge til presentasjonsvariabelen (MonthSelected
).
Julian Period Number
og plassere den i en annen variabel (PeriodNumberSelected
). Denne andre ledeteksten vises ikke for sluttbrukeren. I stedet er den skjult på instrumentpanelet, og verdien beregnes automatisk basert på variabelen MonthSelected
.
Julian Period
.
Month
i analysen, og bruk filterfunksjonene for kolonneformler basert på Julian Period Number
etter behov. Her er noen eksempler:
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})
Implementere filterfunksjoner i en arbeidsbok med parametre
Du kan bruke det samme prinsippet i en arbeidsbok. Ledetekster og presentasjonsvariabler erstattes av et instrumentpanelfilter og parametre.
Opprett tre parametre: MonthSelected, PeriodNumberSelected og YearSelected. Bare parameteren MonthSelected vises på lerretet i et instrumentpanelfilter.
Mulige verdier for parameteren MonthSelected defineres basert på en logisk SQL-spørring som velger alle månedene.
De mulige verdiene fylles ikke ut for parametrene PeriodNumberSelected og YearSelected.
.jpg
Bare den første verdien fylles ut med en logisk spørring som filtreres basert på verdien for MonthSelected.
.jpg