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:

  1. let és a blokkban
  2. változónevek megegyeznek a lekérdezésben alkalmazott lépésekkel
  3. néhány változó neve hashtaggel és kettős idézőjellel: #”var név”
  4. sorvég karakterek: vessző
  5. 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.

Tréner, Tanácsadó, mentor
Reza Rad a Microsoft regionális igazgatója, szerző, oktató, előadó és tanácsadó. Számítástechnikai mérnöki BSc-vel rendelkezik; több mint 20 éves tapasztalattal rendelkezik az adatelemzés, BI, adatbázisok, programozás és fejlesztés területén, főként Microsoft technológiákon. Kilenc éve (2011-től napjainkig) folyamatosan Microsoft Data Platform MVP a Microsoft BI iránti elkötelezettségéért. Reza aktív blogger és a RADACAD társalapítója. Reza az új-zélandi Difinity konferencia társalapítója és társszervezője is.
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.

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

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