Zeitreihen

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:

Beschreibung von GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg folgt
.jpg

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:

Beschreibung von GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg folgt
.jpg

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.

  1. Ändern Sie den Prompt Month, um die Präsentationsvariable hinzuzufügen.

    Beschreibung von GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.jpg folgt
    .jpg

  2. Erstellen Sie einen separaten Dashboard-Prompt für Julian Period Number.

    Beschreibung von GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.jpg folgt
    .jpg

  3. Bearbeiten Sie die Dashboard-Eigenschaften, und klicken Sie auf Filter und Variablen.

    Beschreibung von GUID-39A7720B-5345-418B-BDEE-33BC7426FAF0-default.jpg folgt
    .jpg

  4. Fügen Sie den Prompt Julian Period hinzu.

    Beschreibung von GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg folgt
    .jpg

  5. Löschen Sie anschließend in der Analyse den globalen Filter für die Spalte 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.

Beschreibung von GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg folgt
.jpg

Beschreibung von GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg folgt
.jpg