Czego potrzebuje skuteczny dashboard operacyjny? Jak Level of Detail expression skraca czas przygotowania wizualizacji? Przyjrzyjmy się kluczowym zasadom na przykładzie histogramu z najbardziej niebezpiecznymi regionami świata.
Jak stworzyć histogram już wiadomo. Jak stworzyć go dynamicznie z parametrami?
Parametr Wybierz widok steruje dystrybucją ataków między regionami świata lub krajami.
Tworzę parametr typu String o nazwie Wybierz widok z listą wartości Country Txt dla kraju i Region Txt dla regionu.
Wykorzystuję parametr w nowym polu kalkulacyjnym Wybierz widok connector, aby móc przełączać rozmieszczenie danych wg regionów i krajów.
Wybierz widok connector
case [Wybierz widok]
when "Country Txt" then [Country Txt]
when "Region Txt" then [Region Txt]
END
Dodaję Wybierz widok connector do kolumn, które zamieniam na Measure - Count (Distinct).
Teraz obliczam, ile ataków wystąpiło w każdym kraju. Tworzę pole kalkulacyjne, które dla każdego kraju zlicza wszystkie rekordy.
Ilość ataków
{ FIXED ([Country Txt]):sum([Number of Records])}
A dlaczego to robię? FIXED agreguje wszystkie rekordy na poziomie wymiaru Country Txt. Przyda się to do rozwinięcia szczegółowego widoku o osobnych atakach. Bez FIXED otrzymasz histogram tylko przy dodaniu wymiaru Country Txt do Marks Detail. Nie umożliwia to dalszego, logicznego „rozwijania” widoku.
Tworzę osobne przedziały ataków dla krajów i regionów przy pomocy dwóch calculated fields. Kraj (bins) dzieli wartość Ilość ataków w zdefiniowane przedziały.
Kraj (bins)
{FIXED [Country Txt]:
(IF sum([Ilość ataków]) <= 50 then "0-50"
ELSEIF SUM([Ilość ataków]) <=100 then "51-100"
ELSEIF sum([Ilość ataków]) <= 122 then "101 - 122"
ELSEIF sum([Ilość ataków]) <=152 then "123 - 152"
ELSEIF sum([Ilość ataków]) >=153 then "ponad 153"
END)}
Analogiczne dla każdego regionu definiuję inne przedziały używając tego samego pola Ilość ataków.
Region (bins)
{FIXED [Region Txt]:
(IF sum([Ilość ataków]) <= 1000 then "0-1K"
ELSEIF SUM([Ilość ataków]) <=11000 then "1K-11K"
ELSEIF sum([Ilość ataków]) <= 21000 then "11K-21K"
ELSEIF sum([Ilość ataków]) <=31000 then "21K-31K"
ELSEIF sum([Ilość ataków]) >31000 then "ponad 31K"
END)}
Pole kalkulacyjne od…do ataków łączy przedziały Region (bins) i Kraj (bins) z parametrem Wybierz widok.
od…do ataków
case [Wybierz widok connector]
when [Country Txt] then [Kraj (bins)]
when [Region Txt] then [Region (bins)]
END
Dodaję nowe pole do wierszy.
Zazwyczaj aktualność pomiarów ogranicza się do MTD, WTD lub z ostatnich godzin. Tu stosujemy jedynie historyczny filtr Zakres dat do wszystkich arkuszy w dashboardzie (w widoku dashboardu rozwiń menu filtru Zakres dat, wybierz Apply to Worksheets – Selected Worksheets).
Jak wspomnieliśmy tutaj filtr kontekstowy znajduje się wyżej w hierarchii niż Level of Details FIXED. W takim razie częstość krajów/regionów dotkniętych atakami będzie się zmieniać w zależności od wybranego okresu czasowego.
Wprowadzam dwa poziomy drill-down.
#1 Częstość występowania ataków w krajach
Dodaję do kolumn miarę Ilość ataków, zamieniam na Dimension. Do wierszy umieszczam Country Txt, Measure: Count Distinct. Ten widok pozostawiam już nie zagregowany w konkretne przedziały.
Na dashboardzie dodaję filtr akcji typu Select z worksheetu ogólnego LoD bins kraj/region do worksheetu aktualnego histogram drill down.
#2 Szczegóły o atakach w wybranym przedziale
Ostatni drill-down pozostawiam na najbardziej szczegółowe dane o dacie ataku, jego rodzaju i ilości zaatakowanych miast w kraju, który wybieram z poprzedniego histogramu. Tworzę heat mapę: dodaję do wierszy Country Txt, Attack Type I datę, którą trzeba skalkulować samemu dla tej bazy.
event date
MAKEDATE([Iyear],[Imonth],[Iday])
Również zmieniam typ danych na Date: Change Data Type - Date
Do Marks Color i Label dodaj City jako Count Distinct.
Dodaj kolejny filtr akcji z poprzedniego worksheet na obecny wg ustawień:
Co prawda, oprócz wiadomości o najbardziej atakowanych krajach, warto by było mieć wgląd w najbardziej niebezpieczne miasta. Dane z tej bazy są granularne do miast, dla chętnych pozostawiam pole do popisu szykując histogramy z miastami:)
Poniższy prosty dashboard przedstawia po krótce główne wymogi operacyjnego dashboardu. Bez Level of Detail expressions nie dałoby się aż tyle wyciągnąć z danych. Tę wiedzę możesz wykorzystać odkrywaniu odchyleń, by móc szybko zaradzić sytuacji. I tak o to stworzyliśmy dynamiczny histogram z LoD i parametrami, nie brzmi dumnie?:)
Cechy dashboardu operacyjnego
Dynamiczny: parametry
Dynamiczność widoków zapewnia się m.in. wyborem parametrów. Pierwszy worksheet LoD bins kraj/region przedstawi najbardziej ogólny histogram częstości ataków terrorystycznych w regionach i krajach.Jak stworzyć histogram już wiadomo. Jak stworzyć go dynamicznie z parametrami?
Parametr Wybierz widok steruje dystrybucją ataków między regionami świata lub krajami.
Tworzę parametr typu String o nazwie Wybierz widok z listą wartości Country Txt dla kraju i Region Txt dla regionu.
Wykorzystuję parametr w nowym polu kalkulacyjnym Wybierz widok connector, aby móc przełączać rozmieszczenie danych wg regionów i krajów.
Wybierz widok connector
case [Wybierz widok]
when "Country Txt" then [Country Txt]
when "Region Txt" then [Region Txt]
END
Dodaję Wybierz widok connector do kolumn, które zamieniam na Measure - Count (Distinct).
Teraz obliczam, ile ataków wystąpiło w każdym kraju. Tworzę pole kalkulacyjne, które dla każdego kraju zlicza wszystkie rekordy.
Ilość ataków
{ FIXED ([Country Txt]):sum([Number of Records])}
A dlaczego to robię? FIXED agreguje wszystkie rekordy na poziomie wymiaru Country Txt. Przyda się to do rozwinięcia szczegółowego widoku o osobnych atakach. Bez FIXED otrzymasz histogram tylko przy dodaniu wymiaru Country Txt do Marks Detail. Nie umożliwia to dalszego, logicznego „rozwijania” widoku.
Histogram bez FIXED w polu kalkulacyjnym |
Histogram z FIXED |
Tworzę osobne przedziały ataków dla krajów i regionów przy pomocy dwóch calculated fields. Kraj (bins) dzieli wartość Ilość ataków w zdefiniowane przedziały.
Kraj (bins)
{FIXED [Country Txt]:
(IF sum([Ilość ataków]) <= 50 then "0-50"
ELSEIF SUM([Ilość ataków]) <=100 then "51-100"
ELSEIF sum([Ilość ataków]) <= 122 then "101 - 122"
ELSEIF sum([Ilość ataków]) <=152 then "123 - 152"
ELSEIF sum([Ilość ataków]) >=153 then "ponad 153"
END)}
Analogiczne dla każdego regionu definiuję inne przedziały używając tego samego pola Ilość ataków.
Region (bins)
{FIXED [Region Txt]:
(IF sum([Ilość ataków]) <= 1000 then "0-1K"
ELSEIF SUM([Ilość ataków]) <=11000 then "1K-11K"
ELSEIF sum([Ilość ataków]) <= 21000 then "11K-21K"
ELSEIF sum([Ilość ataków]) <=31000 then "21K-31K"
ELSEIF sum([Ilość ataków]) >31000 then "ponad 31K"
END)}
Pole kalkulacyjne od…do ataków łączy przedziały Region (bins) i Kraj (bins) z parametrem Wybierz widok.
od…do ataków
case [Wybierz widok connector]
when [Country Txt] then [Kraj (bins)]
when [Region Txt] then [Region (bins)]
END
Dodaję nowe pole do wierszy.
Monitoruje zmiany w czasie rzeczywistym: filtry czasu
Zastosuj jeden filtr do wybranych arkuszy |
Jak wspomnieliśmy tutaj filtr kontekstowy znajduje się wyżej w hierarchii niż Level of Details FIXED. W takim razie częstość krajów/regionów dotkniętych atakami będzie się zmieniać w zależności od wybranego okresu czasowego.
Intuicyjne przechodzenie w szczegółowe widoki
Dane przedstawione statycznie i na najwyższym stopniu ogólności nie pozwolą zidentyfikować, dlaczego aktualnie wystąpiła anomalia (np. drastycznie spadła liczba targetowanych klientów, zwiększyła się ilość występowania błędu w systemie). Na dashboardzie operacyjnym szczegółowe dane powinny być dostępne albo przez drill-down, albo najechanie myszką na obiekt.Wprowadzam dwa poziomy drill-down.
Filtr akcji w dashboardzie do drill-down na pierwszym poziomie |
Dodaję do kolumn miarę Ilość ataków, zamieniam na Dimension. Do wierszy umieszczam Country Txt, Measure: Count Distinct. Ten widok pozostawiam już nie zagregowany w konkretne przedziały.
Na dashboardzie dodaję filtr akcji typu Select z worksheetu ogólnego LoD bins kraj/region do worksheetu aktualnego histogram drill down.
#2 Szczegóły o atakach w wybranym przedziale
Ostatni drill-down pozostawiam na najbardziej szczegółowe dane o dacie ataku, jego rodzaju i ilości zaatakowanych miast w kraju, który wybieram z poprzedniego histogramu. Tworzę heat mapę: dodaję do wierszy Country Txt, Attack Type I datę, którą trzeba skalkulować samemu dla tej bazy.
Zmień typ daty dla event date |
event date
MAKEDATE([Iyear],[Imonth],[Iday])
Również zmieniam typ danych na Date: Change Data Type - Date
Do Marks Color i Label dodaj City jako Count Distinct.
Dodaj kolejny filtr akcji z poprzedniego worksheet na obecny wg ustawień:
Filtr akcji w dashboardzie do drill-down na drugim poziomie |
Typy wykresów
Najprostsze, aż do znudzenia. W sytuacjach stresowych dane muszą być przedstawione prosto, jasno i nie wprowadza w błąd.Co prawda, oprócz wiadomości o najbardziej atakowanych krajach, warto by było mieć wgląd w najbardziej niebezpieczne miasta. Dane z tej bazy są granularne do miast, dla chętnych pozostawiam pole do popisu szykując histogramy z miastami:)
KOMENTARZE