Analysis Services – szybkie wprowadzenie do wielowymiarowej analizy danych

  • Łukasz 

Duże organizacje często muszą analizować ogromne ilości danych, np. aby poprawiać swoje wyniki. Takimi analizami często zajmują się specjalne zespoły, które wiedzą w jaki sposób działa firma i które wskaźniki należy monitorować. Z uwagi na to, że występuje konieczność dzielenia między pracownikami danych i wskaźników firmowych, arkusze Excela stają się niewystarczające. W dzisiejszym artykule opiszę czym jest analityczna baza danych i w jaki sposób można wykorzystać Analysis Services, aby czerpać z niego jak najlepsze korzyści na poziomie organizacji.

Czym jest model danych i dlaczego nie wystarczy mi sama hurtownia?

W skrócie – modelem danych możemy nazwać strukturę, która będzie odwzorowywała pewien wycinek rzeczywistości (pisałem o tym w artykule o hurtowni danych). Pojawia się więc pytanie: skoro mamy hurtownię, która odwzorowuje model danych, to w jakim celu mamy wykorzystywać Analysis Services?

Odpowiedź leży w funkcjonalności tej usługi. Otóż z punktu widzenia zespołu zajmującego się analizą możemy podłączyć się narzędziem klienckim, takim jak PowerBi czy Excel, bezpośrednio do hurtowni. Będziemy mieli dostęp do danych, możemy także napisać sobie formuły, które będą sumowały jakieś wartości. Na pierwszy rzut oka wszystko jest OK.

Ale co jeśli wcale nie musielibyśmy pisać tych formuł, bo mielibyśmy je gotowe, dostępne w postaci miar kalkulowanych? Mało tego, cały zespół mógłby mieć dostęp do tej samej definicji miar, a dzięki optymalizacji wszystko działało by szybko i sprawnie? Brzmi ciekawie? A to jeszcze nie koniec możliwości Analysis Services!

Czym jest Analysis Services?

Jest to narzędzie umożliwiające przetwarzanie danych w celach analitycznych (z ang. OLAP – OnLine Analytical Processing). Innymi słowy, jest to rodzaj bazy danych wykorzystywanej do zastosowań analitycznych. Oznacza to, że dane są z niej często pobierane, a wstawiane znacznie rzadziej (często tylko raz dziennie). Baza taka jest zoptymalizowana pod kątem agregacji danych – to znaczy, że operacje takie jak sumowanie mogą być wykonywane znacznie szybciej niż w przypadku baz operacyjnych.

Generalnie Analysis Services jest dostępne w pakiecie z SQL Serverem (SQL Server Analysis Services), ale także jako usługa na platformie Azure (Azure Analysis Services). Wersję SQL Server można zainstalować w dwóch trybach, a pierwszym z nich jest tryb Wielowymiarowy (Multidimensional). Jak wynika z nazwy, modele danych składają się z wymiarów i faktów oraz tworzą tzw. hipersześciany, potocznie nazywane kostkami OLAP. Drugi tryb, to tryb Tablicowy (Tabular), który wykorzystuje silnik xVelocity i przechowuje dane w formie kolumnowej. Ta opcja dostępna jest właśnie w Azure Analysis Services.

Jaka jest zatem różnica między dwoma trybami, co wybrać? Otóż różnic jest wiele. Tryb wielowymiarowy jest bardziej rozbudowany i istnieje znacznie dłużej. Tabular za to jest ciągle rozwijany i dostępny jako usługa w chmurze. Z mojego doświadczenia wynika, że nowe projekty często zaczyna się już w Tabularze, z uwagi na możliwość szybkiego developmentu i dostępność w chmurze. Oczywiście decyzja należy do architekta, ale myślę, że to właśnie Tabular będzie coraz bardziej zyskiwał na popularności. Z punktu widzenia użytkownika w zasadzie nie ma znaczenia, który tryb wybierzemy

Miary i wymiary

Do bazy Analysis Services możemy podłączyć się różnymi narzędziami, takimi jak Excel, PowerBI czy Microsoft SQL Server Management Studio. Po podłączeniu w narzędziu klienckim widzimy wszystkie obiekty, które istnieją w bazie danych, takie jak grupy miar, miary, wymiary, atrybuty i KPI (ang. Key Performance Indicators czyli kluczowy wskaźnik efektywności).

Jak widać na powyższym obrazku, mamy wszystkie wymienione obiekty. Zwróćmy uwagę na graficzne oznaczenia.

∑ – oznacza grupę miar (inaczej nazywaną faktem). Jak wskazuje nazwa, mamy tam jedną bądź kilka miar, możliwe jest umieszczenie ich w folderach w celu lepszej organizacji.

–  oznacza wskaźniki KPI, które często prezentowane są w formie graficznej jako zielone (jeśli wartość jest oczekiwana) lub czerwone światło (jako wszelkiego rodzaju spadki).

– tabela wymiaru zawierająca jeden lub więcej atrybutów. Możliwe jest umieszczenie ich w folderach w celu lepszej organizacji.

– hierarchia, która jest umieszczana w wymiarach. Dzięki niej możemy wykonywać drążenie danych, czyli sprawdzenie jaka była sprzedaż w danej kategorii, podkategorii i konkretnym produkcie.

Jak to wygląda w praktyce? Jak wykorzystywać miary i wymiary?

Spójrzmy na powyższy obrazek. Do tabeli przestawnej, w pole „Wartości”, wstawiłem miarę, która zlicza liczbę klientów. W pole „Etykiety wierszy” wstawiłem hierarchię z kategorią produktu. Widzimy, że produkty z grypy akcesoriów kupiło 15 114 klientów. Dało się to osiągnąć bez żadnych formuł czy przechowywania danych w innych arkuszach.

Oczywiście w dalszej części artykułu opiszę w jaki sposób łączyć się do Analysis Services aby można było sprawdzić jak to wygląda w praktyce. Póki co chciałem jedynie zasygnalizować jak wygląda praca z wykorzystaniem Excela i Analysis Sevices – mam nadzieję, że mniej więcej rozumiemy już dlaczego warto używać tego narzędzia 🙂

I tu ważna uwaga, jak na załączonym przykładzie. Produkt to wymiar i ma on kilka atrybutów. Co więcej, w naszym przypadku wymiar Produkt ma atrybut Produkt, który tak naprawdę jest nazwą produktu 🙂 Warto to zapamiętać, żeby nie mylić pojęć “wymiar” i “atrybut wymiaru”. To samo dotyczy “miary” i “grupy miar”.  

Połączenie do Analysis Services z wykorzystaniem PowerBI?

W związku z tym, że techniczne aspekty Analysis Services będą opisywał w następnym artykule, teraz chciałbym pokazać w jaki sposób można podłączyć się do bazy wykorzystując Power BI. Z tego względu ta część będzie bardziej dla analityków niż deweloperów BI. Uważam jednak, że warto zaprezentować jak wygląda praca z Analysis Services – być może ktoś się zastanawia czy warto wdrożyć to narzędzie w swojej organizacji 🙂

Otóż, żeby podłączyć się do Analysis Services, wypadałoby najpierw mieć instancję. Dlatego utworzymy ją na platformie Azure. Nie będę wdawał się w techniczne szczegóły i opisywał wszystkich opcji, bo zrobię to w następnym artykule. Teraz szybko utworzymy model na potrzeby poglądowe.

Zaczynamy!

Na początku musimy zalogować się do naszego portalu Azure i odnaleźć Analysis Services. Następnie zostaniemy przeniesieni do ekranu tworzenia nowej instancji. W tym miejscu dodajemy nowy model.

Ekran tworzenia nowej instancji Analysis Services jest niemalże standardowy – wpisujemy tylko niezbędne dane (warstwę cenową omówię w następnych artykułach). Zwróćmy uwagę, że wskazujemy tutaj administratora usługi. W przypadku SQL Database i Data Warehouse mógł to być użytkownik SQL – wystarczyło więc podać login i hasło. W przypadku Analysis Services możemy podłączyć się tylko kontem domenowym (tak samo jest w przypadku SQL Server Analysis Services) – dlatego w tym miejscu pojawi się login właściciela subskrypcji (ja swój ukryłem).

Następnie klikamy “utwórz”.

Jeżeli nasza instancja została już utworzona możemy znaleźć ją w zasobach wraz z adresem serwera.

Niestety ciągle nie mamy bazy, aby pokazać, że wszystko działa, zatem wykorzystamy przykładowy model. Klikamy na nowy model i na kolejnym ekranie wybieramy opcję Sample data. Dzięki temu na naszej instancji dostępny będzie model z przykładowymi danymi.

Po odtworzeniu przykładowych danych klikamy na opcję Open in PowerBI. Oczywiście możemy podłączyć się też Excelem, ale dobrze gdyby był co najmniej w wersji 2013. Po kliknięciu na wspomnianą opcję PowerBI poprosi nas o dane do logowania. Podajemy je i połączenie jest gotowe. Niestety przykładowy model nie jest do końca dopracowany, ponieważ kolumny z tabeli faktu powinny być ukryte, aby widzieć tylko miary, ale generalnie wszystko działa i można się „pobawić”.

Uwaga, po zakończeniu pracy nie zapomnij usunąć testowej bazy, żeby nie narażać się na niepotrzebne koszty!

Dla kogo jest Analysis Services?

Jak pisałem na początku – jest to narzędzie, którego używa się głównie w większych organizacjach, ponieważ w przypadku mniejszej liczby danych i pracowników zajmujących się analizą w zupełności wystarczy zwykła baza bądź hurtownia danych. Czasami nawet arkusze Excela będą wystarczające. Analysis Services daje ogromne możliwości – to, co pokazałem, to tylko ułamek wszystkich użyteczności tego narzędzia. W praktyce to właśnie zespół deweloperów BI tworzy model i niezbędne miary, a analitycy po prostu łączą się i korzystają, co również wpływa na efektywność pracy. Zachęcam do zastanowienia się czy wdrożenie Analysis Services w naszej organizacji nie wpłynie korzystnie na lepsze podejmowanie decyzji dotyczących firmy.