SQLShack

Microsoft Power BI ondersteunt twee verschillende talen, M-taal en DAX (Data Analysis Expression) die kunnen worden gebruikt om gegevens te filteren, te beheren en te visualiseren.

M kan worden beschouwd als een queryformuletaal en kan worden gebruikt in de Power BI Query Editor om gegevens voor te bereiden voordat ze in het Power BI-model kunnen worden geladen.

Aan de andere kant is DAX een analytische gegevensberekeningstaal die kan worden gebruikt voor diepgaande gegevensanalyse tijdens de fase van gegevensweergave.

M en DAX zijn niet afhankelijk van elkaar en volgen totaal verschillende structuren en logica’s, en hebben verschillende onderliggende codes. M en DAX kunnen niet tegelijkertijd worden gebruikt, omdat de M-taal wordt gebruikt in Query Editor, terwijl DAX meestal wordt gebruikt in het Data View-model.

Deze blogpost laat u zien hoe M en DAX van elkaar verschillen in Power BI, met behulp van voorbeelden. Zie dit artikel voor een snelle inleiding tot DAX.

Dataset importeren

In dit gedeelte importeren we een dummy dataset die we zullen gebruiken om onze M Language en DAX query’s uit te voeren. Om dit te doen, begint u met het klikken op de knop “Gegevens ophalen” in het bovenste menu, zoals te zien is in de volgende schermafbeelding.

Er verschijnt een nieuw dialoogvenster met een lijst van alle gegevenskoppelingen die openstaan voor Power BI.

Voeg in de zoeksectie de optie “Web” in, en heel snel verschijnt er een optie “Web” en ook een pictogram in de optie Alle gegevensbronnen. Selecteer de optie “Web” en klik vervolgens onderaan op “verbinden”. Dit is duidelijk te zien in onderstaande schermafbeelding.

Het dialoogvenster dat u in onderstaande schermafbeelding kunt zien, zal verschijnen. U moet nu de onderstaande URL invoegen in het veld met de tekst URL:

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

Klik op “OK” om te bevestigen dat dit is gebeurd.

Hier volgt een screenshot ter referentie:

Deze URL brengt Power BI naar Github waar zich het CSV-gegevensbestand bevindt dat wij nodig hebben. Het gegevensbestand bevat een dataset over het verloop van telecomklanten. Het bevat gegevens over de klanten van een telecombedrijf, die het bedrijf na een bepaalde periode hebben verlaten.

Afhankelijk van de grootte van het bestand, kan het even duren om de gegevens van de externe site te downloaden.

Zodra de gegevens zijn gedownload, hebt u twee opties: u kunt de gegevens rechtstreeks importeren in Data/Report View, of u kunt de gegevens eerst laden in Query Editor. Aangezien de M-taal in de Query-editor werkt, zullen we de gegevens eerst in de Query-editor laden door op “Transformeer gegevens” te klikken, zoals in de volgende schermafbeelding te zien is:

U zult zien dat de dataset informatie over een klant bevat, zoals geslacht, huurperiode, telefoondienst, internetdienst, afhankelijke personen enz.

Zodra u op de knop Transformeren klikt, zou u de volgende Query-editor moeten zien.

Verschillen tussen M Language en DAX

In het vorige gedeelte hebben we Power BI verbonden met een dummy-dataset op GitHub. In deze sectie zult u met behulp van voorbeelden de verschillen tussen M Language en DAX zien.

M Language

Eerst zullen we zien wat M is en hoe het in Power BI wordt gebruikt. Zoals ik al eerder zei, wordt de M Language gebruikt om gegevens te beheren en te filteren in de Query Editor. Als u de Query-editor hebt gesloten, kunt u deze openen door in het bovenste menu op de optie “Query’s bewerken” te klikken.

In de Query-editor is de enige tabelnaam op het linkerpaneel van het scherm uw tabel, zoals hieronder wordt weergegeven. Klik op de gegevenstabel “WA_Fn-UseC_-Telco-Customer-Churn” in het linkerpaneel van de query-editor, zoals hieronder afgebeeld:

Om de query’s te zien in M. Selecteer een kolom, bijvoorbeeld “Partner” en klik vervolgens op de knop “Kolommen verwijderen” in het bovenste menu. Hierdoor wordt de kolom “Partner” uit de tabel verwijderd, zoals hieronder is te zien:

Klik vervolgens op de optie “Weergeven” in het bovenste menu, zoals te zien is in de volgende schermafbeelding.

Klik op het selectievakje “Formulebalk”. U zou nu een query moeten zien in de formulebalk zoals aangegeven in de volgende schermafbeelding. De query hier is “= Table.RemoveColumns(#”Changed Type”,{“Partner”}). Deze query is een M-taal query die wordt gebruikt om de kolom “Partner” uit de geselecteerde tabel te verwijderen. U kunt zien dat de M-taal query meer lijkt op een SQL of LINQ (Language Integrated Query) opdracht in C#.

Om alle eerder uitgevoerde M-query’s in uw dataset te zien, kunt u klikken op “View – Advanced Editor”, zoals te zien is in de volgende schermafbeelding.

Zodra u in het topmenu op de optie “Geavanceerde editor” hebt geklikt, zou u het venster Geavanceerde editor moeten zien zoals hieronder afgebeeld. Het venster Geavanceerde editor bevat alle M-taal query’s die u tot nu toe in de huidige sessie hebt uitgevoerd.

U kunt zien dat de laatste query degene is die de kolom “Partner” uit de tabel heeft verwijderd. Daarvoor wordt de “Change Type” query gebruikt om de datatypes toe te wijzen aan verschillende kolommen in de dataset. En daarvoor wordt de “Promoted Headers” query gebruikt om de header kolommen in te stellen. Als u een andere query uitvoert, verschijnt die onderaan in de query-lijst in de “Advance Editor”.

Laten we proberen een eenvoudige kolom toe te voegen in de boekentabel en de M query daarvoor bekijken. Klik op de optie “Add Column -> Custom Column” in het menu bovenaan het venster, zoals u hieronder kunt zien:

U zou het onderstaande venster moeten zien. Klik één voor één op de kolommen “TotalCharges” en “MonthlyCharges” en klik vervolgens op de knop “Insert” (invoegen) om deze in het query editor venster in te voegen. Voeg in het query editor venster een “+” teken toe tussen de twee kolomnamen en klik op de “OK” knop.

U zou een nieuwe kolom “Maand-totaal” toegevoegd moeten zien aan de tabel zoals hieronder getoond. In de formulebalk ziet u ook de M query die is gegenereerd om de kolom “Maandtotaal” aan te maken. De kolom “Maandtotaal” geeft in feite de som van de waarden in de kolommen “TotaalHeffingen” en “MaandHeffingen” weer.

Als u nu opnieuw het venster “Geavanceerde editor” opent, ziet u de query die is gebruikt om de kolom “Maandtotaal” toe te voegen, onderaan de query’s in de geavanceerde editor.

Nu weten we hoe de M-taal werkt en hoe deze eruit ziet. In het volgende gedeelte zullen we proberen dezelfde kolom “Maand-totaal 2” te maken via DAX (Data Analysis Expression).

DAX-query’s worden uitgevoerd in de gegevensweergave; daarom moeten we de gegevens verplaatsen van de Query-editor naar de gegevensweergave. Klik daartoe in de Query-editor op de optie “Sluiten & Toepassen” in het menu bovenin, zoals hieronder is weergegeven:

Zodra u op de knop “Sluiten & Toepassen” klikt, wordt de gegevensweergave geopend.

DAX (Data Analysis Expression)

In dit gedeelte zullen we zien hoe we met behulp van DAX een nieuwe kolom kunnen toevoegen aan de tabel met boeken. Klik in de gegevensweergave op de optie “Modelleren -> Nieuwe kolom” in het bovenste menu, zoals hieronder weergegeven:

U zou het volgende venster moeten zien zodra u op de optie “Nieuwe kolom” klikt. In de formulebalk ziet u de standaard kolomnaam. In deze formulebalk kunt u DAX-query’s uitvoeren.

Voer in de formulebalk de query “Maandtotaal 2 = + ” in en druk op de “Enter”-toets. Zodra u op Enter drukt, ziet u een nieuwe kolom “Maandtotaal 2” die de som weergeeft van de waarden in de kolommen “TotaalHeffingen” en “MaandHeffingen”.

U ziet dat de DAX-query’s meer lijken op MS Excel.

Conclusie

M Language en DAX zijn de twee talen die door Power BI worden ondersteund voor het manipuleren, filteren en analyseren van de gegevens. Hoewel beide talen vergelijkbare functionaliteiten hebben, werken ze onafhankelijk van elkaar. M wordt gebruikt om de gegevens voor te bewerken in de Query Editor, terwijl DAX wordt gebruikt om de gegevens te analyseren nadat de gegevens zijn geladen in het Data View Model.

  • Auteur
  • Recent Posts
Ben Richardson leidt Acuity Training, een toonaangevende aanbieder van SQL-training in het Verenigd Koninkrijk. Het biedt een volledig scala aan SQL trainingen, van inleidende cursussen tot geavanceerde administratie en data warehouse trainingen – zie hier voor meer details. Acuity heeft kantoren in Londen en Guildford, Surrey. Hij blogt ook af en toe op de blog van Acuity
Bekijk alle berichten van Ben Richardson

Laatste berichten van Ben Richardson (bekijk alle)
  • Werken met Power BI-rapportthema’s – 25 februari 2021
  • Power BI: Watervalgrafieken en gecombineerde visuals – 19 januari 2021
  • Power BI: Voorwaardelijke opmaak en gegevenskleuren in actie – 14 januari 2021

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.