Filterfunktionen statt Zeitreihenfunktionen verwenden

In diesem Thema wird der Unterschied zwischen Zeitreihen- und Filterfunktionen beschrieben. Außerdem wird die Implementierung von Filterfunktionen erklärt. Diese Informationen gelten sowohl für Arbeitsmappen als auch für klassische Dashboards.

Zeitreihenfunktionen und 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, jedoch generieren diese Funktionen 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 gut 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 ausgeführt wird und weniger Datenbankressourcen belegt, was die gesamte CPU-Auslastung und Zahl der Ein-/Ausgabeaufrufe reduziert.

Die folgende Abbildung zeigt ein Beispiel für die physische Abfrage, die generiert wird, wenn Sie die Basismetrik und die Metrik für den Vormonat Ago im selben Bericht verwenden. Dabei werden zwei Abfragen generiert.

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

Die folgende Abbildung zeigt den SQL-Code, der für eine einzelne Abfrage generiert wird, wenn Sie stattdessen eine Filter-Funktion verwenden.

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

Filterfunktionen mit Prompts in einem Dashboard implementieren

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 Beispiel enthält die Calendar-Dimension die Spalte Julian Period Number. Dadurch wird die Berechnung 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.

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

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

  2. 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.

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

  3. Bearbeiten Sie die Dashboard-Eigenschaften, und klicken Sie auf Filter und Variablen.
  4. Fügen Sie den Prompt-Pfad Julian Period hinzu.

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

  5. Löschen Sie 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})

Filterfunktionen in einer Arbeitsmappe mit Parametern implementieren

Sie können dasselbe Prinzip auch in Arbeitsmappen anwenden. 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.Beschreibung von GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg folgt
.jpg

Nur der anfängliche Wert wird mit einer logischen Abfrage gefüllt, die basierend auf dem Wert von MonthSelected gefiltert wird.Beschreibung von GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg folgt
.jpg