M a Power Query színtere mögött meghúzódó erőteljes nyelv. Minden alkalmazott transzformáció M nyelven lesz megírva. Sokak számára az M ijesztő nyelvnek tűnik. Ebben a bejegyzésben szeretném elmagyarázni egy kicsit az M alapjait. Nem említve semmilyen függvényt. Elsősorban azt szeretném elmagyarázni, hogyan épül fel az M nyelv szintaxisa. Ha egyszer ismered a szintaxist, akkor minden egyszerűvé válik. Az M egy olyan nyelv, aminek a szintaxisát könnyen meg lehet tanulni. Mint Power Query fejlesztő; nagyon ajánlom, hogy töltsön időt az M-re, mert sok olyan művelet van, amelyet az M-rel végezhet, de nem biztos, hogy egyszerűen a grafikus felülettel meg tudja csinálni. Ha többet szeretne megtudni a Power BI-ről, olvassa el a Power BI könyvét: From Rookie to Rock Star.
M a Power Query Formula Language informális neve. A hivatalos név olyan hosszú, hogy senki sem használja, mindenki M-nek hívja! Az M jelentése Data Mashup, egyesek szerint Data Modeling (adatmodellezés). Az M egy funkcionális nyelv, és fontos ismerni a funkcióit. Azonban minden nyelvnek van egy struktúrája és szintaxisa, ami az adott nyelv elsajátításának kezdő szintje. Ebben a bejegyzésben elmagyarázom az M szintaxisát. Mielőtt megtanulnád az M-et, szeretném, ha hangosan elolvasnád ezt a mondatot;
Az M sokkal erősebb, mint a Power Query grafikus felülete
Igen, jól olvastad! A Power Query grafikus felülete havonta változik. Minden hónapban új funkciók érkeznek ehhez a grafikus felülethez. De az a tény, hogy ezek a funkciók mind benne vannak a nyelvben már évek óta! ha ismered a nyelvet, könnyen használhatod őket, ahelyett, hogy a grafikus felület lehetőségére várnál. Erre rengeteg példa van. egy nagyon apró példa itt van: a Power Query-ben a csoportosítási képességet bővítheted a Power Query M szkriptjének nagyon apró módosításával.
Az M szintaxisa
A nyelv szintaxisa egyszerű. mindig két programozási blokkból áll: LET kifejezésblokk, és IN kifejezésblokk. Íme a legegyszerűbb M szintaxis;
let x=1in x
a let és az in foglalt szavak. mielőtt még egy lépéssel továbbmennénk, az első és legfontosabb dolog, amit tudnunk kell;
A M (Power Query Formula Language) Case Sensitive. Különbség van x és X között.
Mi ez a két programozási blokk:
let: az összes változó definíciója
in: kimenet! Igen, az in valójában kimenetet jelent! csak in-nek nevezzük. minden, amit ebbe a blokkba teszünk, a lekérdezésünk kimenete lesz.
Az alábbi lekérdezés tehát alapvetően azt jelenti, hogy definiálunk egy x nevű változót, hozzárendeljük az 1 értéket, és eredményhalmazként megjelenítjük. így a lekérdezés 1-et fog visszaadni.
a példa futtatásához meg kell nyitnunk a Power BI Desktopot. Menjen az Adatok lekérdezése menüpontra, és indítsa el az Új üres lekérdezést.
Azután a Nézet lapon válassza a Speciális szerkesztő lehetőséget;
A szkript megírásakor ügyeljen arra, hogy a fenntartott szavakat, például a let-et és csupa kisbetűvel írja. a változó nevének is ugyanúgy kell lennie a let-ben és a section-ben.
Amint látja, a változóhoz nem kell adattípusokat definiálni. automatikusan hozzárendelődik, amikor az első hozzárendelés megtörténik.
Ha szöveges értéket ad meg, akkor a változó automatikusan szöveges adattípus lesz.
Sor vége
A kódsorok az M-ben folytatódnak, ha nem teszünk sorvég karaktert.
Amint a fenti példában láthatja, a sor folytatódik, és x egyenlő lesz x=1+1+1 . Ha egy sornak véget akarsz vetni, használj vesszőt(,). példa itt:
minden sornak vessző(,) kell a befejezéshez. kivéve az in előtti utolsó sort.
Változók neve
A változók neve lehet mind egy szó, mint a Forrás. vagy lehet benne szóköz. abban az esetben, ha van néhány karakter, például szóköz, akkor a nevet dupla idézőjelbe (“) kell tenni, és egy hashtaget kell tenni az elejére(#). valami hasonló:
#"This is a variable name"
A változó neve tartalmazhat speciális karaktereket, itt egy példa:
Speciális karakterek
A változó neve tartalmazhat speciális karaktert, ahogy az alábbi változóban látható, mindenféle karakter van benne és még mindig jól fut.
Escape karakter
A kettős idézőjel (“) egy escape karakter. ezt használhatod olyan nevű változók definiálására, amelyek nevében van egy másik kettős idézőjel. Íme egy példa:
a fenti első (kiemelt) idézőjelnek a második idézőjel előtt kell lennie (amely a változó nevének része).
Lépésről lépésre történő kódolás
A Power Query egy lépésről lépésre történő átalakítás. Minden átalakítás általában egy lépésben történik. Miközben írja a kódot, azt is észreveheti, hogy a jobb oldalon minden változó egy lépést alkot.
A fenti képernyőképen látható, hogy minden változó egy lépésként van meghatározva. és ha a változó nevében szóköz van, akkor az alkalmazott lépések listájában szóközökkel jelenik meg.
Az utolsó változó mindig az in szakaszban van megadva.
Literálok
A Power Queryben minden literál meghatározásának különböző módjai vannak. Ha például dátumváltozót akarsz definiálni, akkor ezt így kell megtenned;
az összes többi típusú literál definiálásához itt van a használható referenciatáblázat:
* a függvény és a típus; később írok egy másik bejegyzést, amelyben elmagyarázom, hogyan működnek ezek a típusok.
Funkcióhívás
M egy funkcionális nyelv, és szinte mindenhez egy függvényt kell hívni hozzá. a függvények egyszerűen hívhatók a függvény nevével és a paraméterek megadásával.
a fenti képernyőképen a Date.Year függvényt használjuk, amely egy dátum évrészét hozza ki. A függvények neve mindig nagybetűvel kezdődik: Date.Year()
mint minden programozási nyelvben, a kódba is tehetünk megjegyzéseket. ez kétféle formában történhet;
Egysoros kommentár dupla kötőjellel (//)
Multi soros kommentár a kötőjel és a kezdetek között (/* kommentek */)
Egy valós példa
Most, hogy ismerünk néhány alapot, nézzünk meg egy meglévő lekérdezést haladó szerkesztő módban és értsük meg.
A fenti képernyőképen az eddig említett összes alapot láthatjuk:
- let és a blokkban
- változónevek megegyeznek a lekérdezésben alkalmazott lépésekkel
- néhány változó neve hashtaggel és kettős idézőjellel: #”var név”
- sorvég karakterek: vessző
- sok függvény meghívása
A lekérdezésnek még sok olyan része van, amit nem biztos, hogy megértett. különösen a függvények használatakor. meg kell tanulnia, hogy mit csinálnak a függvények, hogy teljesen megértse a kódot. Írtam egy blogbejegyzést, amely elmagyarázza, hogyan használhatja a #shared kulcsszót a Power Query összes függvényének dokumentációjához.
A következő bejegyzésekben a struktúrák további szintjeit fogom elmagyarázni az M-ben.
A technológiák különböző aspektusairól, különösen az MS BI-ről szóló cikkei megtalálhatók a blogján: https://radacad.com/blog.
Írt néhány könyvet az MS SQL BI-ről, és jelenleg is ír néhány másikat, aktív tagja volt az online technikai fórumoknak, például az MSDN-nek és az Experts-Exchange-nek, és moderátora volt az MSDN SQL Server fórumainak, valamint MCP, MCSE és MCITP BI-szakértő. Az új-zélandi Business Intelligence felhasználói csoport vezetője. A Power BI from Rookie to Rock Star című, több mint 1700 oldalas, ingyenes, igen népszerű könyv, valamint az Apress által kiadott Power BI Pro Architecture szerzője.
A Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday és SQL felhasználói csoportok nemzetközi előadója. És Microsoft Certified Trainer.
Reza szenvedélye, hogy segítsen megtalálni a legjobb adatmegoldást, ő az adatok szerelmese.