M is de krachtige taal achter de schermen van Power Query. Elke transformatie die u toepast, wordt geschreven in M-taal. Voor velen lijkt M een enge taal. In deze post wil ik een beetje de basis uitleggen van M. Zonder functies te noemen. Ik wil je vooral uitleggen hoe de syntax van de M taal in elkaar zit. Als je de syntax eenmaal kent, dan wordt alles eenvoudig. M is een taal waarvan je de syntax gemakkelijk kunt leren. Als een Power Query ontwikkelaar; raad ik je ten zeerste aan om tijd te besteden aan M, want er zijn VEEL operaties die je met M kunt doen, maar die je misschien niet eenvoudig met de grafische interface kunt doen. Als je meer wilt leren over Power BI, lees dan Power BI boek from Rookie to Rock Star.

M is de informele naam van Power Query Formula Language. De formele naam is zo lang dat niemand die gebruikt, iedereen noemt het M! M staat voor Data Mashup, sommigen zeggen staat voor Data Modeling. M is een functionele taal, en het is belangrijk om er functies van te kennen. Echter, elke taal heeft een structuur en syntaxis die het beginniveau is van het leren van die taal. In deze post zal ik de syntaxis van M uitleggen. Voordat je M leert, wil ik dat je deze zin hardop leest;

M is veel krachtiger dan de grafische interface van Power Query

Ja, je leest het goed! De grafische interface van Power Query verandert elke maand. Elke maand komt er nieuwe functionaliteit in deze grafische interface. Maar het feit is dat al deze functionaliteiten al vele jaren in de taal zitten! Als je de taal kent, kun je ze gemakkelijk gebruiken, in plaats van te wachten op een grafische interface optie. Er zijn stapels voorbeelden voor. een heel klein voorbeeld is hier: u kunt uw Grouping vermogen in Power Query uitbreiden met een zeer kleine wijziging in M script van het.

Syntax van M

Syntax van deze taal is eenvoudig. het heeft altijd twee blokken van programmering: LET expressie blok, en IN expressie blok. Hier is de meest eenvoudige M syntax;

let x=1in x

let en in zijn gereserveerde woorden. voordat u ook maar een stap verder gaat, het eerste en belangrijkste wat u moet weten;

M (Power Query Formula Language) is hoofdlettergevoelig. Er is een verschil tussen x en X.

wat zijn deze twee programmeerblokken:

let: definitie van alle variabelen

in: uitvoer! Ja, in betekent eigenlijk out! gewoon genoemd als in. alles wat je in dit blok zet, wordt de output van je query.

Dus in feite betekent de onderstaande query dat je een variabele definieert met de naam x, er de waarde 1 aan toekent, en die als result set laat zien. dus de query geeft 1.

om dit voorbeeld uit te voeren, moet je Power BI Desktop openen. Ga naar Gegevens ophalen, start met Nieuwe lege query.

selecteer vervolgens op het tabblad Beeld de optie Geavanceerde editor;

Zorg er bij het schrijven van het script voor dat u gereserveerde woorden zoals laat en in kleine letters zet. ook moet de naam van de variabele in zowel laat als in sectie dezelfde hoofdletters hebben.

Zoals u ziet, is het niet nodig gegevenstypen voor variabelen te definiëren.

Als u een tekstwaarde opgeeft, wordt de variabele automatisch een tekstgegevenstype.

Einde van de regel

Code-regels in M lopen door als u geen teken voor het einde van de regel plaatst.

Zoals u in bovenstaand voorbeeld kunt zien, loopt de regel door, en x wordt gelijk aan x=1+1 . Als u een regel wilt beëindigen, gebruikt u een komma(,). voorbeeld hier:

elke regel heeft een komma(,) nodig om te eindigen. behalve de laatste regel voor in.

Namen van variabelen

De naam van variabelen kan uit één woord bestaan, zoals Source. of er kunnen spaties in voorkomen. Als er spaties in voorkomen, moet u de naam tussen dubbele aanhalingstekens (“) zetten en een hashtag aan het begin ervan (#). iets in de trant van:

#"This is a variable name"

Variabelenaam kan speciale tekens bevatten, hier is een voorbeeld:

Speciale tekens

Variabelennamen kunnen speciale tekens bevatten, zoals u kunt zien hieronder variabele heeft alle soorten tekens in het en nog steeds goed loopt.

Escape karakter

Double quote (“) is escape karakter. je kunt het gebruiken om variabelen te definiëren met namen die nog een double quote in zich hebben. Hier is een voorbeeld:

Eerste dubbele aanhalingsteken (gemarkeerd) hierboven is nodig om vóór de tweede dubbele aanhalingsteken (die deel uitmaakt van de variabele naam).

Stap voor stap codering

Power Query is een stap voor stap transformatie. Elke transformatie gebeurt meestal in een stap. Terwijl u de code schrijft, kunt u ook zien dat aan de rechterkant elke variabele een stap vormt.

in bovenstaande schermafbeelding ziet u dat elke variabele als een stap wordt bepaald. En als de variabele spaties in de naam heeft, wordt deze met spaties weergegeven in de lijst met toegepaste stappen.

De laatste variabele wordt altijd opgegeven in de in-sectie.

Literalen

Er zijn verschillende manieren om elke letterlijke in Power Query te definiëren. Bijvoorbeeld, als u wilt een datum variabele te definiëren, hier is hoe het te doen;

voor het definiëren van alle andere soorten van literalen, hier is de referentie tabel te gebruiken:

* voor functie en type; Ik zal later een ander bericht te schrijven om uit te leggen hoe deze types werkt.

Functie-oproep

M is een functionele taal, en voor het doen van bijna alles wat je nodig hebt om een functie aan te roepen. functies kunnen eenvoudig worden opgeroepen met de naam van de functie en het specificeren van parameters voor het.

scherm hierboven maakt gebruik van Date.Year functie die jaar deel van een datum op te halen. Functienamen beginnen altijd met hoofdletters: Date.Year()

Zoals in elke programmeertaal kun je commentaar in je code plaatsen. Dit kan in twee vormen;

Eenregelig commentaar met dubbele schuine streep (//)

Meerregelig commentaar tussen schuine streep en begint (/*commentaar */)

Een voorbeeld uit de praktijk

Nu u enkele basisprincipes kent, laten we eens kijken naar een bestaande query in de geavanceerde editor modus en deze begrijpen.

in bovenstaande schermafbeelding ziet u alle tot nu toe genoemde basisprincipes:

  1. let en in blok
  2. variabelennamen die overeenkomen met stappen die in de query zijn toegepast
  3. sommige variabelennamen met hashtag en dubbel aanhalingsteken: #”var name”
  4. einde van de regel tekens: komma
  5. aanroepen van veel functies

Er zijn nog veel delen van deze query die u misschien niet begrijpt. vooral bij het gebruik van functies. u moet leren wat functies doen om de code volledig te begrijpen. Ik heb een blog post geschreven, die uitlegt hoe je #shared keyword kunt gebruiken om documentatie van alle functies in Power Query te krijgen.

In volgende posts, zal ik andere niveaus van structuren in M uitleggen.

Trainer, Consultant, Mentor
Reza Rad is regionaal directeur van Microsoft, auteur, trainer, spreker en consultant. Hij heeft een BSc in Computer Engineering; hij heeft meer dan 20 jaar ervaring in data-analyse, BI, databases, programmeren, en ontwikkeling meestal op Microsoft-technologieën. Hij is een Microsoft Data Platform MVP voor negen opeenvolgende jaren (van 2011 tot nu) voor zijn toewijding in Microsoft BI. Reza is een actieve blogger en medeoprichter van RADACAD. Reza is ook mede-oprichter en mede-organisator van Difinity conferentie in Nieuw-Zeeland.
Zijn artikelen over verschillende aspecten van technologieën, met name over MS BI, zijn te vinden op zijn blog: https://radacad.com/blog.
Hij schreef enkele boeken over MS SQL BI en is ook bezig met het schrijven van enkele andere, Hij was ook een actief lid van online technische forums zoals MSDN en Experts-Exchange, en was een moderator van MSDN SQL Server forums, en is een MCP, MCSE, en MCITP van BI. Hij is de leider van de Nieuw-Zeelandse Business Intelligence gebruikersgroep. Hij is ook de auteur van het zeer populaire boek Power BI from Rookie to Rock Star, dat gratis is met meer dan 1700 pagina’s inhoud en de Power BI Pro Architecture gepubliceerd door Apress.
Hij is een Internationale Spreker in Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday en SQL gebruikersgroepen. En hij is een Microsoft Certified Trainer.
Reza’s passie is om u te helpen de beste data oplossing te vinden, hij is Data enthusiast.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.