SQLShack

A Microsoft Power BI két különböző nyelvet támogat, az M nyelvet és a DAX-et (Data Analysis Expression), amelyek az adatok szűrésére, kezelésére és megjelenítésére használhatók.

Az M nyelv lekérdezési formulanyelvnek tekinthető, és a Power BI lekérdezésszerkesztőben használható az adatok előkészítésére, mielőtt azok betölthetők a Power BI modellbe.

A másik oldalon a DAX egy analitikus adatszámítási nyelv, amely az adatok mélyreható elemzésére használható az adatnézet fázisában.

Az M és a DAX nem függnek egymástól, teljesen más struktúrát és logikát követnek, és más mögöttes kódokkal rendelkeznek. Az M és a DAX nem használható egyszerre, mivel az M nyelvet a Query Editorban, míg a DAX-ot leginkább az Adatnézet modellben használják.

Ebben a blogbejegyzésben példák segítségével mutatjuk be, hogy az M és a DAX hogyan különbözik egymástól a Power BI-ban. A DAX gyors bemutatásáért lásd ezt a cikket.

Adatkészlet importálása

Ebben a részben egy dummy adatkészletet fogunk importálni, amelyet az M nyelv és a DAX lekérdezéseink végrehajtásához fogunk használni. Ehhez kezdjük azzal, hogy a felső menüben a “Get data” gombra kattintunk, ahogy az alábbi képernyőképen látható.

Egy új párbeszédpanel fogja felsorolni a Power BI-ban megnyitott összes adatlinket.

Insert web” a keresés részbe, és nagyon hamar megjelenik egy Web” adat opció, valamint egy ikon is megjelenik a Minden adatforrás opcióban. Válassza ki a Web” opciót, majd kattintson a “connect” gombra az alján. Ez az alábbi képernyőképen jól látható.

Megjelenik az alábbi képernyőképen látható párbeszédablak. Most az alábbi URL-t kell beillesztenie az URL feliratú mezőbe:

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

Ha ez megtörtént, kattintson az “OK” gombra a megerősítéshez.

Itt egy képernyőkép a referenciaként:

Ez az URL a Power BI-t a Github-ra vezeti, ahol a nekünk szükséges CSV adatfájl található. Az adatfájl egy távközlési ügyfélelhagyási adathalmazt részletez. Egy távközlési vállalat azon ügyfeleinek adatait tartalmazza, akik egy bizonyos időszak után elhagyták a vállalatot.

A fájl méretétől függően eltarthat egy ideig, amíg az adatokat letöltjük a távoli oldalról.

Miután letöltöttük az adatokat, két lehetőségünk van: vagy közvetlenül importálhatjuk az adatokat az Adat/Report nézetbe, vagy először betölthetjük az adatokat a Query Editorba. Mivel az M nyelv a Query Editorban működik, először a Query Editorba töltjük be az adatokat a “Transform Data” (Adatok átalakítása) gombra kattintva, ahogy az a következő képernyőképen látható:

Látni fogja, hogy az adatkészlet egy ügyfélre vonatkozó információkat tartalmaz, például nem, lakhely, telefonszolgáltatás, internetszolgáltatás, eltartottak stb.

Miután rákattint a Transform gombra, a következő lekérdezésszerkesztőt kell látnia.

Különbségek az M nyelv és a DAX között

Az előző részben a Power BI-t a GitHubon található dummy adatállományhoz kapcsoltuk. Ebben a részben példák segítségével megnézzük, hogy mi a különbség az M nyelv és a DAX között.

M nyelv

Először is megnézzük, hogy mi az M nyelv és hogyan használják a Power BI-ben. Mint korábban említettem, az M nyelvet az adatok kezelésére és szűrésére használjuk a lekérdezésszerkesztőben. Ha bezárta a lekérdezésszerkesztőt, akkor a felső menüből a “Lekérdezések szerkesztése” opcióra kattintva nyithatja meg.

A lekérdezésszerkesztőben a képernyő bal oldalán csak a táblázat neve lesz látható, ahogy az alábbiakban látható. Kattintson a lekérdezésszerkesztő bal oldali paneljén a “WA_Fn-UseC_-Telco-Customer-Churn” adattáblára az alábbiak szerint:

A lekérdezések megtekintéséhez M. Jelölje ki bármelyik oszlopot, például “Partner”, majd kattintson a felső menüben az “Oszlopok eltávolítása” gombra. Ez eltávolítja a “Partner” oszlopot a táblázatból, ahogy az alábbiakban látható:

Ezután kattintson a felső menü “Nézet” lehetőségére, ahogy az alábbi képernyőképen kiemeltük.

Kattintson a “Képletsor” jelölőnégyzetre. Most már egy lekérdezést kell látnia a képletsoron, ahogyan az a következő képernyőképen kiemelve van. A lekérdezés itt a következő: “= Table.RemoveColumns(#”Changed Type”,{“Partner”}). Ez a lekérdezés egy M nyelvi lekérdezés, amelyet a “Partner” oszlop eltávolítására használunk a kiválasztott táblázatból. Láthatja, hogy az M nyelvi lekérdezés jobban hasonlít egy SQL vagy LINQ (Language Integrated Query) parancshoz C# nyelven.

Ha látni szeretné az adatállományban korábban végrehajtott összes M lekérdezést, kattintson a “Nézet – Speciális szerkesztő” gombra, ahogy az a következő képernyőképen látható.

Miután a felső menüből a “Speciális szerkesztő” lehetőségre kattint, az alábbiakban látható Speciális szerkesztő ablakot kell megjelenítenie. A Speciális szerkesztő ablak tartalmazza az összes M nyelvű lekérdezést, amelyet eddig az aktuális munkamenetben végrehajtott.

Láthatja, hogy az utolsó lekérdezés az, amelyik eltávolította a “Partner” oszlopot a táblázatból. Ezt megelőzően a “Típus módosítása” lekérdezés az adattípusok hozzárendelésére szolgál az adatállomány különböző oszlopaihoz. Ezt megelőzően pedig a “Promoted Headers” lekérdezés a fejléc oszlopok beállítására szolgál. Ha egy másik lekérdezést hajtunk végre, akkor az alul fog megjelenni az “Előzetes szerkesztő” lekérdezéslistájában.

Próbáljunk meg egy egyszerű oszlopot hozzáadni a könyvek táblához, és nézzük meg az ehhez szükséges M lekérdezést. Kattintsunk az ablak tetején található menüben az “Add Column -> Custom Column” opcióra, ahogy az alább látható:

Az alábbi ablakot kell látnunk. Kattintson egyenként a “TotalCharges” és a “MonthlyCharges” oszlopokra, majd a “Insert” gombra a lekérdezésszerkesztő ablakba való beillesztésükhöz. A lekérdezésszerkesztő ablakban adjon egy “+” jelet a két oszlop neve közé, majd kattintson az “OK” gombra.

Az alábbiakban látható módon egy új “Havi összeg” oszlopot kell hozzáadni a táblázathoz. A képletsorban láthatja a “Havi összeg” oszlop létrehozásához generált M lekérdezést is. A “Havi összeg” oszlop alapvetően a “Teljes díj” és a “Havi díj” oszlopok értékeinek összegét jeleníti meg.

Ha most ismét megnyitja a “Speciális szerkesztő” ablakot, akkor a “Havi összeg” oszlop hozzáadásához használt lekérdezést a speciális szerkesztő lekérdezéseinek alján láthatja.

Most már tudjuk, hogyan működik és hogyan néz ki az M nyelv. A következő részben megpróbáljuk ugyanezt a “Monthly-Total 2” oszlopot DAX (Data Analysis Expression) segítségével létrehozni.

A DAX-lekérdezések az adatnézetben kerülnek végrehajtásra, ezért az adatokat a lekérdezésszerkesztőből át kell helyeznünk az adatnézetbe. Ehhez a lekérdezésszerkesztőben kattintson a felső menüben a “Bezárás & Alkalmazás” lehetőségre az alábbiakban látható módon:

A “Bezárás & Alkalmazás” gombra kattintva megnyílik az adatnézet.

DAX (Data Analysis Expression)

Ebben a részben megnézzük, hogyan adhatunk hozzá egy új oszlopot a Könyvek táblázathoz DAX segítségével. Az Adatnézetben kattintson a felső menüben a “Modellezés -> Új oszlop” lehetőségre az alábbiakban látható módon:

Az “Új oszlop” lehetőségre kattintva a következő ablakot kell megjelenítenie. A képletsorban láthatja az alapértelmezett oszlopnevet. A DAX-lekérdezéseket ebben a képletsorban tudja végrehajtani.

Írja be a “Havi összeg 2 = + ” lekérdezést a képletsorba, és nyomja meg az “Enter” billentyűt. Az enter billentyű lenyomása után megjelenik egy új oszlop, a “Monthly-Total 2”, amely a “TotalCharges” és a “MonthlyCharges” oszlopok értékeinek összegét jeleníti meg.

Láthatja, hogy a DAX-lekérdezések jobban hasonlítanak az MS Excelhez.

Következtetés

Az M nyelv és a DAX a Power BI által támogatott két nyelv az adatok manipulálására, szűrésére és elemzésére. Bár mindkét nyelv hasonló funkciókkal rendelkezik, egymástól függetlenül működnek. Az M nyelvet az adatok előfeldolgozására használják a lekérdezésszerkesztőn belül, míg a DAX nyelvet az adatok elemzésére használják, miután az adatok betöltődtek az adatnézet-modellbe.

  • Author
  • Recent Posts
Ben Richardson vezeti az Acuity Training vezető SQL képzési szolgáltatót az Egyesült Királyságban. Az SQL-képzés teljes skáláját kínálja a bevezető tanfolyamoktól kezdve a haladó adminisztrációs és adattárházi képzéseken át – további részletekért lásd itt. Az Acuity irodái Londonban és a Surrey állambeli Guildfordban találhatók. Alkalmanként blogol is az Acuity blogján
Ben Richardson összes bejegyzése

Legújabb bejegyzések Ben Richardson (az összeset lásd)
  • Munka a Power BI jelentéstémákkal – 2021. február 25.
  • Power BI: Vízesésdiagramok és kombinált vizuális ábrák – 2021. január 19.
  • Power BI: Feltételes formázás és adatszínek működés közben – 2021. január 14.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.