In questo argomento viene descritta la differenza tra le funzioni di serie temporali e le funzioni di filtro e viene indicato come implementare le funzioni di filtro. Queste informazioni si applicano sia alle cartelle di lavoro che ai dashboard classici.
Funzioni di serie temporali e funzioni di filtro
Le funzioni di serie temporali Ago
e Todate
consentono di creare facilmente metriche per calcoli di tipo year-ago, year-to-date
e così via. Questo metodo è particolarmente appropriato per i report degli utenti business. Tuttavia, queste funzioni generano query complesse che hanno un impatto significativo sulle prestazioni. Inoltre, ogni volta che una di queste funzioni viene usata in un report, viene generata una subquery aggiuntiva utilizzando ancora più risorse nel database.
Nei dashboard classici, invece di usare le funzioni di serie temporali, è in genere possibile ottenere lo stesso risultato usando le metriche di base con la funzione Filter
per filtrare in base al periodo di tempo appropriato. Questo metodo potrebbe essere troppo complesso per i report degli utenti business, ma funziona perfettamente nei dashboard predefiniti dal team IT. Utilizzando questo metodo, il codice SQL fisico generato è molto più semplice ed efficiente e non richiede una subquery aggiuntiva. Ciò significa che l'elaborazione della query SQL è più rapida e utilizza meno risorse nel database, riducendo l'uso complessivo della CPU del database e le chiamate di input/output.
Nella figura seguente è riportato un esempio della query fisica che viene generata quando si usa sia la metrica di base che la metrica Ago
del mese nello stesso report. Vengono generate due query.
Nella figura seguente è riportato il codice SQL generato per una query quando invece si usa una funzione Filter
.
Implementare le funzioni di filtro in un dashboard con i prompt
Nella maggior parte delle implementazioni, il dashboard include già un prompt in modo che gli utenti possano selezionare il mese che stanno cercando. Il primo passaggio consiste nell'identificare i periodi di tempo in base ai quali è necessario applicare il filtro a seconda della selezione dell'utente.
In questo esempio la dimensione del calendario include la colonna Julian Period Number
perché ciò rende il calcolo più semplice. Il calcolo è fattibile anche senza Julian Period Number
, ma richiederebbe formule molto più complesse per calcolare il periodo di tempo selezionato.
Month
per aggiungere la variabile di presentazione (MonthSelected
).
Julian Period Number
corrispondente e inserirlo in un'altra variabile (PeriodNumberSelected
). Questo secondo prompt non viene mostrato all'utente finale, ma è nascosto nel dashboard e il valore viene calcolato automaticamente in base alla variabile MonthSelected
.
Julian Period
.
Month
e usare le funzioni di filtro delle formule di colonna in base al prompt Julian Period Number
, a seconda delle esigenze. Di seguito ne vengono riportati alcuni esempi.
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})
Implementare le funzioni di filtro in una cartella di lavoro con i parametri
È possibile applicare lo stesso principio in una cartella di lavoro. I prompt e le variabili di presentazione vengono sostituiti da un filtro del dashboard e dai parametri.
Creare tre parametri: MonthSelected, PeriodNumberSelected e YearSelected. Solo il parametro MonthSelected viene visualizzato nello sfondo in un filtro del dashboard.
I valori possibili per il parametro MonthSelected vengono definiti in base a una query SQL logica che seleziona tutti i mesi.
Per i parametri PeriodNumberSelected e YearSelected, i valori possibili non vengono popolati.
.jpg
Solo il valore iniziale viene popolato con una query logica filtrata in base al valore di MonthSelected.
.jpg