August 14, 2020
Uvod v jezik M
V članku je uporabljen Power BI Desktop verzije 2.76.5678.782 (December 2019).
Query Editor je napreden urejevalnik orodja znotraj Power BI Desktop. Transformacije, ki jih naredimo v Query Editorju so zapisani v jeziku M. Znanje jezika M za delo v Power Query-u ni potrebno, je pa razumevanje osnov nepogrešljivo ko želimo resneje manipulirati s podatki. V tem članku si bomo ogledali osnovne pojme, ki jih srečamo pri delu z jezikom M.
Struktura M poizvedbe
M kodo celotne poizvedbe vidimo s klikom na Advanced Editor. Običajno se poizvedba začne z let in konča z in izjavo.
- V let so zapisani vsi koraki, ki jih poizvedba naredi. Vsak korak je zapisan v svoji vrstici.
- V in je ime zadnjega koraka.
Celotno kodo poizvedbe bi torej lahko prevedli kot »naj bo« korak1, korak2, korak3 »v« korak3. Ali drugače, v let se nahajajo vsi koraki, ki naj se izvedejo v imenu koraka3.
Spremenljivke
Vsaka vrstica se začne z imenom koraka oziroma spremenljivke in konča z vejico. Izjema je zadnja vrstica v let izjavi, ki nima vejice. Imena korakov so identična, kot se izpišejo v oknu Applied Steps.
Če ima ime spremenljivke presledek, npr. Ime spremenljivke, se zapiše kot #”Ime spremenljivke”. Edini razlog za uporabo #” ” simbolov je, da urejevalnik razume, da gre za eno ime.
Komentarji
Kot v večini jezikov, tudi v M lahko pišemo komentarje.
- Za komentarje v eni vrstici uporabimo //.
- Za več-vrstične komentarje uporabimo simbole /* in */.
M funkcije
M ima več kot 700 funkcij, ki so nam na voljo za obdelavo podatkov. M funkcije se začnejo z velikimi začetnicami, besede so ločene s pikami. Argumente podamo znotraj navadnih oklepajev.
Primer: funkcija Date.Month(date), vzame argument date in vrne mesec datuma.
Imena funkcij so dovolj opisna, da razumemo kaj naredijo. Večino funkcij, ki jih pogosto uporabljamo, najdemo na grafičnih ikonah v Power BI urejevalniku. Dokumentacijo z opisom in primeri za vsako funkcijo najdemo na https://docs.microsoft.com/en-us/powerquery-m/power-query-m-function-reference.
Vrednosti
Kadar želimo znotraj poizvedbe operirati z dejanskimi vrednostmi, jih podamo z ustreznim ukazom. Če bi želeli npr. uporabiti datum 26. 6. 2017, uporabimo #date(2017, 6, 26).
Ukazi za vrednosti so zbrani v spodnji tabeli.
Vrednost | Sintaksa |
Null | null |
Logični | true, false |
Število | 0, 1, -1, 1.5, 3.1e^-20 |
Čas | #time(01, 12, 50) |
Datum | #date(2012, 1, 20) |
Datum-čas | #datetime(2012, 1, 20, 01, 12, 50) |
Besedilo | “text” |
Seznam | {1, 2, 3} |
Vrstica | [ A = 1, B = 2 ] |
Tabela | #table({“A”, “B”},{{ 1, 2 }, { 3, 4 }}) |
Funkcija | (parameter) => parameter +1 |