Cześć,

Bez zbędnych wstępów zapraszam na kontynuację wpisu Pytania rekrutacyjne z DAX i Power BI. Jeżeli jesteś w tej sekcji pierwszy raz, koniecznie przeczytaj TEN artykuł jako pierwszy.

W tym artykule znajdziecie pytania, które przeważnie padają na rozmowach kwalifikacyjnych na stanowiska takie jak BI Developer, Analityk danych, SQL developer etc.

Zapraszam.

Pytania rekrutacyjne – DAX i Power BI

Co to jest pulpit nawigacyjny i czym różni się od raportu?

Jest to pojedyńcza strona, znajdująca się w usłudze Power BI (app.powerbi…). Umieszczone na niej są wizualizacje z raportów Power BI. Pulpit nawigacyjny projektuje się z poziomiu usługi (online).

Kafelki (wizualizacje) znajdujące się na pulpicie nawigacyjnym mogą pochodzić z różnych raportów, po ich kliknięciu przenosimy się do danej strony na raporcie, z którego pochodzi kafelek.

Podstawową różnicą pomiędzy pulpitem a raportem jest to, że pulpit składa się tylko z jednej strony, gdzie raport może mieć ich wiele. Raport posiada jeden przypisany zestaw danych, gdzie pulpit może mieć ich więcej (przynamniej jeden z danego raportu, z którego pochodzą kafelki).

Dobre porównanie raport vs. pulpit w formie tabeli znajdziesz tutaj- https://docs.microsoft.com/pl-pl/power-bi/consumer/end-user-dashboards#dashboards-versus-reports-for-power-bi-business-users


Jak często aktualizowany jest Power BI ?

Zazwyczaj nowa aktualizacja Power BI pojawia się raz na miesiąc.

Polecam subskrybować kanał: https://www.youtube.com/user/mspowerbi, gdzie pojawiają sie nowe aktulizacje oraz inne materiały dotyczące Power BI. Jest to kanał prowadzony przez zespół z Microsoft.


PS. Wyjątkiem było pierwsze półrocze 2020, gdzie przez pandemię aktulizacje nie pojawiały się regularnie.


Jaki rodzaj wykresu zastosowałbyś do danych opisanych ciągiem czasu ?

Zastosowałabym wykres liniowy, aby przedstawić zmianę danej wartości w czasie.

Podobnie można użyć wykresu – scatter chart, rozproszonego liniowego.

Tutaj znajdziesz ciekawy artykuł z graficznie przedstawioną ścieżką wyboru wykresu do danych – https://venngage.com/blog/how-to-choose-the-best-charts-for-your-infographic/


Do czego używane jest Power Query w Power BI?

Używając Power Query przekształcamy dane na takie jakie potrzebujemy na potrzeby raportu.

Przykładowe operacje dostępne w interfejsie Power Query w Power BI to: dodawanie nowej kolumny, łączenie ze sobą tabel, zmiana typów danych, podmiana wartości w kolumnach etc… Opcji jest sporo.

Więcej informacji o użyciu Power Query w Power BI można znaleźć tutaj – https://docs.microsoft.com/pl-pl/power-query/power-query-ui


Czy potrafisz podać przykład tablicy kalkulowanej ?

Pierwsza tabela kalkulowana jaka przychodzi mi na myśl to tabela dat. Używając funkcji CALENDARAUTO automatycznie stworzy się wymiar dat. https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Tabele kalkulowane (obliczeniowe) tworzymy na podstawie załadowanych już danych. Tworzymy je w języku DAX. Przykład:

Tablica kalkulowana = UNION('Tablica 1', 'Tablica 2')

Tak stworzone tabele możemy używać w ten sam sposób co tabele załadowane z zestawu danych. Dodawać relacje, łączyć z innymi obiektami, nadawać typy danych.

Więcej tutaj – https://docs.microsoft.com/pl-pl/power-bi/transform-model/desktop-calculated-tables


Czym różni się Import Mode od Direct Query?

Nie wszystkie źródła danych mogą nawiązać połączenie z Power BI metodą Direct Query. Pełna lista dostępnych źródeł znajduje się tutaj – https://docs.microsoft.com/pl-pl/power-bi/connect-data/power-bi-data-sources

Przy połączeniu Direct Query, raport będzie bezpośrednio odpytywał dane źródło danych w czasie rzeczywistym. Oznacza to, że za każdym razem kiedy następuje interakcja z raportem, zmieniany jest filtr, nawiązane zostaną połączenia do źródła danych i zostanie ono odpytane.

Import mode powoduje, że Power BI będzie trzymał w pamięci podręcznej zestaw danych. Oznacza to, że wszelkie interakcje i odpytywanie danych w raporcie będzie korzystało z tych przechowywanych danych w pamięci podręcznej. Dzięki silnikowi VertiPaq skompresowanych danych.


Co to jest RLS?

RLS – row level security, czyli zabezpieczenia na poziomie wiersza.

Pozwalają pokazać tylko wycinek danych dla odpowiednich użytkowników. Ograniczyć dostęp co całości zestawu danych. Zabezpieczenia te stanowią swoisty filtr, przez który zdefiniowany użytkownik widzi raport.

Ustawiane są w Power BI Desktop, poprzez tworzenie ról i ograniczania zestawu danych w obrębie danej roli. Do stworzonych ról przypisuje się odpowiednich użytkowników.

https://docs.microsoft.com/pl-pl/power-bi/admin/service-admin-rls


Czym różni się funkcja SUM od SUMX ?

Obie z tych miar są to funkcje agregacyjne, sumujące.

SUM to prostsza z nich, która sumuje wartości w kontekście filtra w Power BI (kontekst filtra vs. kontest wiersza – niżej). Jeżeli nie wybrano filtra. Miara po prostu oblicza sumę danej wartości dla całej tabeli, z której dana wartość pochodzi. Jeżeli na raporcie wybierzemy filtr działający na dany argument w mierze to policzy ona sumę przefiltrowaną przez nałożone ograniczenia.

SUMX to miara licząca sumę wyrażenia. Z angielskiego “expression” zaczerpnięto i dodano X na końcu miary. Jest to funkcja iteracyjna, ponieważ przechodzi wiersz po wierszu w danej tabeli i przechowuje wynik działania w pamięci tymczasowej.

Polecam zobaczyć działania funkcji na przykładzie, świetny artykuł tutaj – https://radacad.com/sum-vs-sumx-what-is-the-difference-of-the-two-dax-functions-in-power-bi


Co robi funkcja SWITCH ?

SWITCH pozwala na sprawdzenie danego wyrażenia, przy określonych warunkach i jeżeli zostaną one spełnione, zwrócenie danej wartości/wyrażenia. Funkcja działa podobnie jak IF, jednak jest bardziej przejrzysta w działaniu, niż np. zagnieżdzone IFy.

Przykłady jej działania znajdziesz tutaj – https://dax.guide/switch/


Jak działa APPEND a jak działa MERGE w Power BI ?

Obie komendy służą łączeniu zapytań, tabel w Power BI (w Power Query).

APPEND działa w ten sposób, że łączy dwie lub więcej tabel wiersz po wierszu. Wiersze z jednej tabeli znajdą się powyżej/poniżej wierszy z drugiej tabeli. Czyli łącząc ze sobą 2 tabele, każda po 10 rekordów otrzymamy tabelę 20 rekordów. Co ważne, w łączonych ze sobą tabelach musi zgadzać się liczba kolumn. O append często myślę jak o UNION ALL w SQL. Dlaczego nie union? Ponieważ komenda APPEND nie usunie duplikatów między łączonymi tabelami.

MERGE działa w ten sposób, że łączy ze sobą tabele po zadanych kryteriach połączenia. Na przykład w obu tabelach, które ze sobą łączymy znajduje się kolumna ProductId. Ilośc wierszy jaką zwróci wynik MERGE zależy od tego, ile wierszy dopasuje się po zadanych kryteriach. O MERGE myślę jak o JOIN w SQL. Który JOIN? Otóż Power BI na ten moment wspiera 6 rodzajów MERGE:


Co to jest Query Folding?

Tak zwane składanie zapytań, jest to jedna z umiejętności Power Query. Pozwala ona na wygenerowanie pojedynczego zapytania, aby pobrać i przekształcić dane. Nie wszystkie źródła danych ulegają Query Folding, na przykład pliki płaskie, BLOB.

Rozszerzenie tematu tutaj – https://docs.microsoft.com/en-us/power-bi/guidance/power-query-folding


Czym różni się wyrażenie CALCULATE od CALCULATE TABLE?

CALCULATE przelicza daną wartość skalarną i jej wynikiem jest również wartość skalarna. Daną wejściową do funkcji CALCULATE może być na przykład miara.

CALCULATE TABLE zwraca zawsze tabelę i daną wejściową musi być wyrażenie, które pozwoli na przeliczenie i zwrócenie wartości w postaci tabeli.

Przykład znajdziesz tutaj – https://docs.microsoft.com/pl-pl/dax/calculatetable-function-dax


Czy wiesz co to jest język M?

Język M kryje się pod Power Query. Podczas transformacji danych w Power Query, działania te zapisywane są w języku M. Można je podejrzeć w zaawansowym edytorze zapytań w Power BI.

Język M jest napisany głównie za pomocą funkcji.

Samo “M” wzięło się od słowa “Mashed-Up”, ponieważ Power Query bierze różne źródła danych, a następnie ‘miesza’, łączy je ze sobą.

Dokumentacja – https://docs.microsoft.com/pl-pl/powerquery-m/quick-tour-of-the-power-query-m-formula-language


Podaj przykład znanej ci funkcji tekstowej w języku DAX.

Mi zdarza się używać CONCATENATE, LEFT, RIGHT.

Pełna lista tutaj – https://docs.microsoft.com/pl-pl/dax/text-functions-dax


Jaka jest różnica pomiędzy ALL a ALL Selected?

Obie funkcje ściągają filtry z wybranego wyrażenia. Podstawową różnicą pomiędzy ALL() a ALLSELECTED() jest to, że ALL() ignoruje wszelkie filtry dla danego wybranego wyrażenia, a ALLSELECTED() ignoruje tylko filtry zadane w funkcji. ( z zapytania wewnętrznego).


Czy potrafisz powiedzieć co to jest kontekst filtra a kontekst wiersza w DAX?

Kontekst filtra pokazuje miarę/wyrażenie w kontekście zadanych filtrów. Jest to zestaw filtrów w modelu danych, zastosowanych jeszczed przed ewaluacją wyrażenia przez język DAX.

Kontekst wiersza istnieje w momencie kiedy dokonywana jest iteracja tabeli, na przykład wyrażenie wykonywane jest wiersz po wierszu. Można rozumieć go jako bieżący wiersz, wartości w każdym pojedyńczym wierszu oraz wartości w kolumnach powiązanych z bieżącym wierszem

Jeżeli chcesz naprawdę zagłębić się w temat polecam prezentację Marco Russo – https://www.youtube.com/watch?v=teYwjHkCEm0

.