Overzicht van queryevaluatie en het vouwen van query's in Power Query

Power Query evalueert een M-query om de gegevens en transformaties te bepalen die nodig zijn voor het resultaat. Tijdens de evaluatie probeert query folding ondersteunde transformaties te vertalen in bewerkingen die een gegevensbron kan uitvoeren. Transformaties waarvoor query folding niet mogelijk is, worden uitgevoerd in de Power Query-engine.

Wat is een Power Query M-script?

Een M-script, ook wel M-code genoemd, is de set Power Query M-formuletaalfuncties en -syntaxis die Power Query evalueert om een queryresultaat te produceren. Elke query heeft een M-script, ongeacht of Power Query het maakt, u schrijft deze in de geavanceerde editor of voert u het in een lege query in.

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 is met de naam Toegepaste stappen. In deze sectie worden alle stappen of transformaties weergegeven die in uw query worden gebruikt. In deze zin fungeert de Power Query-editor als interface om u te helpen bij het maken van het juiste M-script voor de gewenste transformaties 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 u kunt stappen maken of wijzigen.
  • Een diagramweergave weergeven.

Schermopname van de toegepaste stappen en de voorbeeldweergave van de gegevens.

In dit SQL Server voorbeeld bevat het deelvenster Toegepaste stappen de volgende stappen:

  • 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.

Een M-script weergeven en bewerken in Power Query

Deze set stapnamen is een gebruiksvriendelijke manier om het M-script dat voor u door Power Query is gemaakt weer te geven. U kunt het volledige M-script op verschillende manieren bekijken. Selecteer in Power Query Geavanceerde editor op het tabblad Beeld. U kunt ook Geavanceerde editor selecteren in de groep Query op het tabblad Start. 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 Beeld te gaan en in de groep IndelingScriptweergave> te selecteren.

Schermopname met het volledige M-script en de bijbehorende namen van de toegepaste stappen.

De meeste namen die u in het deelvenster Toegepaste stappen vindt, worden ook gebruikt zoals in het M-script. U noemt stappen van een query met behulp van id's in de M-taal. Soms staan er in M extra tekens rond stapnamen, 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. Met een geciteerde identifier kan elke reeks van nul of meer Unicode-tekens als identifier worden gebruikt, inclusief trefwoorden, witruimte, commentaar, operatoren en scheidingstekens. Zie 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 naam van de stap Toprijen behouden wijzigt in Bovenste 20 rijen, wordt de naam ook gewijzigd in de queryscriptweergave.

Schermopname van de naam van de toegepaste stap is gewijzigd in bovenste 20 rijen, waarmee ook het M-script wordt bijgewerkt.

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. Zie de M-taalreferentie voor meer informatie.

In dit artikel verwijst M-script naar de Power Query M-code in een query, waartoe u toegang hebt via de geavanceerde editor of de queryscriptweergave in de formulebalk.

Hoe Power Query een M-query evalueert

Power Query evalueert een M-script door de vereiste uitvoer te bepalen en te produceren. Voor query's die gebruikmaken van een externe gegevensbron, omvat evaluatie het aanvragen van gegevens uit de bron, het verwerken van transformaties die worden uitgevoerd in de Power Query-engine en het laden van het resultaat naar een bestemming.

In het volgende diagram wordt het proces verkend dat optreedt wanneer een query wordt geëvalueerd in Power Query.

Diagram met het pad van een query-evaluatie van M-script naar de uiteindelijke uitvoer.

  1. 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.
  2. Power Query bepaalt welke gegevens uit de gegevensbron moeten worden geëxtraheerd en dient een aanvraag in bij de gegevensbron.
  3. De gegevensbron reageert op de aanvraag van Power Query door de aangevraagde gegevens over te dragen naar Power Query.
  4. Power Query ontvangt de binnenkomende gegevens van de gegevensbron en voert indien nodig transformaties uit met behulp van de Power Query-engine.
  5. Power Query het getransformeerde resultaat naar een bestemming laadt.

Opmerking

Deze stroom toont een query die wordt gelezen uit een SQL Server-database. Voor een query zonder externe gegevensbron evalueert Power Query nog steeds het M-script en produceert een resultaat, maar de aanvraag- en overdrachtsfasen van de gegevensbron zijn niet van toepassing.

Hoe query folding de query-evaluatie optimaliseert

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. Query folding vertaalt ondersteunde M-transformaties in bewerkingen die de gegevensbron kan uitvoeren. Power Query probeert zoveel mogelijk query's uit te voeren op de gegevensbron en evalueert alle resterende transformaties in de Power Query-engine.

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.

Diagram met het optimalisatieproces tijdens de evaluatie van query's.

  1. 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.
  2. Het query folding-mechanisme verzendt metagegevensaanvragen om de mogelijkheden van de gegevensbron, tabelschema's, relaties tussen tabellen in de gegevensbron en andere metagegevens te bepalen.
  3. Op basis van de metagegevens die het ontvangt, bepaalt het mechanisme voor het vouwen van query's welke informatie uit de gegevensbron moet worden geëxtraheerd en welke transformaties moeten plaatsvinden in de Power Query-engine. Er worden instructies verzonden naar twee andere onderdelen die gegevens ophalen uit de gegevensbron en de binnenkomende gegevens in de Power Query-engine transformeren, indien nodig.
  4. Nadat de interne onderdelen van Power Query de instructies hebben ontvangen, stuurt Power Query een aanvraag naar de gegevensbron met behulp van een gegevensbronquery.
  5. De gegevensbron ontvangt de aanvraag van Power Query en draagt de gegevens over naar de Power Query-engine.
  6. Nadat de gegevens in Power Query zijn geladen, voert de transformatie-engine in Power Query (ook wel de mashup-engine genoemd) de transformaties uit die niet kunnen worden teruggevouwen naar of uitbesteed aan de gegevensbron.
  7. Power Query het getransformeerde resultaat naar een bestemming laadt.

Opmerking

Afhankelijk van de transformaties en gegevensbron die in het M-script worden gebruikt, bepaalt Power Query of de binnenkomende gegevens moeten worden gestreamd of gebufferd.

Wat queryfolding inhoudt in Power Query

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.

Voor transformaties na de functie van de gegevensbron controleert het mechanisme voor query folding of deze aan de gegevensbron kunnen worden uitbesteed in plaats van in de Power Query-engine te worden verwerkt.

Belangrijk

Gegevensbronfuncties, die meestal worden weergegeven als de bronstap van een query, voeren query's uit op de gegevensbron in de eigen taal. Voor transformaties na de functie voor de gegevensbron probeert Power Query query folding alleen uit te voeren wanneer de connector en transformaties dit ondersteunen. Het mechanisme kan ondersteunde transformaties vertalen en combineren in één gegevensbronquery.

Resultaten van query folding in Power Query

Afhankelijk van hoe de query is gestructureerd, kunnen er drie mogelijke resultaten zijn voor het mechanisme voor het vouwen van query's:

Resultaat van query folding Verwerken bij de gegevensbron Verwerken in de Power Query-engine
Volledige query folding De gegevensbron verwerkt alle querytransformaties. Minimale verwerking vindt plaats in de Power Query-engine.
Gedeeltelijke query folding De gegevensbron verwerkt de transformaties die Power Query kan vertalen naar de systeemeigen querytaal. De Power Query-engine verwerkt de resterende transformaties.
Geen query folding mogelijk De gegevensbron retourneert de aangevraagde brongegevens zonder querytransformaties te verwerken. De Power Query engine verwerkt alle vereiste transformaties.

Gegevensbronnen die ondersteuning bieden voor het vouwen van query's

Ondersteuning voor het vouwen van query's is afhankelijk van de connector, de gegevensbron en de transformaties in de query. Connectors voor gestructureerde gegevensbronnen met queryverwerkingsmogelijkheden, zoals SQL Server en OData-feed, ondersteunen vaak het vouwen van query's. Bronnen zonder een query-engine, zoals CSV- en Excel-bestanden, bieden geen ondersteuning voor het vouwen van query's.

Tijdens de optimalisatie kan de Power Query-engine de volgorde van querystappen wijzigen. Het gebruik van een gegevensbron met meer verwerkingsresources en mogelijkheden voor het vouwen van query's kan de laadtijden van query's verminderen omdat de verwerking plaatsvindt in de gegevensbron in plaats van in de Power Query-engine.

Query folding controleren in Power Query Online

Gebruik in Power Query Online indicatoren voor het vouwen van query's naast de toegepaste stappen om te bepalen welke stappen worden gevouwen. U kunt ook het queryplan gebruiken om te zien welke bewerkingen worden uitgevoerd in de gegevensbron en welke bewerkingen worden uitgevoerd in de Power Query-engine. Deze functies zijn alleen beschikbaar in Power Query Online.

Gebruik indien beschikbaar systeemeigen query weergeven of gegevensbronquery weergeven om de aanvraag te controleren die Power Query verzendt naar de gegevensbron. Beschikbaarheid is afhankelijk van de connector.