Aktualnie w Power BI mamy coraz więcej narzędzi, które pozwalają nam na monitorowanie jego pracy. Wcześniej omówiłem Analizator wydajności, a w tym artykule omówię Diagnostykę zapytań w Power Query. Na razie jest dostępna tylko po stronie Power BI.
Pozwala ona na monitorowanie i sprawdzenie, jakie zapytania są przesyłane do źródła danych. Znajduje się Power Query > Narzędzia.
Jeżeli nie możesz uruchomić Diagnostyki, wybierz wówczas przycisk Opcje diagnostyczne na pasku menu i zaznacz opcję Włącz w edytorze zapytań (nie wymaga uruchomienia jako administrator), co pozwoli Ci nadal w Power Query korzystać z diagnostyki pomimo ograniczeń administracyjnych w Twojej organizacji. Opcja ta jedna nie pozwoli Ci na pełną diagnostykę podczas odświeżania w usłudze Power BI.
Gdy uruchamiasz diagnostykę, Power Query śledzi i sprawdza każdy Twój krok. W zależności od konektora diagnostyka może rozpoczynać się nie tylko od momentu odświeżenia danych czy też pobrania ich po raz pierwszy.
Przycisk Diagnozuj krok, pozwala na sprawdzenie wydajności tylko jednego kroku, wybranego przez Ciebie, co znacznie zawęża ilość otrzymanych danych oraz całą analizę. Najbardziej przyda się w momencie, gdy zechcesz sprawdzić, jakie operacje w zapytaniu dzieją się zdalnie, a jakie lokalnie.
Aby zachować i zebrać dane z analizy o szerszym zakresie (odświeżania, pobierania danych), po wciśnięciu Rozpocznij diagnostykę należy wybrać również Zatrzymaj Diagnostykę. Przyciski te korespondują ze sobą.
Wynik analizy prezentowany jest w dwóch widokach Zagregowanym oraz Szczegółowym, które również można wybrać w opcjach diagnostyki. Wynik zagregowany jest szybką informacją o tym, gdzie i jaki czas jest poświęcony. Wynik szczegółowy jest informacją przydatną dla Power Users do analizy wykonywanych operacji (dla zwykłego użytkownika otrzymane informacje mogą być zbyt szczegółowe) .
Warto też wiedzieć, że operacje, które zostaną zarejestrowane w diagnostyce, nie zawsze wynikają z bezpośredniego działania użytkownika. Czasem mogą być związane z działaniem konektora czy pobieraniem metadanych.
Widok szczegółowy oraz zagregowany
Widok zagregowany jest sumą wielu związanych ze sobą operacji, zaprezentowanych pod zbiorczą pozycją. Oznacza to, że żadne dane w ten sposób nie są tracone, np. czasy trwania są sumowane i prezentowane pod odpowiednią pozycją.
Widok zagregowany ma na celu w łatwy sposób na wysokim poziomie zaprezentować użytkownikowi, co się działo. Jeżeli potrzebne są bardziej szczegółowe informacje dla poszczególnych operacji, wówczas wraz z Group ID można przejść do widoku szczegółowego, by zobaczyć detale.
Wykonywanie wielu ocen
Podczas odświeżania w Edytorze Power Query wiele dzieje się poza widokiem danych. Na przykład, gdy wybierzesz Odśwież podgląd, wówczas ostatni krok każdego zapytania zostanie wykonany, ale w tle w każdym zapytaniu zostaną wykonane wszystkie wcześniejsze kroki, dla których otrzymasz już wówczas wyniki diagnostyki.
Należy również pamiętać, że niesie to ze sobą pewne ryzyko, że nie zawsze otrzymamy poprawne wyniki analizy, ponieważ wykorzystywana jest pamięć podręczna.
Wynik diagnostyki
W odrębnym folderze zapytań Power Query pojawiają się zapytania z zapisanymi wynikami. Wynik posiada wiele kolumn w których znajdują się poniższe informacje:
- ID – dla analizowania wyników jednej diagnostyki ważne jest by filtrować je o wspólnym Id
- Query – nazwa zapytania dla którego wykonywana była diagnostyka (pochodząca z okna ustawień zapytania)
- Step – nazwa kroku pochodząca z okna ustawień zapytania
- Category – rodzaj operacji
- Data Source Kind – rodzaj źródła danych z którego pozyskiwane są dane : plik, SQL czy Oracle
- Operation – aktualnie wykonywana operacja np. tworzenie połączenia, wysyłanie zapytań do źródła danych
- Start Time – czas rozpoczęcia operacji
- End Time – czas zakończenia operacji
- Exclusive Duration % – wyłączony czas trwania w % dla poszczególnych operacji z tego samego Id
- Exclusive Duration – absolutny czas trwania operacji
- Resource – dokładna nazwa źródła z którego będą pobrane dane np. ścieżka do pliku
- Data Source Query – ilość zapytań wysyłana do źródła danych
- Additional Info – dodatkowe informacje, które nie mieszczą się w pozostałych kolumnach
- Row Count – ilość wierszy wrócona przez źródło danych, kolumna nie jest dostępna we wszystkich konektorach
- Content Length – długość treści zwracana przez zapytania http
- Is User Query – przyjmuje wartości false/true, informuje, czy zapytanie/operacja było wykonane przez użytkownika, czy też jest operacją typu okna Nawigatora
- Path – pokazuje ścieżkę, kolejność wykonywanych operacji na której dana operacja się znajduje
- Group ID – pozwala na przejście i zobaczenie w widoku szczegółowym, operacji które pod tym group id istnieją, ponieważ może być ich kilka
Rejestrowanie diagnostyki
Bardzo ważną informacją jest to, że na otrzymane wyniki w ramach przeprowadzonej analizy wpływa wiele czynników a mianowicie: wykonane transformacje, system na którym pracujesz, opcje konfiguracji sieci czy Power BI, złącze…
Rozpoczęcie diagnostyki, a następnie odświeżenie podglądu, da taki sam efekt jak diagnostyka dla każdego kroku.
Warto też wiedzieć, że przycisk Odśwież podgląd lub Odśwież wszystko nie spowoduje pojawienia się w diagnostyce tylko jednego wiersza Refresh. Spowoduje natomiast wykonanie wszystkich operacji do wykonanie odświeżenia ostatniego kroku zapytania.
Jak już wspomniałem, jest tu haczyk ponieważ, ponieważ nie zawsze pokazywana w diagnostyce pozycja może kosztować np. wskazany czas. Dzieje się tak ponieważ, Power BI może wykorzystywać pamięć podręczną do tego celu. W kolejnych aktualizacjach zespół deweloperów Power BI deklaruje dodanie informacji, czy dane pobierane są z pamięci podręcznej, by usprawnić diagnostykę.
Ponieważ wyniki diagnostyki pojawiają się jako zapytania, mogą one nam posłużyć jako źródło danych dla budowy wizualizacji w Power BI na ich bazie.
Przykład wykorzystania diagnostyki do sprawdzenia Query Folding
Najważniejszym celem diagnostyki zapytań jest sprawdzenie, jakie zapytania zostały wysłane do źródła danych przez Power Query w celu ich pozyskania, co właśnie nazywane jest Query Folding. Jak widać na poniższym screenie, w jednej z kolumn możemy znaleźć zapytania wysyłane w przypadku połączenia się ze źródłem danych, w tym przypadku bazą SQL.
Udało Ci się wykorzystać w praktyce Diagnostykę zapytań Power Query?
Podziel się wrażeniami w komentarzu.