Pytania rekrutacyjne z Power BI i DAX: 25 pytań z odpowiedziami
Pytania rekrutacyjne z Power BI dotyczą nie tylko znajomości funkcji i definicji. Rekruter może zapytać Cię, czym różni się miara od kolumny obliczeniowej, kiedy warto skorzystać z DirectQuery albo jak sprawdzić, dlaczego raport działa wolno. W ten sposób chce zobaczyć, czy rozumiesz narzędzie i potrafisz wykorzystać swoją wiedzę w praktyce.
Dlatego zebrałam 25 pytań z Power BI i DAX wraz z przykładowymi odpowiedziami, które pomogą Ci przygotować się do rozmowy kwalifikacyjnej na stanowisko analityka danych lub BI Developera. Znajdziesz tutaj zarówno podstawowe zagadnienia, jak i trudniejsze pytania dotyczące modelowania danych, DAX, Power Query i Power BI Service.
Jak korzystać z tych odpowiedzi?
Potraktuj je jako punkt wyjścia do przygotowań. Najważniejsze, żebyś potrafił wyjaśnić omawiane zagadnienia własnymi słowami i pokazać, jak wykorzystujesz je w praktyce. Rekruter może poprosić Cię o przykład albo o napisanie odpowiedniej miary w DAX.
Jeśli przygotowujesz się również z SQL, zajrzyj do artykułu Pytania rekrutacyjne z SQL dla początkujących.
Jeśli wolisz zacząć od wideo, przygotowałam też nagranie, w którym omawiam 10 pytań rekrutacyjnych z Power BI. Przy każdym pokazuję, co warto powiedzieć na rozmowie i na jakie szczegóły zwrócić uwagę. Poniżej znajdziesz rozszerzoną listę 25 pytań wraz z przykładami DAX.
25 pytań. 5 obszarów.
Wybierz temat, z którego chcesz się przygotować.
Pytania rekrutacyjne z Power BI na start
1. Czym jest Power BI i z jakich elementów się składa?
Przykładowa odpowiedź na rozmowie:
Power BI to narzędzie Microsoftu do analizy danych i tworzenia interaktywnych raportów. Pozwala pobierać dane z różnych źródeł, przygotowywać je i przedstawiać w formie wizualizacji. W Power BI Desktop buduję model danych i tworzę raporty, a w Power BI Service mogę je publikować, udostępniać innym użytkownikom i konfigurować odświeżanie. Jest też aplikacja Power BI Mobile do przeglądania raportów na telefonie.
Co jeszcze warto wiedzieć?
Power BI to rozwiązanie z obszaru Business Intelligence. Obecnie jest częścią platformy Microsoft Fabric, która łączy narzędzia do przechowywania, przetwarzania i analizowania danych.
Microsoft Power BI składa się z kilku komponentów. Oprócz Power BI Desktop, usługi Power BI Service i aplikacji mobilnej możesz spotkać się również z bramą danych, która pozwala usłudze w chmurze komunikować się z odpowiednimi źródłami lokalnymi.
Więcej o samym narzędziu przeczytasz w artykule Co to jest Power BI?.
2. Czym różni się Power Query od DAX?
Przykładowa odpowiedź na rozmowie:
Power Query wykorzystuję do pobierania i przygotowywania danych, zanim trafią do modelu. Mogę w nim usuwać zbędne kolumny, zmieniać typy danych, filtrować wiersze czy łączyć tabele. DAX służy mi przede wszystkim do tworzenia obliczeń na modelu danych, np. sprzedaży narastająco, udziałów procentowych czy porównań rok do roku. Power Query wykorzystuje język M, natomiast DAX jest językiem formuł stosowanym w modelach semantycznych.
Co jeszcze warto wiedzieć?
Załóżmy, że przygotowujesz raport sprzedażowy, a dane pochodzą z kilku plików Excel. Najpierw musisz je połączyć, poprawić formaty dat i usunąć niepotrzebne kolumny. Takie operacje wykonasz w Power Query. Kiedy dane będą już przygotowane i załadowane do modelu, możesz użyć DAX, żeby policzyć sprzedaż narastająco albo porównać wyniki z poprzednim rokiem.
Warto pamiętać, że DAX nie służy wyłącznie do obliczeń wykonywanych podczas przeglądania raportu. Możesz za jego pomocą tworzyć również kolumny i tabele obliczeniowe, których wyniki są przechowywane w modelu.
Przy pracy z Power Query możesz spotkać się także z pojęciem query folding, czyli składania zapytań. Mechanizm ten pozwala przenieść część przekształceń do źródła danych, np. SQL Server, zamiast wykonywać wszystkie operacje lokalnie. Dzięki temu Power BI może pobrać mniej danych, co często skraca czas odświeżania.
3. Czym różni się raport od dashboardu?
Przykładowa odpowiedź na rozmowie:
Raport służy do szczegółowej analizy danych. Może mieć wiele stron, a użytkownik może korzystać z filtrów i interaktywnych wizualizacji. Dashboard, czyli pulpit nawigacyjny, to jednostronicowy widok tworzony w Power BI Service. Można na nim zebrać najważniejsze wskaźniki, również z różnych raportów. Wykorzystałbym go przede wszystkim do monitorowania wyników.
Co jeszcze warto wiedzieć?
Raport możesz utworzyć w Power BI Desktop lub bezpośrednio w usłudze Power BI Service. Korzysta on z jednego modelu semantycznego, który może łączyć dane z wielu źródeł.
Dashboard powstaje w Power BI Service i może zawierać kafelki pochodzące z różnych raportów i modeli.
Wyobraź sobie dyrektora sprzedaży, który chce codziennie sprawdzać przychód, marżę i realizację planu. Dashboard pozwoli mu zobaczyć najważniejsze wskaźniki na jednej stronie. Jeśli będzie potrzebował szczegółowej analizy, może przejść do odpowiedniego raportu.
4. Jakie rodzaje filtrów są w Power BI i jaka jest ich hierarchia?
Przykładowa odpowiedź na rozmowie:
W Power BI mam trzy podstawowe poziomy filtrów: filtr całego raportu, filtr strony i filtr pojedynczej wizualizacji. Różnią się zakresem działania. Mogę też dodawać fragmentatory, czyli slicery, dzięki którym użytkownik sam wybiera dane, które chce analizować.
Co jeszcze warto wiedzieć?
Filtry z różnych poziomów mogą działać jednocześnie.
Przykładowo ustawiasz rok 2025 na poziomie raportu, a na jednej ze stron dodatkowo filtrujesz dane do Polski. Wizualizacje na tej stronie będą uwzględniać oba warunki.
Warto znać również drillthrough, czyli przechodzenie do szczegółów. Jeśli na wykresie wybierzesz konkretnego klienta, możesz przejść do osobnej strony raportu pokazującej jego historię zakupów.
Pamiętaj, że na działanie filtrów wpływają także relacje pomiędzy tabelami oraz ustawienia interakcji między wizualizacjami.
5. Z jakimi źródłami danych pracujesz i jak się z nimi łączysz?
To pytanie najlepiej oprzeć na własnych projektach.
Przykładowa odpowiedź na rozmowie:
Pracuję z plikami Excel i CSV oraz danymi z SQL Server. Łączę się z nimi przez Power Query, gdzie przygotowuję dane przed załadowaniem do modelu. Korzystam przede wszystkim z trybu Import, ale znam również DirectQuery, który pozwala odpytywać źródło danych podczas korzystania z raportu.
Tę odpowiedź koniecznie dopasuj do swojego doświadczenia. Jeśli pracowałeś tylko z plikami Excel, powiedz o tym wprost. Możesz opowiedzieć, jakie problemy napotkałeś podczas przygotowywania danych i jak je rozwiązałeś.
Projekty wykonane samodzielnie również się liczą. Lepiej pokazać jeden rzeczywiście zrealizowany projekt niż deklarować znajomość pięciu źródeł danych, z którymi nigdy się nie pracowało.
Co jeszcze warto wiedzieć?
W Power BI możesz korzystać z różnych trybów przechowywania i pobierania danych:
-
Import ładuje dane do modelu semantycznego. Raport zazwyczaj działa szybko, ale aktualizacja danych wymaga odświeżenia modelu.
-
DirectQuery odpytuje źródło podczas korzystania z raportu. Wydajność zależy między innymi od źródła danych i generowanych zapytań.
-
Direct Lake umożliwia korzystanie z danych przechowywanych w OneLake w środowisku Microsoft Fabric.
DirectQuery może zapewniać dostęp do aktualniejszych danych, ale nie gwarantuje wyświetlania każdej zmiany natychmiast. Power BI korzysta również z pamięci podręcznej, która może wpływać na aktualność prezentowanych wyników.
Pytania rekrutacyjne z języka DAX
6. Co oznacza skrót DAX i do czego służy?
Przykładowa odpowiedź na rozmowie:
DAX, czyli Data Analysis Expressions, to język formuł wykorzystywany między innymi w Power BI. Używam go przede wszystkim do tworzenia miar, np. sumy sprzedaży, marży czy wzrostu rok do roku. DAX pozwala także tworzyć kolumny i tabele obliczeniowe. Ważną cechą tego języka jest to, że wynik obliczenia zależy od kontekstu.
Co jeszcze warto wiedzieć?
Składnia DAX przypomina formuły Excela, ale sposób wykonywania obliczeń jest inny.
W DAX pracujesz na tabelach i kolumnach modelu danych, a duże znaczenie ma kontekst wiersza oraz kontekst filtra.
Język DAX jest wykorzystywany również w Power Pivot i Analysis Services. Można go zastosować także do definiowania reguł RLS, czyli zabezpieczeń ograniczających dostęp do poszczególnych wierszy danych.
7. Podaj przykład miary napisanej w DAX
Przykładowa odpowiedź na rozmowie:
Prostym przykładem jest miara sumująca sprzedaż. Wykorzystuję do tego funkcję SUM, której przekazuję kolumnę zawierającą kwoty sprzedaży.
Sprzedaż =
SUM ( Sprzedaz[Kwota] )
Jeżeli chcę obliczyć sprzedaż tylko dla klientów z Polski, mogę użyć CALCULATE:
Sprzedaż Polska =
CALCULATE (
[Sprzedaż],
Klienci[Kraj] = "Polska"
)
Co jeszcze warto wiedzieć?
Pierwsza miara oblicza sumę sprzedaży w aktualnym kontekście filtra. Druga modyfikuje ten kontekst przez ustawienie filtra na Polskę.
Przykłady zakładają, że w modelu istnieją odpowiednie tabele i relacja umożliwiająca filtrowanie sprzedaży przez tabelę Klienci.
Jeżeli użytkownik wybierze Niemcy za pomocą kolumny Klienci[Kraj], CALCULATE zastąpi ten filtr warunkiem wskazanym w mierze. Pozostałe filtry, np. dotyczące daty lub produktu, nadal mogą wpływać na wynik.
Na rozmowie dobrze podać przykład miary ze swojego projektu i wyjaśnić, do jakiej analizy była potrzebna.
8. Czym różni się kolumna obliczeniowa od miary?
Przykładowa odpowiedź na rozmowie:
Kolumna obliczeniowa wylicza wartość dla każdego wiersza tabeli, a wynik jest przechowywany w modelu. Miara oblicza wynik wtedy, gdy jest potrzebny, i uwzględnia aktualny kontekst filtra. Jeśli chcę stworzyć kategorię, według której będę grupować dane, zwykle wybieram kolumnę. Jeśli chcę policzyć sumę sprzedaży lub jej udział procentowy, zastosuję miarę.
Co jeszcze warto wiedzieć?
Kolumny obliczeniowe zwiększają rozmiar modelu, ponieważ ich wyniki są przechowywane dla poszczególnych wierszy.
Miara przechowuje definicję obliczenia, a jej wynik jest wyznaczany podczas wykonywania zapytania do modelu.
Przykładowo, jeśli potrzebujesz sumarycznej marży w raporcie, często lepiej napisać odpowiednią miarę niż dodawać kolejną kolumnę do dużej tabeli faktów.
9. Jak działa CALCULATE?
Przykładowa odpowiedź na rozmowie:
CALCULATE pozwala obliczyć wyrażenie w zmienionym kontekście filtra. Korzystam z niej na przykład wtedy, gdy chcę policzyć sprzedaż dla konkretnego roku lub określonej grupy produktów. CALCULATE może dodawać, zastępować albo usuwać filtry, w zależności od zastosowanych argumentów.
Przykład:
Sprzedaż 2025 =
CALCULATE (
[Sprzedaż],
Kalendarz[Rok] = 2025
)
Co jeszcze warto wiedzieć?
Ta miara oblicza sprzedaż dla 2025 roku.
Jeżeli użytkownik wybierze inny rok za pomocą kolumny Kalendarz[Rok], filtr ustawiony w CALCULATE zastąpi jego wybór. Pozostałe filtry nadal mogą wpływać na wynik.
To ważne rozróżnienie. CALCULATE nie usuwa automatycznie wszystkich filtrów z modelu.
Gdy chcesz zachować istniejący filtr na tej samej kolumnie i połączyć go z nowym warunkiem, możesz użyć KEEPFILTERS.
Na bardziej zaawansowanych stanowiskach rekruter może zapytać również o context transition, czyli przejście kontekstu. CALCULATE potrafi przekształcić istniejący kontekst wiersza w kontekst filtra.
10. Co to jest kontekst wiersza i kontekst filtra?
Przykładowa odpowiedź na rozmowie:
Kontekst wiersza pozwala odwoływać się do wartości konkretnego wiersza tabeli. Występuje na przykład w kolumnach obliczeniowych i funkcjach iterujących, takich jak SUMX. Kontekst filtra określa, które dane mają zostać uwzględnione w obliczeniu. Powstaje między innymi przez filtry raportu, fragmentatory i wiersze wizualizacji.
Przykład
Załóżmy, że masz tabelę sprzedaży z kolumnami Ilość i Cena.
W kontekście wiersza możesz obliczyć:
Sprzedaz[Ilosc] * Sprzedaz[Cena]
Jeśli natomiast obliczasz sprzedaż dla Polski w 2025 roku, wynik miary zależy od kontekstu filtra ograniczającego dane do wskazanego kraju i roku.
Co jeszcze warto wiedzieć?
Kontekst wiersza sam w sobie nie filtruje automatycznie całej tabeli. Dopiero odpowiednie mechanizmy, np. przejście kontekstu, mogą przekształcić go w kontekst filtra.
Ta różnica ma ogromne znaczenie przy pisaniu bardziej złożonych miar.
11. Czym różni się SUM od SUMX?
Przykładowa odpowiedź na rozmowie:
SUM sumuje wartości jednej kolumny. SUMX jest funkcją iterującą, która przechodzi po wierszach wskazanej tabeli, wykonuje obliczenie dla każdego z nich, a następnie sumuje wyniki. Wykorzystuję ją na przykład wtedy, gdy kwotę sprzedaży muszę obliczyć, mnożąc ilość produktu przez jego cenę.
Przykład:
Sprzedaż =
SUMX (
Sprzedaz,
Sprzedaz[Ilosc] * Sprzedaz[Cena]
)
Co jeszcze warto wiedzieć?
Jeśli w tabeli masz gotową kolumnę Kwota, wystarczy SUM. Jeśli wartość trzeba wyliczyć dla poszczególnych wierszy, przyda się SUMX.
Nie możesz zastąpić tego obliczenia pomnożeniem sumy wszystkich ilości przez sumę wszystkich cen, ponieważ otrzymasz inny wynik.
Podobnie działają funkcje iterujące AVERAGEX czy MAXX, ale każda wykonuje inne działanie na otrzymanych wartościach.
12. Do czego służą ALL, ALLEXCEPT i ALLSELECTED?
Przykładowa odpowiedź na rozmowie:
Te funkcje wykorzystuję do kontrolowania kontekstu filtra, szczególnie przy obliczaniu udziałów procentowych. ALL pozwala usuwać filtry z określonych tabel lub kolumn. ALLEXCEPT usuwa filtry z tabeli, pozostawiając filtry wskazanych kolumn. ALLSELECTED przydaje się między innymi do obliczeń w ramach aktualnego wyboru danych, np. gdy chcę pokazać udział produktu wśród produktów wybranych przez użytkownika.
Przykład z ALL:
Udział w sprzedaży % =
DIVIDE (
[Sprzedaż],
CALCULATE (
[Sprzedaż],
ALL ( Produkty )
)
)
Co jeszcze warto wiedzieć?
W tym przykładzie mianownik usuwa filtry z tabeli Produkty. Filtry pochodzące z innych tabel, np. z tabeli Kalendarz, mogą nadal obowiązywać.
Dokładny wynik zależy również od relacji w modelu i sposobu działania tabel rozszerzonych w DAX.
ALLSELECTED ma bardziej złożone działanie. Może zachowywać filtry zewnętrzne względem aktualnego zapytania, jednocześnie modyfikując kontekst tworzony przez wiersze i kolumny wizualizacji.
Na rozmowie dobrze pokazać działanie tych funkcji na przykładzie udziału procentowego. To znacznie lepiej pokazuje ich zastosowanie niż sama definicja.
13. Czym różni się filtr w CALCULATE od funkcji FILTER?
Przykładowa odpowiedź na rozmowie:
W CALCULATE mogę bezpośrednio podać warunek filtrowania, np. wybrać produkty o kolorze czerwonym. FILTER wykorzystuję wtedy, gdy potrzebuję bardziej złożonego warunku, np. zależnego od wyniku miary. FILTER przechodzi po wierszach wskazanej tabeli i sprawdza, które spełniają warunek.
Prosty filtr w CALCULATE:
CALCULATE (
[Sprzedaż],
Produkty[Kolor] = "Czerwony"
)
Przykład z FILTER:
Sprzedaż duzi klienci =
CALCULATE (
[Sprzedaż],
FILTER (
Klienci,
[Sprzedaż] > 10000
)
)
Co jeszcze warto wiedzieć?
W drugim przykładzie FILTER wybiera klientów, których sprzedaż w analizowanym kontekście przekracza 10 000 zł. Następnie CALCULATE oblicza sprzedaż dla tak wybranych klientów.
Bezpośrednie warunki logiczne w CALCULATE są zazwyczaj prostsze i często wydajniejsze. Nie każde porównanie kilku kolumn wymaga użycia FILTER. Jeżeli kolumny pochodzą z tej samej tabeli, często możesz zastosować bezpośredni warunek logiczny.
Jeśli chcesz połączyć nowy filtr z istniejącym filtrem na danej kolumnie, możesz wykorzystać KEEPFILTERS.
14. Jak policzyć sprzedaż narastająco od początku roku?
Przykładowa odpowiedź na rozmowie:
Do obliczenia sprzedaży narastająco od początku roku mogę wykorzystać TOTALYTD. Potrzebuję miary sprzedaży oraz odpowiedniej kolumny dat. Mogę też użyć CALCULATE w połączeniu z DATESYTD, szczególnie jeśli chcę rozbudować obliczenie o kolejne warunki.
Przykład:
Sprzedaż YTD =
TOTALYTD (
[Sprzedaż],
Kalendarz[Data]
)
Alternatywnie:
Sprzedaż YTD =
CALCULATE (
[Sprzedaż],
DATESYTD ( Kalendarz[Data] )
)
Co jeszcze warto wiedzieć?
YTD, czyli Year to Date, pozwala obliczać wyniki narastająco od początku roku do daty wynikającej z aktualnego kontekstu.
Jeżeli firma korzysta z roku obrachunkowego innego niż kalendarzowy, możesz odpowiednio skonfigurować datę końca roku.
W klasycznym podejściu do analizy czasowej ważna jest prawidłowo przygotowana tabela dat. Power BI obsługuje również nowsze mechanizmy analizy czasowej oparte na kalendarzach, które oferują większą elastyczność.
15. Do czego służą zmienne VAR w DAX?
Przykładowa odpowiedź na rozmowie:
VAR pozwala zapisać wynik obliczenia pod nazwą i wykorzystać go w dalszej części miary. Stosuję zmienne przede wszystkim po to, żeby formuły były czytelniejsze i łatwiejsze do sprawdzania. Mogą też pomóc ograniczyć wielokrotne wykonywanie tych samych obliczeń.
Przykład:
Wzrost r/r % =
VAR SprzedazBiezaca = [Sprzedaż]
VAR SprzedazRokTemu =
CALCULATE (
[Sprzedaż],
SAMEPERIODLASTYEAR ( Kalendarz[Data] )
)
RETURN
DIVIDE (
SprzedazBiezaca - SprzedazRokTemu,
SprzedazRokTemu
)
Co jeszcze warto wiedzieć?
W tym przykładzie zapisujesz bieżącą sprzedaż i sprzedaż z analogicznego okresu poprzedniego roku, a następnie obliczasz procentową zmianę.
Zmienne są szczególnie pomocne przy rozbudowanych miarach. Jeśli chcesz sprawdzić wartość jednej z nich, możesz tymczasowo zwrócić ją za pomocą RETURN.
Pamiętaj również, że wartość zmiennej jest obliczana w kontekście jej definicji. Późniejsze zmodyfikowanie kontekstu nie powoduje automatycznie ponownego wyliczenia tej zmiennej.
16. Jak działa SWITCH i kiedy jest lepszy od IF?
Przykładowa odpowiedź na rozmowie:
SWITCH pozwala zwracać różne wyniki w zależności od spełnionego warunku. Korzystam z niego szczególnie wtedy, gdy mam kilka warunków i chcę uniknąć wielu zagnieżdżonych funkcji IF. Często łączę SWITCH z TRUE(), żeby sprawdzać warunki po kolei.
Przykład:
Segment klienta =
SWITCH (
TRUE (),
[Sprzedaż] >= 100000, "Duży",
[Sprzedaż] >= 20000, "Średni",
"Mały"
)
Co jeszcze warto wiedzieć?
Warunki są sprawdzane po kolei, a funkcja zwraca wynik pierwszego spełnionego warunku. Dlatego kolejność ma znaczenie.
W tym przykładzie segment zależy od wartości miary Sprzedaż w aktualnym kontekście filtra. Jeśli wykorzystasz tę miarę w tabeli klientów, możesz zobaczyć segment dla każdego z nich.
Gdy potrzebujesz stałego segmentu klienta, który nie będzie zmieniał się wraz z filtrami raportu, trzeba odpowiednio zaprojektować sposób jego obliczania.
Pytania o model danych w Power BI
17. Co to jest schemat gwiazdy i dlaczego Power BI go preferuje?
Przykładowa odpowiedź na rozmowie:
Schemat gwiazdy to sposób organizacji modelu danych, w którym mamy centralną tabelę faktów, np. Sprzedaż, oraz powiązane z nią tabele wymiarów, takie jak Produkty, Klienci czy Kalendarz. Taki układ ułatwia budowanie relacji i analizowanie danych z różnych perspektyw. Jest to zalecane podejście przy projektowaniu wielu modeli semantycznych Power BI, ponieważ pomaga utrzymać czytelną strukturę i przewidywalny sposób filtrowania.
Co jeszcze warto wiedzieć?
Typowy schemat gwiazdy wykorzystuje relacje jeden do wielu, w których tabele wymiarów filtrują tabelę faktów.
Taki model często ułatwia pisanie miar DAX i może poprawiać wydajność raportu.
Alternatywą jest jedna szeroka tabela albo schemat płatka śniegu, w którym tabele wymiarów są dalej normalizowane. Każde podejście ma swoje zastosowania, a wydajność zależy od struktury danych i sposobu wykorzystania modelu.
Jeśli chcesz lepiej zrozumieć zasady modelowania danych, zajrzyj również do dokumentacji Microsoft dotyczącej schematu gwiazdy w Power BI. Znajdziesz tam przykłady tabel faktów i wymiarów oraz wyjaśnienie, jak struktura modelu wpływa na jego użyteczność i wydajność.
18. Czym różni się tabela faktów od tabeli wymiarów?
Przykładowa odpowiedź na rozmowie:
Tabela faktów przechowuje zdarzenia lub wartości, które analizuję, np. transakcje sprzedaży, ilości i kwoty. Tabele wymiarów zawierają informacje opisowe, które pomagają analizować fakty. Przykładowo dzięki tabeli Produkty mogę pokazać sprzedaż według kategorii, a dzięki tabeli Klienci według segmentu klientów.
Co jeszcze warto wiedzieć?
W tabeli faktów zwykle znajdziesz klucze łączące ją z wymiarami oraz wartości liczbowe.
Tabela wymiarów powinna mieć odpowiedni klucz identyfikujący jej rekordy. W typowym modelu taki klucz jest unikalny, a w tabeli faktów może powtarzać się wiele razy.
Dzięki temu jeden produkt może występować w wielu transakcjach sprzedaży.
19. Jakie są rodzaje relacji i kierunki filtrowania w Power BI?
Przykładowa odpowiedź na rozmowie:
W Power BI mogę tworzyć relacje jeden do wielu, jeden do jednego oraz wiele do wielu. Najczęściej korzystam z relacji jeden do wielu, np. pomiędzy tabelą Klienci a tabelą Sprzedaż. Relacje mogą mieć pojedynczy lub dwukierunkowy kierunek filtrowania. Zazwyczaj wybieram pojedynczy, ponieważ łatwiej wtedy kontrolować przepływ filtrów w modelu.
Co jeszcze warto wiedzieć?
Relacje dwukierunkowe bywają potrzebne, ale mogą komplikować model i prowadzić do niejednoznacznych ścieżek filtrowania. Dlatego przed ich zastosowaniem warto sprawdzić, czy rzeczywiście są niezbędne.
A co w sytuacji, gdy jeden produkt może należeć do kilku kategorii, a jedna kategoria zawiera wiele produktów? To przykład relacji wiele do wielu, którą można zamodelować za pomocą tabeli pomostowej.
Taka tabela przechowuje powiązania między produktami i kategoriami, np. w kolumnach ProduktID i KategoriaID. Dzięki niej zamiast bezpośredniej relacji wiele do wielu między wymiarami możemy utworzyć dwie relacje jeden do wielu. Trzeba jednak odpowiednio zaplanować przepływ filtrów, ponieważ sam wybór kategorii nie musi automatycznie filtrować sprzedaży powiązanych produktów.
Podczas rekrutacji możesz spotkać się również z pytaniem o funkcję USERELATIONSHIP. Pozwala ona wykorzystać w konkretnym obliczeniu istniejącą relację nieaktywną. Przydaje się na przykład wtedy, gdy tabela zamówień zawiera zarówno datę złożenia zamówienia, jak i datę jego wysyłki, a chcesz analizować dane według obu tych dat.
20. Po co w modelu tabela kalendarza?
Przykładowa odpowiedź na rozmowie:
Tabela kalendarza pozwala analizować dane w czasie, np. według miesięcy, kwartałów czy lat. Jest szczególnie przydatna przy obliczaniu sprzedaży narastająco albo porównywaniu wyników rok do roku. Zwykle tworzę ją jako osobną tabelę i łączę z odpowiednimi kolumnami dat w tabelach faktów.
Przykład:
Kalendarz =
ADDCOLUMNS (
CALENDAR (
DATE ( 2024, 1, 1 ),
DATE ( 2027, 12, 31 )
),
"Rok", YEAR ( [Date] ),
"Nr miesiąca", MONTH ( [Date] ),
"Miesiąc", FORMAT ( [Date], "MMMM" )
)
Co jeszcze warto wiedzieć?
Zakres dat powinien odpowiadać danym wykorzystywanym w modelu. Możesz również skorzystać z CALENDARAUTO(), ale dobrze sprawdzić, jaki zakres dat został utworzony.
Przy klasycznych funkcjach analizy czasowej ważne jest odpowiednie przygotowanie tabeli dat, między innymi zapewnienie unikalnych wartości dat i ciągłości zakresu.
Własna tabela kalendarza daje też większą kontrolę nad hierarchią dat i sortowaniem miesięcy. W bardziej rozbudowanych modelach często warto wyłączyć automatyczne tworzenie hierarchii dat, czyli Auto date/time.
Pytania o Power Query
21. Jak sprawdzić, dlaczego raport Power BI działa wolno?
Przykładowa odpowiedź na rozmowie:
Zacznę od ustalenia, co dokładnie działa wolno: otwieranie raportu, korzystanie z wizualizacji czy odświeżanie danych. Jeśli problem dotyczy wizualizacji, wykorzystam Performance Analyzer, żeby sprawdzić, które elementy zajmują najwięcej czasu. Następnie przeanalizuję miary DAX, liczbę wizualizacji na stronie i model danych. Sprawdzę również, czy nie pobieram niepotrzebnych kolumn oraz czy zapytania do źródła są odpowiednio zoptymalizowane.
Co jeszcze warto wiedzieć?
Wyobraź sobie raport, w którym na jednej stronie znajduje się 20 wizualizacji, a każda z nich reaguje na wybory dokonywane w pozostałych. Jeśli do tego model zawiera dużo zbędnych kolumn i skomplikowane miary DAX, użytkownik może zauważyć opóźnienia podczas filtrowania danych.
W takiej sytuacji warto zacząć od Performance Analyzer, który pozwala sprawdzić czas obsługi poszczególnych wizualizacji. Na podstawie wyników możesz zdecydować, czy problemem są zapytania DAX, renderowanie wizualizacji czy inne operacje. Dopiero wtedy ma sens wprowadzanie zmian, np. uproszczenie miar, ograniczenie liczby wizualizacji lub poprawa modelu danych.
Trzeba też odróżnić wydajność samego raportu od czasu odświeżania danych. Jeśli użytkownicy narzekają na wolne działanie wykresów, odświeżanie przyrostowe nie musi rozwiązać tego problemu. Incremental refresh służy przede wszystkim do ograniczenia zakresu danych przetwarzanych podczas odświeżania modelu. Z kolei przy problemach z czasem odświeżania warto przeanalizować między innymi query folding, liczbę pobieranych kolumn oraz sposób łączenia się ze źródłem.
22. Czym różni się scalanie zapytań od dołączania?
Przykładowa odpowiedź na rozmowie:
Scalanie, czyli Merge, służy do łączenia tabel na podstawie wspólnych kolumn, podobnie jak JOIN w SQL. Przykładowo mogę połączyć zamówienia z danymi klientów na podstawie identyfikatora klienta. Dołączanie, czyli Append, łączy wiersze kilku tabel w jedną. Wykorzystam je na przykład do połączenia danych sprzedażowych z kilku miesięcy.
Co jeszcze warto wiedzieć?
W Merge możesz wybrać rodzaj złączenia, np. lewe zewnętrzne albo wewnętrzne.
Append dopasowuje kolumny według nazw. Tabele mogą mieć różne zestawy kolumn, a brakujące wartości zostaną uzupełnione jako null.
Dlatego przed dołączeniem danych dobrze sprawdzić nazwy kolumn i ich typy, żeby uniknąć problemów podczas dalszej analizy.
Pytania o Power BI Service i udostępnianie raportów
23. Jak udostępniasz raport innym osobom?
Przykładowa odpowiedź na rozmowie:
Najpierw publikuję raport z Power BI Desktop do obszaru roboczego w Power BI Service. Następnie mogę udostępnić konkretny raport wybranym użytkownikom albo przygotować aplikację Power BI dla większej grupy odbiorców. Muszę przy tym zadbać o odpowiednie uprawnienia i licencje.
Co jeszcze warto wiedzieć?
W obszarze roboczym dostępne są role Administrator, Członek, Współautor i Osoba przeglądająca.
W standardowym modelu udostępniania użytkownicy zwykle potrzebują licencji Power BI Pro. Raporty umieszczone w obszarach roboczych Premium Per User zasadniczo wymagają licencji PPU także od odbiorców.
W przypadku odpowiedniej pojemności Premium P lub Fabric F64 i wyższej raporty mogą być przeglądane również przez użytkowników z bezpłatną licencją, pod warunkiem że mają nadane właściwe uprawnienia.
24. Co to jest Row-Level Security (RLS)?
Przykładowa odpowiedź na rozmowie:
RLS to zabezpieczenia na poziomie wierszy, dzięki którym mogę ograniczyć użytkownikowi dostęp do określonych danych. Przykładowo kierownik regionu Północ może widzieć tylko sprzedaż swojego regionu. W Power BI definiuję odpowiednie role i filtry, a po opublikowaniu modelu przypisuję do nich użytkowników.
Przykład prostego filtra:
[Region] = "Północ"
Co jeszcze warto wiedzieć?
RLS może działać dynamicznie, np. na podstawie zalogowanego użytkownika.
W takim rozwiązaniu możesz wykorzystać USERPRINCIPALNAME():
[Email] = USERPRINCIPALNAME ()
Warunek powinien działać na odpowiednio przygotowanej tabeli uprawnień, powiązanej relacjami z danymi, które mają zostać ograniczone.
W obszarze roboczym RLS ogranicza dostęp użytkowników z rolą Viewer, ale nie ogranicza administratorów, członków ani współautorów. Obejmuje również odpowiednio uprawnionych użytkowników korzystających z raportów udostępnionych bezpośrednio lub przez aplikację.
25. Jak ustawić automatyczne odświeżanie danych?
Przykładowa odpowiedź na rozmowie:
Po opublikowaniu raportu w Power BI Service przechodzę do ustawień modelu semantycznego. Konfiguruję poświadczenia źródła i ustawiam harmonogram odświeżania. Jeśli dane znajdują się na lokalnym serwerze firmowym, mogę potrzebować bramy danych, czyli on-premises data gateway. Przy dużych modelach warto również rozważyć odświeżanie przyrostowe.
Co jeszcze warto wiedzieć?
W typowym środowisku Pro na pojemności współdzielonej możesz zaplanować do 8 odświeżeń dziennie. W odpowiednich środowiskach Premium, Fabric i PPU limit harmonogramu wynosi do 48 odświeżeń dziennie.
Odświeżanie przyrostowe, czyli incremental refresh, pozwala odświeżać określone okresy danych zamiast za każdym razem przetwarzać całą historię.
Standardowo Power BI odświeża odpowiednie partycje danych. Opcjonalny mechanizm wykrywania zmian pozwala dodatkowo ograniczyć liczbę odświeżanych okresów.
Trzeba też odróżniać odświeżanie modelu w trybie Import od DirectQuery, w którym Power BI odpytuje źródło podczas wykonywania zapytań.
Jak wygląda zadanie praktyczne z Power BI na rozmowie rekrutacyjnej?
Oprócz pytań teoretycznych możesz otrzymać zadanie praktyczne, które wykonasz podczas rozmowy albo samodzielnie w domu. Przykładowo rekruter przekaże Ci kilka tabel z danymi sprzedażowymi i poprosi o przygotowanie raportu pokazującego najważniejsze wyniki firmy. Twoim zadaniem będzie wtedy przygotowanie danych w Power Query, zbudowanie modelu, napisanie odpowiednich miar DAX oraz przedstawienie wyników w czytelnej formie.
Podczas oceny rekruter będzie zwracał uwagę na poprawność obliczeń, konstrukcję modelu i sposób prezentacji danych. Może również zapytać, dlaczego zdecydowałeś się na konkretne rozwiązanie albo co zrobiłbyś, gdyby raport zaczął działać wolno.
I tutaj wracamy do tego, o czym mówiłam w filmie. Załóżmy, że przygotowałeś miarę sprzedaży, ale jej wynik nie zgadza się z danymi źródłowymi. Zamiast zgadywać i zmieniać formułę na chybił trafił, sprawdź obowiązujące filtry, relacje między tabelami oraz sposób obliczania miary. Rekruter zobaczy wtedy, jak analizujesz problem i czy potrafisz samodzielnie znaleźć jego przyczynę. W codziennej pracy takie umiejętności przydają się znacznie częściej niż znajomość definicji na pamięć.
Jak przygotować się do rozmowy rekrutacyjnej z Power BI?
Zacznij od przejrzenia wszystkich 25 pytań i spróbuj odpowiedzieć na każde z nich własnymi słowami. Najlepiej na głos, tak jak podczas prawdziwej rozmowy. Szybko zauważysz, które zagadnienia rozumiesz na tyle dobrze, żeby swobodnie o nich opowiadać, a przy których kończy się na znajomości samej definicji.
Następnie wróć do jednego ze swoich projektów. Przypomnij sobie, skąd pochodziły dane, jakie przekształcenia wykonałeś w Power Query i dlaczego zastosowałeś określony model. Przygotuj się również do omówienia kilku miar DAX, zwłaszcza tych bardziej złożonych, bo właśnie przy nich mogą pojawić się dodatkowe pytania.
Jeśli okaże się, że znasz podstawowe pojęcia, ale nadal masz trudności z samodzielnym budowaniem raportów, możesz uporządkować tę wiedzę w moim Kursie Power BI dla Analityków. Przechodzimy w nim przez cały proces pracy z danymi, od ich przygotowania i modelowania po DAX oraz tworzenie raportów, które można wykorzystać w rzeczywistej pracy.
Jestem też ciekawa Twoich doświadczeń. Jeśli masz już za sobą rozmowę rekrutacyjną z Power BI, napisz w komentarzu, jakie pytania usłyszałeś. Chętnie uzupełnię ten artykuł o kolejne przykłady, szczególnie te, które potrafią zaskoczyć nawet dobrze przygotowanego kandydata.
