Diese Informationen gelten sowohl für Arbeitsmappen als auch für klassische Dashboards.
Zeitreihenfunktionen oder Filterfunktionen?
Mit den Zeitreihenfunktionen Ago
und Todate
können Sie ganz einfach Metriken für die Berechnung von year-ago, year-to-date
usw. erstellen. Diese Methode eignet sich gut für Berichte von Business-Anwendern. Diese Funktionen generieren aber komplexe Abfragen, die sich erheblich auf die Performance auswirken. Außerdem wird jedes Mal, wenn eine dieser Funktionen in einem Bericht verwendet wird, eine weitere Unterabfrage generiert, die noch mehr Ressourcen auf der Datenbank belegt.
In klassischen Dashboards können Sie in der Regel das gleiche Ergebnis ohne Einsatz von Zeitreihenfunktionen erreichen, indem Sie Basismetriken mit der Funktion Filter
verwenden, um nach dem jeweiligen Zeitraum zu filtern. Diese Methode ist möglicherweise zu komplex für Berichte von Business-Anwendern, eignet sich aber hervorragend für Dashboards, die vom IT-Team vordefiniert wurden. Mit dieser Methode wird ein viel einfacherer und effizienterer physischer SQL-Code generiert, der keine zusätzliche Unterabfrage erfordert. Das bedeutet, dass die SQL-Abfrage schneller ist und weniger Ressourcen auf der Datenbank belegt, sodass die gesamte CPU-Auslastung und I/O-Menge reduziert wird.
Hier sehen Sie ein Beispiel für die physische Abfrage, die generiert wird, wenn Sie sowohl die Basismetrik als auch die Metrik für den Vormonat (Ago) in demselben Bericht verwenden. Dabei werden zwei Abfragen generiert:
Die folgende SQL wird generiert, wenn Sie stattdessen eine Filter
-Funktion verwenden. Hierbei wird nur eine einzelne Abfrage generiert, und der Code ist viel einfacher:
So implementieren Sie diese Funktion in einem Dashboard mit Prompts
In den meisten Implementierungen enthält das Dashboard bereits einen Prompt, damit Benutzer den gewünschten Monat auswählen können. Als Erstes müssen Sie die Zeiträume identifizieren, nach denen basierend auf einer Benutzerauswahl gefiltert werden soll.
In diesem einfachen Beispiel wird davon ausgegangen, dass die Calendar-Dimension die Spalte Julian Period Number
enthält. Dadurch wird die Berechnung viel einfacher. Der Vorgang kann auch ohne Julian Period Number
durchgeführt werden, benötigt dann aber viel komplexere Formeln zum Berechnen des ausgewählten Zeitraums.
Zunächst muss der Prompt für Month
eine Präsentationsvariable (im unten stehenden Beispiel MonthSelected
) auffüllen. Als Nächstes erstellen Sie einen separaten Dashboard-Prompt, um den entsprechenden Wert für Julian Period Number
abzurufen und in eine andere Variable (PeriodNumberSelected
) einzugeben. Dieser zweite Prompt wird dem Endbenutzer nicht angezeigt. Stattdessen wird er im Dashboard ausgeblendet, und der Wert wird automatisch basierend auf der Variable MonthSelected
berechnet. Siehe das folgende Beispiel.
Month
, um die Präsentationsvariable hinzuzufügen.
Julian Period Number
.
Julian Period
hinzu.
Month
, und verwenden Sie die Spaltenformel-Filterfunktionen basierend auf Julian Period Number
nach Bedarf. Hier finden Sie einige Beispiele:
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})
So implementieren Sie diese Funktion in einer Arbeitsmappe mit Parametern
Dasselbe Prinzip kann auch in Arbeitsmappen angewendet werden. Prompts und Präsentationsvariablen werden durch einen Dashboard-Filter und Parameter ersetzt.
Erstellen Sie drei Parameter: MonthSelected, PeriodNumberSelected und YearSelected. Nur der Parameter MonthSelected wird auf der Leinwand in einem Dashboard-Filter angezeigt.
Die möglichen Werte für den Parameter MonthSelected werden basierend auf einer logischen SQL-Anweisung definiert, die alle Monate auswählt.
Für die Parameter PeriodNumberSelected und YearSelected werden keine möglichen Werte aufgefüllt. Nur der anfängliche Wert wird mit einer logischen Abfrage gefüllt, die basierend auf dem Wert von MonthSelected gefiltert wird. Hierzu wird auf die folgenden Beispiele verwiesen.