Power BI już od dłuższego czasu stało się jedną z wiodących technologii raportowych dostępnych na rynku. Jego popularność systematycznie wzrasta i jest to spowodowane kilkoma czynnikami takimi jak bogactwo wizualizacji, stosunkowo prosty interfejs budowy raportów, co miesięczne aktualizacje i wiele innych aspektów, które w ostatecznym rozrachunku zbudowały sukces całej usługi. Oprócz licznych zalet związanych z omawianym systemem klienci często mimo szczerych chęci nie inwestowali w tego typu rozwiązanie ze względu na fakt, że Power BI był i nadal jest usługą chmurową. Organizacje nadal nie mają świadomości tego czym jest chmura i co do zasady nie chcą się do niej migrować. Niektóre gałęzie biznesu nie tylko nie chcą ale wręcz nie mogą przechowywać swoich danych w chmurze – czy w takim wypadku całkowicie muszą rezygnować z Power BI? Niekoniecznie – zawsze mogli używać Power BI Desktop i tradycyjnie wymieniać się plikami pbix co oczywiście wiązało się z wieloma niedogodnościami. To do niedawna było jedyne możliwe wyjście jeśli nie chcieliśmy używać chmury, a chcieliśmy korzystać z ogromu możliwości Power BI. Dlaczego do niedawna? Bo od jakiegoś czasu mamy do dyspozycji tzw. Power BI Report Server czyli oprogramowanie do rozwiązań hybrydowej chmury umożliwiające hostowanie raportów Power BI używając własnej infrastruktury. Jak to działa – przyjrzymy się temu bliżej w ramach niniejszego artykułu.
Na samym początku zainstalujmy sobie Power BI Report Server. Instalator możecie ściągnąć ze stron Microsoftu (tutaj wersja October 2017 – klik). Sama instalacja nie powinna nam przysporzyć problemów i sprowadza się do kilku bardzo prostych kroków:
- Po uruchomieniu instalatora nie mamy za wiele do wyboru i po zapoznaniu się z polityką prywatności wybieramy instalację
2. W drugim oknie możemy wpisać klucz licencyjny lub wybrać licencję Evaluation bądź Developer:
Dalej mamy postanowienia licencyjne, które oczywiście musimy zaakceptować:
Kolejny krok nie daje nam możliwości wyboru i jedyną możliwością jaką mamy do dyspozycji jest instalacja samego Report Servera bez możliwości doinstalowania usługi bazodanowej. To okienko może dać nam do myślenia, że w przyszłości być może zostanie dodana taka możliwość postawienia instancji SQL Server na potrzeby Report Servera. W tym miejscu mamy również link, który pokaże nam wspierane edycje SQL Server. W tym miejscu może pojawić się pytanie po co nam silnik bazodanowy? Odpowiedź jest raczej oczywista tj. nasz serwer potrzebuje podobnie jak Reporting Services dwóch baz: ReportServer oraz ReportServerTempDb żeby móc działać prawidłowo. Ogólnie rzecz biorąc warto pamiętać, że Power BI Report Server jest bardzo mocno osadzony na usłudze SSRS i pozwala niemal na wszystko to co tradycyjny serwer jak np. możliwość wrzucania raportów mobilnych, subskrypcje itd. W dalszej części skonfigurujemy sobie połączenie do usługi SQL Server – Microsoft wskazał, że może to być SQL Server w wersji 2008 lub wyżej.
Dalej do wyboru miejsce docelowe oprogramowania:
Po kilku minutach serwer zostanie zainstalowany i możemy zacząć go konfigurować:
Na całe szczęście do konfiguracji serwera używamy tego samego narzędzia, którego używamy w przypadku SSRS czyli Reporting Services Configuration Manager. Sam serwer został zainstalowany jako instancja nazwana PBIRS i z punktu widzenia usług jest to kolejna wersja SSRS. Sama konfiguracja przebiega dokładnie tak samo jak w przypadku SSRS i sprowadza się do ustawienia następujących rzeczy:
- konta na którym działa usługa
- adresu URL report servera i portalu raportów
- podłączenia do instancji bazy danych aby stworzyć/użyć istniejących baz raportów
oraz kilku innych rzeczy, które na ten moment nie są dla nas istotne. Ustalcie zatem adresy portalu raportów i report servera oraz konto (warto w tym miejscu pomyśleć o koncie dedykowanym) na którym usługa będzie działać. Dodatkowo jeżeli używamy uwierzytelnienia Windows to aby działało ono w prawidłowy sposób to musimy skonfigurować Kerberosa lub użyć konta dedykowanego będącego administratorem serwera Analysis Server z EffectiveUserName w momencie gdy łączymy się do tej usługi (na ten moment pozostawimy to bez głębszego wytłumaczenia ale może w przyszłości uda mi się o tym napisać). W moim przypadku wszystko znalazło się na tym samym serwerze więc sprowadziło się do kliknięcia “Apply” na zakładce Service oraz do wybrania URL dla report servera i report managera (portalu raportów) – wybrałem standardowe URL rozszerzone o sufiks “pbi”:
Aby sprawdzić czy wszystko działa poprawnie możemy połączyć się z report server lub z report managerem – naszym oczom powinna ukazać się strona podobna do poniższego zrzutu:
Jak możecie zauważyć wygląd do złudzenia przypomina Report Managera dostępnego w Reporting Services od SQL Server 2016. Pozwala on na wyświetlanie nie tylko raportów Power BI ale również arkuszy Excel (po instalacji Office Online Server) oraz tak jak już wspomniałem raportów mobilnych oraz typu “paginated”.
Power BI Report Server ma swój własny cykl wydawniczy, który nie jest tym samym cyklem który widzimy w wersji chmurowej Power BI. Microsoft doszedł do wniosku, że aktualizacja co kwartał nie powinny przysparzać administratorom wielu problemów co mogło by się zdarzyć w przypadku aktualizacji miesięcznych. Narzędzie do tworzenia raportów i modeli czyli Power BI Desktop jest inne dla wersji chmurowej oraz inny dla wersji Power BI Report Server (wersję z października 2017 ściągnąć z tej strony). W momencie gdy pracujemy z oboma wersjami to po czym poznamy z którym narzędziem mamy do czynienia? Możemy to zrobić chociażby po ikonie narzędzia ( ten z wersją w nawiasie to wersja Report Server):
Różnicę znajdziemy w wielu innych miejscach i funkcjonalnościach np. w przypadku wersji Report Server pod przyciskiem Save As mamy do dyspozycji zapis bezpośrednio na Report Server:
Rozróżnianie wersji jest konieczne bo nie są one ze sobą w żaden sposób kompatybilne ze względnu na wspomniane wcześniej różne cykle wydawnicze.
Aby przetestować funkcjonalność stworzyłem dwa proste raporty Power BI bazując na jeden tabeli faktów (Fact.Sales) z WideWorldImportersDW i towarzyszących wymiarów. Oba mają identyczną strukturę z czego jeden ma dane zaimportowane, a drugi odpytuje bazę danych bezpośrednio używając mechanizmu DirectQuery. Sam sposób przygotowania tych raportów nie jest zbytnio skomplikowany więc pozwoliłem go sobie pominąć – bardziej interesują nas efekty. Na raportach stworzyłem tabelę oraz wykres kolumnowy tak abyśmy mieli możliwość jakiejś interakcji z raportem. Samo wstawienie raportu na serwer nie powinno sprawić problemów i można to zrobić na dwojaki sposób – po pierwsze możliwy jest jak już wspomniałem zapis bezpośrednio na serwerze lub poprzez prosty upload inicjowany od strony serwera:
Zaimportowałem oba raporty i działają one bez zarzutu w obu trybach
Ich działanie jest bez problemowe i wygląda to naprawdę obiecująco. Poniżej animacja z pracy z zaimportowanymi danymi (plik zajmował około 80MB):
Praca w trybie DirectQuery również wygląda na wydajną i nie powinna sprawiać problemu:
Porównanie tradycyjnego Report Servera z Power BI Report Server oraz usługi chmurowej Powerbi.com znajduje się na poniższej grafice od producenta:
Jak widać PBIRS ma łączyć świat on-premise z chmurą i będzie wspierał praktycznie wszystkie typy raportów dostępnych w stosie technologicznym platformy danych. Warto sobie również uzmysłowić, że PBI Report Server ma być “krokiem przed” migracją do chmury gdzie ostatecznie i tak organizacja powinna myśleć o przejściu na Azure. Grafika informuje nas również jak wygląda w tym przypadku licencjonowanie które wygląda tak, że potrzebujemy Power BI Premium + dla każdego kto będzie publikował raporty potrzeba licencji Power BI Pro lub SQL Server Enterprise z Software Assurance z licencjonowaniem per core. Całkiem sporo tego prawda? Co do niuansów licencyjnych nie jestem ekspertem więc nie będę w nie bardzo szczegółowo wnikał ale sama opcja Power BI Premium jest rozwiązaniem Enterprise i z całą pewnością będzie to opłacalne rozwiązanie dla dużych implementacji Power BI (dostępny jest nawet kalkulator kosztów, który znajdziecie tutaj). W tym miejscu warto również zaznaczyć, że Power BI Premium samo w sobie nie jest rozwiązaniem on-premise ale raczej hybrydowym ze względu na fakt, iż w ramach tej licencji kupujemy zasoby w chmurze i prawo do użycia PBIRS na konkretnych zasobach on-premise. Na grafice można również zauważyć, że cykl aktualizacji jest tutaj oznaczony jako “rapid” – czy możemy się spodziewać tak częstych aktualizacji jak w przypadku tejże usługi powerbi.com? Z całą pewnością nie. Poniżej możecie zauważyć oś czasu aktualizacji:
Od momentu gdy wyjdzie nowa wersja nie mam obowiązku do aktualizacji i będziemy dostawać jeszcze aktualizacje bezpieczeńswa przez następne 12 miesięcy. Bardzo fajne podejście, które niejako dostosowuje produkt do różnych polityk bezpieczeństwa w organizacjach.
Póki co Power BI Report Server jest dostępny jednakże nie ma on zaimplementowanych wszystkich funkcjonalności. Microsoft nakreślił nam jednak plan rozwoju oprogramowania i możemy tam znaleźć takie funkcjonalności jak:
- podwyższony limit zestawu danych
- możliwość ładowania przyrostowego zamiast istniejącego obecnie ładowania pełnego
- przydzielenie dedykowanych zasobów do procesowania modeli
- utrzymywanie konkretnych zestawów danych w pamięci – czyli dane dla konkretnych zestawów nie będą “wyrzucane” z pamięci jeśli nie są używane tak jak ma to miejsce w obecnej implementacji
- repliki tylko do odczytu mające za zadanie zbalansowanie użycia zasobów między node’ami
- geo-replika – czyli replika rezydująca w node, który jest np. najbliżej użytkownika końcowego
Powyżej można zauważyć pojęcie “node”, które jest zbiorem zasobów w ramach licencji Power BI Premium. Wygląda to całkiem ciekawie prawda? Mam nadzieję, że każda aktualizacja przyniesie rozszerzenie funkcjonalności serwera i będzie to coraz lepsze oprogramowanie za co szczerze trzymam kciuki.
- Avoiding Issues: Monitoring Query Pushdowns in Databricks Federated Queries - October 27, 2024
- Microsoft Fabric: Using Workspace Identity for Authentication - September 25, 2024
- Executing SQL queries from Azure DevOps using Service Connection credentials - August 28, 2024
Last comments