Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel bevat een basisoverzicht van hoe M-query's worden verwerkt en omgezet in gegevensbronaanvragen.
Power Query M-script
Elke query, gemaakt door Power Query, handmatig door u geschreven in de geavanceerde editor of ingevoerd met behulp van een leeg document, bestaat uit functies en syntaxis uit de Power Query M-formuletaal. Deze query wordt geïnterpreteerd en geëvalueerd door de Power Query-engine om de resultaten uit te voeren. Het M-script fungeert als de set instructies die nodig zijn om de query te evalueren.
Aanbeveling
U kunt het M-script beschouwen als een recept dat beschrijft hoe u uw gegevens voorbereidt.
De meest voorkomende manier om een M-script te maken, is met behulp van de Power Query-editor. Wanneer u bijvoorbeeld verbinding maakt met een gegevensbron, zoals een SQL Server-database, ziet u aan de rechterkant van het scherm dat er een sectie met de naam toepassende stappen wordt genoemd. In deze sectie worden alle stappen of transformaties weergegeven die in uw query worden gebruikt. In deze zin fungeert de Power Query-editor als een interface om u te helpen bij het maken van het juiste M-script voor de transformaties die u volgt en zorgt ervoor dat de code die u gebruikt geldig is.
Opmerking
Het M-script wordt gebruikt in de Power Query-editor voor het volgende:
- De query weergeven als een reeks stappen en het maken of wijzigen van nieuwe stappen toestaan.
- Een diagramweergave weergeven.
In de vorige afbeelding wordt de sectie toegepaste stappen benadrukt, die de volgende stappen bevat:
- Bron: Maakt de verbinding met de gegevensbron. In dit geval is het een verbinding met een SQL Server-database.
- Navigatie: Hiermee gaat u naar een specifieke tabel in de database.
- Andere kolommen zijn verwijderd: hiermee selecteert u welke kolommen uit de tabel u wilt behouden.
- Gesorteerde rijen: hiermee sorteert u de tabel met behulp van een of meer kolommen.
- Bovenste rijen bewaard: hiermee filtert u de tabel om alleen enkele rijen boven aan de tabel te houden.
Deze set stapnamen is een gebruiksvriendelijke manier om het M-script dat voor u door Power Query is gemaakt weer te geven. Er zijn verschillende manieren om het volledige M-script weer te geven. In Power Query kunt u Geavanceerde editor selecteren op het tabblad Weergave. U kunt ook Geavanceerde editor selecteren in de groep Query op het tabblad Home. In sommige versies van Power Query kunt u ook de weergave van de formulebalk wijzigen om het queryscript weer te geven door naar het tabblad View en vanuit de groep Layout te gaan, selecteer Script-weergave>Query-script.
De meeste namen in het deelvenster Toegepaste stappen worden ook gebruikt zoals in het M-script. Stappen van een query worden benoemd met behulp van id's in de M-taal. Soms worden er extra tekens rond stapnamen in M verpakt, maar deze tekens worden niet weergegeven in de toegepaste stappen. Een voorbeeld is #"Kept top rows", dat is gecategoriseerd als een gequoteerde identificator vanwege deze extra tekens. Een geciteerde identifier kan worden gebruikt om een reeks van nul of meer Unicode-tekens als identifier te gebruiken, waaronder trefwoorden, witruimte, opmerkingen, operators en interpunctie. Ga naar lexicale structuur voor meer informatie over id's in de M-taal.
Wijzigingen die u aanbrengt in uw query via de Power Query-editor, werken het M-script voor uw query automatisch bij. Als u bijvoorbeeld de vorige afbeelding als uitgangspunt neemt, en u verandert de naam van de stap van Behouden bovenste rijen naar Bovenste 20 rijen, wordt deze wijziging automatisch bijgewerkt in de scriptweergave.
Hoewel u het beste de Power Query-editor gebruikt om het hele of grootste deel van het M-script voor u te maken, kunt u handmatig stukken van uw M-script toevoegen of wijzigen. Ga naar de officiële docs-site voor de M-taal voor meer informatie over de M-taal.
Opmerking
M-script, ook wel M-code genoemd, is een term die wordt gebruikt voor code die gebruikmaakt van de Power Query M-taal. In de context van dit artikel verwijst M-script ook naar de code die in een Power Query query is gevonden en toegankelijk is via het geavanceerde editorvenster of via de scriptweergave in de formulebalk.
Query-evaluatie in Power Query
In het volgende diagram wordt het proces verkend dat optreedt wanneer een query wordt geëvalueerd in Power Query.
- Het M-script, gevonden in de geavanceerde editor, wordt verzonden naar de Power Query-engine. Andere belangrijke informatie wordt ook opgenomen, zoals referenties en privacyniveaus voor gegevensbronnen.
- Power Query bepaalt welke gegevens uit de gegevensbron moeten worden geëxtraheerd en dient een aanvraag in bij de gegevensbron.
- De gegevensbron reageert op de aanvraag van Power Query door de aangevraagde gegevens over te dragen naar Power Query.
- Power Query ontvangt de binnenkomende gegevens van de gegevensbron en voert indien nodig transformaties uit met behulp van de Power Query-engine.
- De resultaten die zijn afgeleid van het vorige punt, worden geladen naar een bestemming.
Opmerking
Hoewel in dit voorbeeld een query met een SQL Database als gegevensbron wordt weergegeven, is het concept van toepassing op query's met of zonder gegevensbron.
Wanneer Power Query uw M-script leest, wordt het script uitgevoerd via een optimalisatieproces om uw query efficiënter te evalueren. In dit proces wordt vastgesteld welke stappen (transformaties) van uw query kunnen worden uitbesteed aan uw gegevensbron. Ook wordt bepaald welke andere stappen moeten worden geëvalueerd met behulp van de Power Query-engine. Dit optimalisatieproces wordt query folding genoemd, waarbij Power Query zoveel mogelijk uitvoering naar de gegevensbron probeert te pushen om de uitvoering van uw query te optimaliseren.
Belangrijk
Alle regels uit de Power Query M-formuletaal (ook wel de M-taal genoemd) worden gevolgd. Met name luie evaluatie speelt een belangrijke rol tijdens het optimalisatieproces. In dit proces begrijpt Power Query welke specifieke transformaties van uw query moeten worden geëvalueerd. Power Query begrijpt ook welke andere transformaties niet hoeven te worden geëvalueerd omdat ze niet nodig zijn in de uitvoer van uw query.
Bovendien wordt bij het evalueren van de query rekening gehouden met het privacyniveau van de gegevens van elke gegevensbron wanneer er meerdere bronnen betrokken zijn. Meer informatie: Achter de schermen van de Data Privacy Firewall
In het volgende diagram ziet u de stappen die in dit optimalisatieproces worden uitgevoerd.
- Het M-script, gevonden in de geavanceerde editor, wordt verzonden naar de Power Query-engine. Andere belangrijke informatie wordt ook verstrekt, zoals referenties en privacyniveaus voor gegevensbronnen.
- Het query folding-mechanisme verzendt metagegevensaanvragen naar de gegevensbron om de mogelijkheden van de gegevensbron, tabelschema's, relaties tussen verschillende tabellen in de gegevensbron en meer te bepalen.
- Op basis van de ontvangen metagegevens bepaalt het mechanisme voor het vouwen van query's welke informatie uit de gegevensbron moet worden geëxtraheerd en welke set transformaties moeten plaatsvinden binnen de Power Query-engine. De instructies worden verzonden naar twee andere onderdelen die ervoor zorgen dat de gegevens uit de gegevensbron worden opgehaald en de binnenkomende gegevens in de Power Query-engine zo nodig worden getransformeerd.
- Zodra de interne onderdelen van Power Query de instructies ontvangen, stuurt Power Query een aanvraag naar de gegevensbron met behulp van een gegevensbronquery.
- De gegevensbron ontvangt de aanvraag van Power Query en draagt de gegevens over naar de Power Query-engine.
- Zodra de gegevens in Power Query zijn, voert de transformatie-engine in Power Query (ook wel mashup-engine genoemd) de transformaties uit die niet teruggevouwen konden worden of naar de gegevensbron konden worden offloaden.
- De resultaten die zijn afgeleid van het vorige punt, worden geladen naar een bestemming.
Opmerking
Afhankelijk van de transformaties en gegevensbron die in het M-script worden gebruikt, bepaalt Power Query of de binnenkomende gegevens worden gestreamd of gebufferd.
Overzicht van query folding
Het doel van query folding is om zoveel mogelijk van de verwerking van een query over te dragen aan een gegevensbron die de transformaties van uw query kan uitvoeren.
Het query folding-mechanisme bereikt dit doel door uw M-script te vertalen naar een taal die uw gegevensbron kan interpreteren en uitvoeren. Vervolgens wordt de evaluatie naar uw gegevensbron gepusht en wordt het resultaat van die evaluatie verzonden naar Power Query.
Deze bewerking biedt vaak een snellere queryuitvoering dan het extraheren van alle vereiste gegevens uit uw gegevensbron en het uitvoeren van alle transformaties die vereist zijn in de Power Query-engine.
Wanneer u de get-gegevenservaring gebruikt, begeleidt Power Query u door het proces waarmee u uiteindelijk verbinding kunt maken met uw gegevensbron. Als u dit doet, gebruikt Power Query een reeks functies in de M-taal die zijn gecategoriseerd als toegang tot gegevensfuncties. Deze specifieke functies gebruiken mechanismen en protocollen om verbinding te maken met uw gegevensbron met behulp van een taal die uw gegevensbron kan begrijpen.
De stappen die in uw query worden gevolgd, zijn echter de stappen of transformaties die het query folding-mechanisme probeert te optimaliseren. Vervolgens wordt gecontroleerd of ze kunnen worden offgeladen naar uw gegevensbron in plaats van dat ze worden verwerkt met behulp van de Power Query-engine.
Belangrijk
Alle gegevensbronfuncties, die vaak worden weergegeven als de bronstap van een query, voert een query uit op de gegevens in de gegevensbron in de systeemeigen taal. Het mechanisme voor het vouwen van query's wordt gebruikt voor alle transformaties die zijn toegepast op uw query na uw gegevensbronfunctie. Ze kunnen vervolgens worden vertaald en gecombineerd in één query voor de gegevensbron of als zoveel transformaties die kunnen worden overgedragen naar de gegevensbron.
Afhankelijk van hoe de query is gestructureerd, kunnen er drie mogelijke resultaten zijn voor het mechanisme voor het vouwen van query's:
- Full query folding: Wanneer al uw querytransformaties naar de gegevensbron worden gepusht en er minimale verwerking plaatsvindt bij de Power Query-engine.
- Gedeeltelijk vouwen van query's: als er slechts een paar transformaties in uw query zijn en niet alle transformaties, kunnen ze terug worden gepusht naar de gegevensbron. In dit geval wordt alleen een subset van uw transformaties uitgevoerd bij uw gegevensbron en vindt de rest van uw querytransformaties plaats in de Power Query-engine.
- Geen query folding: wanneer de query transformaties bevat die niet kunnen worden vertaald naar de systeemeigen querytaal van uw gegevensbron, omdat de transformaties niet worden ondersteund of de connector geen ondersteuning biedt voor het vouwen van query's. In dit geval haalt Power Query de onbewerkte gegevens op uit uw gegevensbron en gebruikt u de Power Query-engine om de gewenste uitvoer te bereiken door de vereiste transformaties op het niveau van de Power Query engine te verwerken.
Opmerking
Het query folding-mechanisme is voornamelijk beschikbaar in connectors voor gestructureerde gegevensbronnen, zoals, maar niet beperkt tot, SQL Server en OData Feed. Tijdens de optimalisatiefase kan de engine soms de volgorde van de stappen in de query wijzigen.
Als u een gegevensbron gebruikt met meer verwerkingsresources en mogelijkheden voor het vouwen van query's, kunt u de laadtijden van query's versnellen wanneer de verwerking plaatsvindt in de gegevensbron en niet bij de Power Query-engine.