Loading…

READY TO DEAL WITH YOUR DATA?

Get some tips on how to do that!
Start exploring

Power BI–Czy tabel w bazie danych może być za dużo?

Relacyjne bazy danych, mimo upływu czasu, trzymają się dzielnie i często stanowią główne źródła danych dla raportowania i analityki. Zdarza się, że bazy danych są bardzo skomplikowane w swej strukturze. A czy mogą być “zbyt skomplikowane”, na przykład z punktu widzenia narzędzia self-service BI? Okazuje się, że tak.

Problem

Używasz Power BI jako narzędzia self-service BI. I wpadasz na szatański pomysł – a może by tak zbudować raport w oparciu o dane z bazy danych jednego ze znanych systemów ERP (np. opartego o bazy Oracle systemu IFS, czy systemu rodzimej produkcji – aplikacji Softlab ERP). Co najczęściej cechuje te systemy? Mnogość tabel i widoków udostępniających dane. Tysiące, dziesiątki tysięcy, a może i setki, jeśli system został zbudowany ponad dekadę temu i sporo logiki wylądowało w bazie danych. Nie ma sprawy, przecież wybierzesz z tej ogromnej rzeszy obiektów raptem kilka Tobie potrzebnych do raportu.

Uruchamiasz zatem Power BI Desktop, wybierasz jako źródło danych stosowną bazę (np. SQL Server) i już po chwili widzisz listę obiektów – tabel i widoków. Stop.

image

Zaraz, zaraz… Ale jak to 10 tysięcy obiektów? Przecież Ty wiesz, że jest ich znacznie więcej. Wpisujesz w pole wyszukiwania w górnej części okna nazwę tabeli, o której wiesz, że istnieje. Nie znaleziono. Ups.

Tak. Okno nawigatora Power Query ma ograniczenie do 10 tysięcy obiektów per poziom hierarchii (na zrzucie ekranu powyżej jest widok z włączoną nawigacją z uwzględnieniem pełnej hierarchii w bazach danych – baza-schemat-tabela). Czyli jeśli w schemacie dbo jest więcej niż 10 tysięcy tabel i widoków, Ty zobaczysz nazwy tylko pierwszych 10 tysięcy, według porządku alfabetycznego. I nic więcej nie zobaczysz, ani nie znajdziesz w wyszukiwaniu.

Rozwiązania

Obejść problemu jest kilka:

  1. Przy podłączaniu się do bazy danych koniecznie zaznacz opcję nawigowania po pełnej hierarchii:
    image

    Dzięki temu nie będziesz mieć problemu, jeśli tylko baza danych jest podzielona na schematy, a w każdym ze schematów nie będzie więcej niż 10 tysięcy obiektów.
  2. Stwórz w źródłowej bazie danych widoki udostępniające dane z pożądanych tabel. Widoki trzeba albo stworzyć w osobnym schemacie (i znów, dobrze użyć wtedy opcji “Navigate using full hierarchy”, żeby było widać schematy), albo nazwać je tak, by znalazły się alfabetycznie na początku listy (np. użyć prefiksu _PBI_view_).
  3. Wskaż w oknie nawigatora Power Query dowolną tabelę, a potem zmień nazwę tabeli, do której chcesz się dostać bezpośrednio w formule języka M. A potem używaj do oporu opcji Duplicate na tak stworzonym zapytaniu Power Query i zmieniaj nazwy tabel w kodzie M, aż uzyskasz pożądaną listę tabel w zapytaniach.
  4. Zmień podejście – nie opieraj raportów bezpośrednio na danych z systemów transakcyjnych – w zamian zbuduj warstwę hurtowni danych lub ODS (ang. Operational Data Store).

Komentarz

Jak mogę skomentować opisane powyżej ograniczenie aplikacji Power BI Desktop? No cóż… Uważam, że to znaczące utrudnienie dla osób chcących budować raporty w oparciu o dane ze złożonych systemów. Nawet w portfolio Microsoft znajdą się aplikacje (np. w rodzinie Dynamics), w których bazy danych z dziesiątkami tysięcy obiektów to norma. Niestety, nie jest to pierwszy raz, kiedy producent Power BI ma problemy ze stworzeniem interfejsu użytkownika sensownie obsługującego duże ilości obiektów w bazach danych. Dla przykładu, SQL Server Management Studio, narzędzie do zarządzania bazami danych SQL Server, też ma z tym problem.

Dlatego myślę, że dobrze, że problem został podniesiony na forum Power BI:

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/15892447-support-databases-with-10000-objects

Liczę, że w kolejnych wersjach Power BI Desktop doczeka się odpowiednich ulepszeń w interfejsie okna nawigatora Power Query i nie będziemy musieli posiłkować się opisanymi powyżej rozwiązaniami. Każdy taki problem może spowodować, że użytkownik narzędzia do samodzielnej analityki, jakim jest Power BI, będzie zniechęcony i porzuci narzędzie lub straci sporo czasu na obchodzenie ograniczeń samego narzędzia.

Zapewne masz swoje przemyślenia na opisany przeze mnie temat. Chętnie poznam Twoje zdanie! A może znasz lepsze rozwiązanie niż te, które opisałem? Zapraszam do dyskusji.

Leave a Reply