Query's vouwen in Power Query
Dit artikel is bedoeld voor gegevensmodelleerders die modellen ontwikkelen in Power Pivot of Power BI Desktop. Het beschrijft wat Power Query query folding is en waarom het belangrijk is in uw gegevensmodelontwerpen. In dit artikel worden ook de gegevensbronnen en transformaties beschreven die query's kunnen vouwen en hoe u kunt bepalen of uw Power Query-query's volledig of gedeeltelijk kunnen worden gevouwen.
Query Folding is de mogelijkheid voor een Power Query query om één query-instructie te genereren om brongegevens op te halen en te transformeren. De Power Query mashup-engine streeft ernaar om waar mogelijk query's te vouwen om redenen van efficiëntie.
Het vouwen van query's is een belangrijk onderwerp voor gegevensmodellering om verschillende redenen:
- Modeltabellen importeren: Gegevensvernieuwing vindt efficiënt plaats voor importmodeltabellen (Power Pivot of Power BI Desktop), wat betreft resourcegebruik en vernieuwingsduur.
- DirectQuery- en Dual-opslagmodustabellen: Elke DirectQuery- en Dual-opslagmodustabel (alleen Power BI) moet zijn gebaseerd op een Power Query query die kan worden gevouwen.
- Incrementeel vernieuwen: Incrementeel vernieuwen van gegevens (Power BI alleen) is efficiënt, wat betreft resourcegebruik en vernieuwingsduur. Het configuratievenster Power BI incrementeel vernieuwen geeft u een waarschuwing als wordt vastgesteld dat query Folding voor de tabel niet kan worden bereikt. Als dit niet kan worden bereikt, is het doel van incrementeel vernieuwen niet meer mogelijk. Vervolgens moet de mashup-engine alle bronrijen ophalen en vervolgens filters toepassen om de incrementele wijzigingen te bepalen.
Het vouwen van query's kan voor een hele Power Query-query of voor een subset van de stappen worden uitgevoerd. Wanneer query's niet gedeeltelijk of volledig kunnen worden gevouwen, moet Power Query mashup-engine compenseren door gegevenstransformaties zelf te verwerken. Dit proces kan betrekking hebben op het ophalen van bronqueryresultaten, wat voor grote gegevenssets zeer resource-intensief en traag is.
We raden u aan om efficiëntie te bereiken in uw modelontwerpen door ervoor te zorgen dat query's waar mogelijk worden gevouwen.
Bronnen die ondersteuning bieden voor vouwen
De meeste gegevensbronnen met het concept van een querytaal ondersteunen het vouwen van query's. Deze gegevensbronnen kunnen relationele databases, OData-feeds (inclusief SharePoint-lijsten), Exchange en Active Directory zijn. Voor gegevensbronnen zoals platte bestanden, blobs en web geldt dat echter doorgaans niet.
Transformaties die kunnen worden gevouwen
De transformaties van relationele gegevensbronnen waarvoor een query kan worden gevouwen, kunnen worden geschreven als één SELECT-instructie. Een SELECT-instructie kan worden samengesteld met de juiste WHERE-, GROUP BY- en JOIN-component. Deze kan ook kolomexpressies (berekeningen) bevatten die gebruikmaken van algemene ingebouwde functies die worden ondersteund door SQL-databases.
In het algemeen worden in de volgende lijst transformaties beschreven die kunnen worden gevouwen door query's.
Kolommen verwijderen.
De naam van kolommen wijzigen (SELECT-kolomaliassen).
Rijen filteren, met statische waarden of Power Query parameters (WHERE-componentpredicaten).
Groeperen en samenvatten (GROUP BY-component).
Het uitbreiden van recordkolommen (bron-foreign key-kolommen) om een join van twee brontabellen (JOIN-component) te bereiken.
Niet-fuzzy samenvoeging van vouwbare query's op basis van dezelfde bron (JOIN-component).
Vouwbare query's op basis van dezelfde bron (UNION ALL-operator) toe te passen.
Aangepaste kolommen toevoegen met eenvoudige logica (SELECT-kolomexpressies). Eenvoudige logica impliceert niet-gecompliceerde bewerkingen, mogelijk met inbegrip van het gebruik van M-functies die gelijkwaardige functies hebben in de SQL-gegevensbron, zoals wiskundige of tekstbewerkingsfuncties. De volgende expressies retourneren bijvoorbeeld het jaaronderdeel van de kolomwaarde OrderDate (om een numerieke waarde te retourneren).
Date.Year([OrderDate])Draaien en draaitabel maken (pivot- en UNPIVOT-operators).
Transformaties die vouwen voorkomen
In het algemeen worden in de volgende lijst transformaties beschreven die het vouwen van query's verhinderen. Deze lijst is niet bedoeld als een volledige lijst.
Query's samenvoegen op basis van verschillende bronnen.
Query's (union-ing) op basis van verschillende bronnen.
Aangepaste kolommen toevoegen met complexe logica. Complexe logica impliceert het gebruik van M-functies die geen equivalente functies in de gegevensbron hebben. Met de volgende expressies wordt bijvoorbeeld de kolomwaarde OrderDate opgemaakt (om een tekstwaarde te retourneren).
Date.ToText([OrderDate], "yyyy")Indexkolommen toevoegen.
Een kolomgegevenstype wijzigen.
Houd er rekening mee dat wanneer een Power Query-query meerdere gegevensbronnen omvat, de incompatibiliteit van de privacyniveaus van de gegevensbron kan voorkomen dat de query kan worden gevouwen. Zie het artikel Power BI Desktop privacyniveaus voor meer informatie.
Bepalen wanneer een query kan worden gevouwen
In het Power Query Editor kunt u bepalen wanneer een Power Query query kan worden gevouwen. Wanneer u in het deelvenster Query Instellingen met de rechtermuisknop op de laatste toegepaste stap klikt en de optie Systeemeigen query weergeven is ingeschakeld (niet grijs), kan de hele query worden gevouwen.

Notitie
De optie Native query weergeven is alleen beschikbaar voor bepaalde relationele DB/SQL connectors genereert. Het werkt bijvoorbeeld niet voor OData-connectors, zelfs niet als er op de back-end wordt gevouwen. De functie Querydiagnose is de beste manier om te zien wat er is gevouwen voor niet-SQL-connectors (hoewel de stappen die vouwen niet expliciet worden genoemd, u alleen de resulterende URL ziet die — is gegenereerd).
Als u de gevouwen query wilt weergeven, selecteert u de optie Native query weergeven. Vervolgens krijgt u de native query te zien die Power Query gebruikt voor brongegevens.

Als de optie Native query weergeven niet is ingeschakeld (grijs), is dit het bewijs dat niet alle querystappen kunnen worden gevouwen. Het kan echter ook betekenen dat een subset van stappen nog steeds kan worden gevouwen. Als u terug werkt vanaf de laatste stap, kunt u elke stap controleren om te zien of de optie Native query weergeven is ingeschakeld. Zo ja, dan hebt u geleerd waar, in de volgorde van de stappen, query folding niet meer kan worden bereikt.

Volgende stappen
Raadpleeg de volgende bronnen voor meer informatie over Query Folding en verwante artikelen: