M er det kraftfulde sprog bag scenen i Power Query. Enhver transformation, du anvender, vil blive skrevet i M-sprog. For mange ser M ud som et skræmmende sprog. I dette indlæg vil jeg gerne forklare lidt af det grundlæggende i M. Uden at nævne nogen funktioner. Jeg vil først og fremmest forklare dig, hvordan M-sprogets syntaks er struktureret. Når du først kender syntaksen, så bliver alting enkelt. M er et sprog, som du nemt kan lære sin syntaks. Som Power Query-udvikler; jeg kan varmt anbefale dig at bruge tid på M, fordi der er MANGE operationer, som du kan med M, men som du måske ikke kan gøre det simpelt med den grafiske grænseflade. Hvis du gerne vil lære mere om Power BI, kan du læse Power BI-bogen fra Rookie til Rock Star.
M er det uformelle navn for Power Query Formula Language. Det formelle navn er så langt, at ingen bruger det, alle kalder det M! M står for Data Mashup, nogle siger, at det står for Data Modeling. M er et funktionelt sprog, og det er vigtigt at kende funktionerne i det. Men hvert sprog har en struktur og syntaks, som er begynderniveauet for at lære det pågældende sprog. I dette indlæg vil jeg forklare syntaksen i M. Før du lærer M, vil jeg gerne have dig til at læse denne sætning højt;
M er meget mere kraftfuld end den grafiske grænseflade i Power Query
Ja, du læste den korrekt! Den grafiske grænseflade i Power Query ændres hver måned. Hver måned kommer der nye funktioner til denne grafiske grænseflade. Men faktum er, at alle disse funktionaliteter har været i sproget i mange år! Hvis du kendte sproget, kunne du nemt bruge dem, i stedet for at vente på den grafiske grænseflade mulighed for det. Der er bunkevis af eksempler på det. et meget lille eksempel er her: du kan udvide din grupperingsmulighed i Power Query med en meget lille ændring i M-scriptet af det.
Syntaks for M
Syntaksen for dette sprog er enkel. det har altid to blokke af programmering: LET-udtryksblok og IN-udtryksblok. Her er den mest enkle M-syntaks;
let x=1in x
LET og in er reserverede ord. før du går endnu et skridt videre, er det første og vigtigste, du skal vide;
M (Power Query Formula Language) er Case Sensitive. Der er forskel på x og X.
hvad er disse to programmeringsblokke:
let: definition af alle variabler
in: output! Ja, in betyder faktisk out! bare navngivet som in. alt, hvad du sætter i denne blok, vil være output af din forespørgsel.
Så grundlæggende betyder forespørgslen nedenfor, at du definerer en variabel med navnet x, tildeler den værdien 1 og viser den som resultatsæt. så forespørgslen vil returnere 1.
For at køre dette eksempel skal du åbne Power BI Desktop. Gå til Hent data, start med Ny blank forespørgsel.
Dernæst skal du i fanen Visning vælge avanceret Editor;
Sørg for, når du skriver scriptet, at du sætter reserverede ord som lad og i alle små bogstaver. også dit variabelnavn skal være samme kasus i både lad og i sektion.
Som du kan se, er der ikke behov for at definere datatyper for variablen. den vil automatisk blive tildelt ved den første tildeling.
Hvis du angiver en tekstværdi, vil variablen automatisk være en tekstdatatype.
End of the Line
Kodelinjer i M fortsætter, hvis du ikke sætter end of the line-tegnet.
Som du kan se i ovenstående eksempel, fortsætter linjen, og x vil være lig med x=1+1 . Hvis du vil sætte en afslutning på en linje, skal du bruge komma(,). eksempel her:
Alle linjer har brug for et komma(,) for at afslutte. undtagen den sidste linje før in.
Navne på variabler kan alle være ét ord, som Source. Hvis du har nogle tegn som f.eks. et mellemrum, skal du sætte navnet inden for dobbelte anførselstegn (“) og sætte et hashtag i begyndelsen af det (#). noget der ligner:
#"This is a variable name"
Variabelnavn kan indeholde specialtegn, her er et eksempel:
Specialtegn
Variabelnavne kan have specialtegn, som du kan se nedenfor har variablen alle typer tegn i den og kører stadig godt.
Escape-tegn
Dobbelt citationstegn (“) er et escape-tegn. du kan bruge det til at definere variabler med navne, der har et andet dobbelt citationstegn i sig. Her er et eksempel:
Det første dobbelte citationstegn (fremhævet) ovenfor skal stå før det andet dobbelte citationstegn (som er en del af variabelnavnet).
Strin for trin-kodning
Power Query er en trin for trin-transformation. Hver transformation sker normalt i et trin. Mens du skriver koden, kan du også bemærke, at du i højre side kan se, at hver variabel udgør et trin.
I skærmbilledet ovenfor kan du se, at hver variabel er bestemt som et trin. og hvis variablen har et mellemrum i navnet, vises den med mellemrum i listen over anvendte trin.
Den sidste variabel er altid angivet i afsnittet i.
Literaler
Der er forskellige måder at definere hver literal på i Power Query. Hvis du f.eks. vil definere en datovariabel, kan du gøre det på følgende måde:
For at definere alle andre typer bogstaver, skal du bruge følgende referencetabel:
* for funktion og type; jeg skriver et andet indlæg senere for at forklare, hvordan disse typer fungerer.
Funktionskald
M er et funktionelt sprog, og for at gøre næsten alt skal du kalde en funktion til det. funktioner kan nemt kaldes med navnet på funktionen og angivelse af parametre til den.
screenshot ovenfor bruger Date.Year-funktionen, som henter årsdelen af en dato. Navne på funktioner begynder altid med store bogstaver: Date.Year()
Som i ethvert programmeringssprog kan du indsætte nogle kommentarer i din kode. det kan være i to former;
En enkelt linjers kommentar med dobbelt skråstreg (//)
Multilinjers kommentar mellem skråstreg og starter (/* kommentarer */)
Et eksempel fra den virkelige verden
Nu da du kender nogle grundlæggende ting, lad os se på en eksisterende forespørgsel i avanceret editortilstand og forstå den.
I skærmbilledet ovenfor kan du se alle de hidtil nævnte grundprincipper:
- let og i blok
- variabelnavne, der matcher de trin, der anvendes i forespørgslen
- nogle variabelnavne med hashtag og dobbelt citationstegn: #”var name”
- tegn i slutningen af linjen: komma
- kalder mange funktioner
Der er stadig mange dele af denne forespørgsel, som du måske ikke forstår. specielt når du bruger funktioner. du skal lære, hvad funktioner gør, for at du kan forstå koden fuldt ud. Jeg har skrevet et blogindlæg, der forklarer, hvordan du bruger nøgleordet #shared til at få dokumentation for alle funktioner i Power Query.
I de næste indlæg vil jeg forklare andre niveauer af strukturer i M.
Hans artikler om forskellige aspekter af teknologier, især om MS BI, kan findes på hans blog: https://radacad.com/blog.
Han har skrevet nogle bøger om MS SQL BI og er også i gang med at skrive nogle andre, Han var også et aktivt medlem på online tekniske fora som MSDN og Experts-Exchange, og var moderator af MSDN SQL Server fora, og er en MCP, MCSE og MCITP i BI. Han er leder af den newzealandske brugergruppe for Business Intelligence i New Zealand. Han er også forfatter til den meget populære bog Power BI from Rookie to Rock Star, som er gratis med mere end 1700 siders indhold og Power BI Pro Architecture, der er udgivet af Apress.
Han er international taler i Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday og SQL-brugergrupper. Og han er en Microsoft Certified Trainer.
Reza’s passion er at hjælpe dig med at finde den bedste dataløsning, han er Data entusiast.