SQLShack

Microsoft Power BI obsługuje dwa różne języki, język M i DAX (Data Analysis Expression), które mogą być używane do filtrowania, zarządzania i wizualizacji danych.

Język M może być uważany za język formuł zapytań i może być używany w edytorze zapytań Power BI w celu przygotowania danych przed ich załadowaniem do modelu Power BI.

Z drugiej strony, DAX to analityczny język obliczeń danych, który może być używany do dogłębnej analizy danych w fazie Data View.

M i DAX nie są od siebie zależne i mają zupełnie inne struktury i logikę oraz różne kody bazowe. M i DAX nie mogą być używane jednocześnie, ponieważ język M jest używany w Query Editor, podczas gdy DAX jest używany głównie w modelu Data View.

Ten wpis na blogu pokaże Ci, jak M i DAX różnią się od siebie w Power BI, z pomocą przykładów. Zobacz ten artykuł, aby uzyskać szybkie wprowadzenie do DAX.

Importowanie zbioru danych

W tej sekcji zaimportujemy pusty zbiór danych, którego użyjemy do wykonania naszych zapytań w języku M i DAX. Aby to zrobić, należy kliknąć przycisk „Pobierz dane” w górnym menu, jak pokazano na poniższym zrzucie ekranu.

Nowy dialog wyświetli listę wszystkich łączy danych otwartych dla Power BI.

W sekcji wyszukiwania wpisz „Web”, a bardzo szybko pojawi się opcja danych „Web”, a także ikona w opcji Wszystkie źródła danych. Wybierz opcję „Web”, a następnie kliknij „Połącz” na dole. Widać to wyraźnie na poniższym zrzucie ekranu.

Pojawi się okno dialogowe, które widać na poniższym zrzucie ekranu. Teraz musisz wstawić poniższy adres URL do pola oznaczonego jako URL:

https://raw.githubusercontent.com/treselle-systems/customer_churn_analysis/master/WA_Fn-UseC_-Telco-Customer-Churn.csv

Kliknij „OK”, aby potwierdzić, gdy to zrobisz.

Oto zrzut ekranu dla odniesienia:

Ten adres URL przenosi Power BI do Github, który przechowuje plik danych CSV, którego potrzebujemy. Plik danych jest zbiorem danych dotyczących rezygnacji klientów firmy telekomunikacyjnej. Zawiera on dane o klientach firmy telekomunikacyjnej, którzy opuścili firmę po pewnym czasie.

W zależności od rozmiaru pliku, pobranie danych ze zdalnej strony może zająć chwilę.

Po pobraniu danych mamy dwie opcje: albo możemy bezpośrednio zaimportować dane do Data/Report View, albo możemy najpierw załadować dane do Query Editor. Ponieważ język M działa w edytorze zapytań, najpierw załadujemy dane do edytora zapytań, klikając „Przekształć dane”, jak pokazano na poniższym zrzucie ekranu:

Zobaczysz, że zbiór danych zawiera informacje o kliencie, takie jak płeć, wiek, usługa telefoniczna, usługa internetowa, osoby pozostające na utrzymaniu itp.

Po kliknięciu przycisku Przekształć, powinieneś zobaczyć następujący edytor zapytań.

Różnice między M Language a DAX

W poprzedniej sekcji podłączyliśmy Power BI do atrapy zbioru danych na GitHubie. W tej sekcji, z pomocą przykładów, zobaczysz różnice pomiędzy M Language i DAX.

M Language

Po pierwsze, zobaczymy czym jest M i jak jest używany w Power BI. Jak już wcześniej wspomniałem, Język M służy do zarządzania i filtrowania danych w Edytorze zapytań. Jeśli zamknąłeś Edytor zapytań, możesz go otworzyć, klikając opcję „Edytuj zapytania” z górnego menu.

W Edytorze zapytań jedyną nazwą tabeli w lewym panelu ekranu będzie Twoja tabela, jak pokazano poniżej. Kliknij na tabelę danych „WA_Fn-UseC_-Telco-Customer-Churn” w lewym panelu edytora zapytań, jak pokazano poniżej:

Aby zobaczyć zapytania w M. Wybierz dowolną kolumnę, na przykład „Partner”, a następnie kliknij przycisk „Usuń kolumny” z górnego menu. Spowoduje to usunięcie kolumny „Partner” z tabeli, jak pokazano poniżej:

Następnie kliknij opcję „Widok” z górnego menu, jak pokazano na poniższym zrzucie ekranu.

Kliknij pole wyboru „Pasek formuły”. Powinieneś teraz zobaczyć zapytanie w pasku formuły, jak pokazano na poniższym zrzucie ekranu. Zapytanie tutaj brzmi „= Table.RemoveColumns(#”Changed Type”,{„Partner”}). To zapytanie jest zapytaniem w języku M używanym do usunięcia kolumny „Partner” z wybranej tabeli. Można zauważyć, że zapytanie języka M jest bardziej podobne do polecenia SQL lub LINQ (Language Integrated Query) w języku C#.

Aby zobaczyć wszystkie poprzednio wykonane zapytania języka M w zbiorze danych, można kliknąć na „Widok – Edytor zaawansowany”, jak pokazano na poniższym zrzucie ekranu.

Po kliknięciu opcji „Edytor zaawansowany” z górnego menu, powinno zostać wyświetlone okno Edytor zaawansowany, jak pokazano poniżej. W oknie Edytor zaawansowany znajdują się wszystkie zapytania w języku M, które zostały wykonane do tej pory w bieżącej sesji.

Widać, że ostatnie zapytanie jest tym, które usunęło kolumnę „Partner” z tabeli. Przed tym jest zapytanie „Zmień typ”, które służy do przypisania typów danych do różnych kolumn w zbiorze danych. A wcześniej zapytanie „Promowane nagłówki” służy do ustawienia kolumn nagłówkowych. Jeśli wykonasz inne zapytanie, pojawi się ono na dole na liście zapytań w „Advance Editor”.

Spróbujmy dodać prostą kolumnę w tabeli książek i zobaczmy zapytanie M do tego celu. Kliknij na opcję „Add Column -> Custom Column” w menu na górze okna, jak widać poniżej:

Powinieneś zobaczyć okno poniżej. Kliknij kolejno na kolumny „TotalCharges” oraz „MonthlyCharges”, a następnie kliknij przycisk „Wstaw”, aby wstawić je do okna edytora zapytań. W oknie edytora zapytań, dodaj znak „+” pomiędzy nazwami dwóch kolumn i kliknij przycisk „OK”.

Powinieneś zobaczyć nową kolumnę „Monthly-Total” dodaną do tabeli, jak pokazano poniżej. Na pasku formuły możesz również zobaczyć zapytanie M wygenerowane w celu utworzenia kolumny „Monthly-Total”. Kolumna „Monthly-Total” wyświetla sumę wartości z kolumn „TotalCharges” i „MonthlyCharges”.

Teraz, jeśli ponownie otworzysz okno „Edytor zaawansowany”, zobaczysz zapytanie użyte do dodania kolumny „Monthly-Total” na dole zapytań w edytorze zaawansowanym.

Teraz wiemy, jak działa język M i jak wygląda. W następnej części spróbujemy stworzyć tę samą kolumnę „Miesięcznie – Suma 2” za pomocą DAX (Data Analysis Expression).

Zapytania DAX są wykonywane w widoku danych, dlatego musimy przenieść dane z Edytora zapytań do widoku danych. Aby to zrobić, w Edytorze zapytań kliknij opcję „Zamknij & Zastosuj” z górnego menu, jak pokazano poniżej:

Po kliknięciu przycisku „Zamknij & Zastosuj” zostanie otwarty Widok danych.

DAX (Data Analysis Expression)

W tym rozdziale zobaczymy, jak dodać nową kolumnę do tabeli Książki za pomocą DAX. W widoku danych kliknij na opcję „Modelowanie -> Nowa kolumna” z górnego menu, jak pokazano poniżej:

Po kliknięciu na opcję „Nowa kolumna” powinno pojawić się następujące okno. Na pasku formuły widoczna jest domyślna nazwa kolumny. W tym pasku formuły można wykonywać zapytania DAX.

W pasku formuły należy wpisać zapytanie „Miesięcznie – Suma 2 = + ” i nacisnąć klawisz „Enter”. Po naciśnięciu klawisza Enter pojawi się nowa kolumna „Monthly-Total 2”, która wyświetla sumę wartości w kolumnach „TotalCharges” i „MonthlyCharges”.

Widać, że zapytania DAX są bardziej podobne do MS Excel.

Wnioski

M Language i DAX to dwa języki obsługiwane przez Power BI do manipulowania, filtrowania i analizowania danych. Choć oba języki mają podobne funkcjonalności, działają niezależnie od siebie. M jest używany do wstępnego przetwarzania danych w edytorze zapytań, podczas gdy DAX jest używany do analizy danych po ich załadowaniu do modelu widoku danych.

  • Autor
  • Recent Posts
Ben Richardson prowadzi Acuity Training wiodącego dostawcę szkoleń SQL w Wielkiej Brytanii. Oferuje pełen zakres szkoleń SQL, od kursów wprowadzających po zaawansowane szkolenia z administracji i hurtowni danych – więcej szczegółów tutaj. Acuity posiada biura w Londynie i Guildford, Surrey. Od czasu do czasu bloguje również na blogu Acuity
View all posts by Ben Richardson

Latest posts by Ben Richardson (see all)
  • Working with Power BI report themes – February 25, 2021
  • Power BI: Wykresy wodospadowe i połączone wizualizacje – 19 stycznia 2021
  • Power BI: Formatowanie warunkowe i kolory danych w akcji – 14 stycznia 2021

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.