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 összes bejegyzése
- 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.