Zwiększ swoją produktywność
Łukasz Bielak

Łukasz Bielak

Azure Analysis Services – 5 narzędzi, które zwiększą twoją produktywność!

Czy zdarzyło Ci się kiedyś, że pracując przy projekcie musiałeś wykonać jakąś pracę, która była strasznie monotonna? Czułeś oczywiście, że takowa jest, ale ktoś to musi zrobić. Oczywiście zdarza się to w niemal każdym projekcie, a tworzenie modelu i miar Azure Analysis Services nie jest tu żadnym wyjątkiem. A co jeśli powiem Ci, że bardzo dużo rzeczy można zautomatyzować? Mało tego, przedstawię narzędzia, które nie tylko umożliwiają generowanie miar Time Intelligence, ale także odpowiednio sformatują kod i pomogą nam sprawdzić czy nasza robota została wykonana dobrze!

DAX Studio

Tego Pana chyba nie trzeba przedstawiać. Podstawowe narzędzie pracy każdego dewelopera BI. Bardzo cenione za świetny edytor, który jest intuicyjny, szybki, a przede wszystkim bardzo ładnie koloruje składnie i umożliwia formatowanie kodu. Jeśli zdarzyło Ci się kiedyś pisać miary bezpośrednio w Power BI bądź w Visual Studio – wiesz, że czasem brakuje możliwości szybkiego sprawdzenia wyniku czy napisania bardzo dużego skryptu. DAX Studio rozwiąże te problemy. Nie dość, że mamy podgląd całej struktury modelu, to możemy jeszcze definiować istniejące w modelu miary aby podejrzeć ich kod.

Bardzo istotne jest to, że podczas wykonania zapytań możemy wyświetlić jego plan, dzięki czemu możliwe jest znalezienie wąskiego gardła i wprowadzenie poprawki. W nowej wersji znajdziemy także możliwość przeglądania informacji o rozmiarze poszczególnych kolumn, zastosowanej kompresji itd. Są to rzeczy znane z Vertipaq Analyser. Bardzo ciekawa jest też funkcjonalność śledzenia aktualnie uruchomionych zapytań (coś jak Profiler w SQL Server). Jest to przydatne podczas szukania przyczyny wolnego raportu Power BI, który odpytuje Azure Analysis Services. Szczerze mówiąc nie wyobrażam sobie pracy bez tego narzędzia i serdecznie je polecam!

Tabular Editor

Czy zdarzyło Ci się kiedyś narzekać, że podczas developmentu modelu Visual Studio, działa on wolno i zawiesza się? Pewnie tak. A czy zastanawiałeś się z czego to wynika? Zasadniczo model Azure Analysis Services to plik JSON. Nieważne jak wielki by nie był, to edycja pliku tekstowego nie powinna być trudna dla takiego narzędzia jak Visual Studio, prawda? Rzeczywiście tak powinno być. Natomiast w rzeczywistości Visual Studio tworzy sobie przestrzeń roboczą i ładuje do niej część danych, przez co pojawiają się takie problemy z wydajnością.

Rozwiązaniem tego problemu jest Tabular Editor. Jest to narzędzie, które pracuje tylko i wyłącznie na pliku JSON modelu, przez co nie uświadczymy żadnych problemów wydajnościowych. Zmiana kilku atrybutów w kilku miarach? To żaden problem – wystarczy zaznaczyć i zmienić. Taka operacja nie byłaby możliwa w Visual Studio. Narzędzie ma także bardzo dobą funkcjonalność, jaką jest Advanced Scripting. Dzięki temu z pomocą C# możemy operować na miarkach. Chcemy zmienić formatowanie wszystkich miar, które kończą się frazą LY? Nie ma problemu – piszemy pętle i gotowe. A może chcemy do każdej miary dodać 5 miar Time Intelligence? Nic prostszego! Oczywiście, powinniśmy znać C#, ale z drugiej strony tak proste konstrukcje jak pętle powinny być nam znane, wyglądają one analogicznie w większości języków programowania.

Kod Tabular Editora, jak i obszerna dokumentacja, dostępna jest na GitHubie. Zachęcam do zapoznania się z podstroną Blog, gdzie znajdują się świetne przykłady dodane przez autora. Warto zobaczyć także film na Youtube prezentujący wprowadzenie do narzędzia.

Vertipaq Analyser

Jeśli kiedykolwiek walczyłeś z problemami wydajnościowymi modelu Azure Analysis Services to narzędzie z pewnością jest Ci znane. Umożliwia ono przede wszystkim monitorowanie modelu, tego ile zajmuje i jaka jest jego struktura. Oprócz tego możliwa jest także weryfikacja zastosowanie przez model kompresji do konkretnych kolumn. Vertipaq Analyser jest plikiem Excela, w którym został utworzony model Power Pivot. Ten składa się z kilku tabel i zawiera metadane modelu Analysis Services. Co jest dla nas istotne, możemy sprawdzić, która kolumna zajmuje najwięcej, a następnie zastosować poprawki optymalizacyjne i sprawdzić czy pomogło 🙂 

BISM Normalizer

Jak wiadomo, Visual Studio umożliwia wdrożenie modelu na serwer. Niestety nie pozwala na wdrożenie poszczególnych jego elementów. Co mam na myśli? Weźmy za przykład taką sytuację. Po wdrożeniu produkcyjnym klient zgłasza zapotrzebowanie na kolejne miary i dodatkowe tabele w modelu. Co więcej – te już istniejące mają zostać niezmienione. Po wprowadzeniu poprawek na środowisko deweloperskie i przetestowaniu zapada decyzja o wdrożeniu na produkcję. Możemy oczywiście wdrożyć to za pomocą Visual Studio, ale istnieje oczywiście pewne ryzyko, że przez przypadek zmieniliśmy niechcący pewne obiekty i po wdrożeniu będzie problem. Takie sytuacje rozwiązuje BISM Normalizer. Wystarczy doinstalować go do naszego Visual Studio (na przykład stąd). Wtyczka porównuje definicje modelu między projektem a serwerem (lub między dwoma serwerami), a następnie umożliwia wybranie obiektów które chcemy wdrożyć. Dzięki temu szansa, że coś zostanie wdrożone niepotrzebnie, maleje. Osobiście bardzo lubię korzystać z BISM Normalizera przy wdrażaniu modeli. Oczywiście możemy także porywać modele jeśli interesują nas jedynie różnice między nimi.

JSON

Każdy model Azure Analysis Services jest opisywany w postaci pliku JSON. Co jest bardzo praktyczne, ponieważ tak naprawdę, aby zobaczyć definicję miar wystarczy jedynie otworzyć plik *.BIM w dowolnym notatniku. Co więcej, jeżeli chcemy edytować plik – nie ma problemu. Jest to znacznie szybsze niż w przypadku Visual Studio, ale niestety możemy popełnić jakiś błąd składniowy. Otwarcie pliku JSON jest szczególnie istotne jeśli chcemy zmienić jakiś fragment, który pojawia się w wielu miarach. W takiej sytuacji wystarczy kliknąć opcję „Zamień” w notatniku i gotowe! Jako ciekawostkę dodam, że dużo opcji konfiguracji modelu nie jest dostępnych z Visual Studio i można je wpisać w definicję JSONa. Po wdrożeniu na serwer oczywiście wszystko zadziała. Edycja JSONa jest szczególnie przydatna w przypadku modyfikacji wielu miar lub wklejania ich z jakiegoś generatora.

Podsumowanie

Przedstawiłem dzisiaj kilka narzędzi, które bardzo pomagają mi w codziennej pracy przy modelach Tabularowych. Według mnie najbardziej niedocenionym jest Tabular Editor. Dzięki opcji zaawansowanego skryptowania możemy uniknąć mozolnego poprawiania miar i zautomatyzować pracę. Jeśli podczas pracy zauważymy, że wykonujemy jakieś powtarzalne czynności przy developmencie, warto pomyśleć nad napisaniem generatora, chociażby w Visual Basicu. Często możemy wygenerować część struktury lub nawet większość miar i wkleić je bezpośrednio do pliku *.BIM, co znacznie przyspiesza pracę i niweluje błędy.

Udostępnij post

Share on facebook
Share on twitter
Share on linkedin
Share on print
Share on email

Pozostańmy w kontakcie

Jeżeli chcesz być na bieżąco informowany o nowych wpisach oraz dostawać materiały, których nie publikuję na blogu - zapisz się do newslettera!