W tym temacie opisano różnice między funkcjami ciągów czasowych a funkcjami filtrów, a także wyjaśniono, jak implementować funkcje filtrów. Te informacje dotyczą zarówno skoroszytów, jak i klasycznych pulpitów informacyjnych.
Funkcje ciągów czasowych a funkcje filtrów
Funkcje ciągów czasowych Ago
i Todate
oferują prosty sposób tworzenia miar służących do obliczania wartości takich jak year-ago, year-to-date
itp. Ta metoda dobrze sprawdza się w raportach dla użytkowników biznesowych, jednak funkcje te generują złożone zapytania, które znacząco obniżają wydajność. Ponadto za każdym razem, gdy jedna z tych funkcji jest używana w raporcie, jest generowane dodatkowe zapytanie podrzędne, które zużywa jeszcze więcej zasobów w bazie danych.
W klasycznych pulpitach informacyjnych zazwyczaj można uzyskać wyniki odpowiadające wynikom użycia funkcji ciągów czasowych, używając miar podstawowych z funkcją Filter
w celu wykonania filtrowania w odpowiednim okresie. Ta metoda może być zbyt złożona, aby używać jej w raportach dla użytkowników biznesowych, ale dobrze sprawdza się w przypadku pulpitów informacyjnych predefiniowanych przez zespół IT. Gdy jest używana ta metoda, generowany fizyczny kod SQL jest znacznie prostszy i bardziej efektywny, a ponadto nie jest wymagane dodatkowe zapytanie podrzędne. Oznacza to, że zapytanie SQL działa szybciej i zużywa mniej zasobów w bazie danych, co spowoduje zmniejszenie ogólnego użycia CPU bazy danych oraz liczby wywołań we-wy.
Na poniższym rysunku pokazano przykład fizycznego zapytania wygenerowanego, gdy w tym samym raporcie jest używana zarówno miara podstawowa, jak i miara Ago
miesiąca. Generowane są dwa zapytania.
Na poniższym rysunku znajduje się kod SQL wygenerowany dla pojedynczego zapytania w przypadku, gdy zamiast tego zostanie użyta funkcja Filter
.
Implementacja funkcji filtrów w pulpicie informacyjnym przy użyciu filtrów monitujących
W większości implementacji pulpit informacyjny zawiera już filtr monitujący, dzięki czemu użytkownicy mogą wybrać miesiąc, którego szukają. W pierwszym kroku należy na podstawie opcji wybranych przez użytkownika zidentyfikować okresy, dla których ma odbywać się filtrowanie.
W tym przykładzie wymiar kalendarza zawiera kolumnę Julian Period Number
, co ułatwi obliczenia. Można to też zrobić bez kolumny Julian Period Number
, ale wymagałoby to użycia bardziej złożonych formuł w celu obliczenia wybranych okresów.
Month
, aby dodać zmienną prezentacyjną (MonthSelected
).
Julian Period Number
i umieścić ją w innej zmiennej (PeriodNumberSelected
). Ten drugi filtr monitujący nie jest pokazywany użytkownikowi końcowemu, ale jest ukryty na pulpicie informacyjnym, a wartość jest obliczana automatycznie na podstawie zmiennej MonthSelected
.
Julian Period
.
Month
i użyć funkcji filtra formuł kolumny na podstawie wymaganej wartości Julian Period Number
. Poniżej przedstawiono kilka przykładów:
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})
Implementacja funkcji filtrów w skoroszycie przy użyciu parametrów
Tę samą zasadę można stosować w skoroszycie. Filtry monitujące i zmienne prezentacyjne są zastępowane przez filtr i parametry pulpitu informacyjnego.
Należy utworzyć trzy parametry: MonthSelected, PeriodNumberSelected i YearSelected. Na kanwie w filtrze pulpitu informacyjnego jest wyświetlany tylko parametr "MonthSelected".
Możliwe wartości parametru "MonthSelected" są definiowane na podstawie logicznego zapytania SQL wybierającego wszystkie miesiące.
W przypadku parametrów "PeriodNumberSelected" i "YearSelected" możliwe wartości nie są wypełniane.
.jpg"
Tylko wartość początkowa jest wypełniana za pomocą zapytania logicznego filtrowanego na podstawie wartości parametru MonthSelected.
.jpg"