Query folding in Power Query
Dit artikel is bedoeld voor gegevensmodelleerders die modellen ontwikkelen in Power Pivot of Power BI Desktop. Hierin wordt beschreven wat Het vouwen van Power Query-query's is en waarom het belangrijk is in uw ontwerpen voor gegevensmodellen. 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 Mashup-engine van Power Query streeft ernaar om waar mogelijk query's te vouwen om redenen van efficiëntie.
Query folding is een belangrijk onderwerp voor gegevensmodellering om verschillende redenen:
- Modeltabellen importeren: gegevensvernieuwing vindt efficiënt plaats voor modeltabellen importeren (Power Pivot of Power BI Desktop), wat betreft resourcegebruik en vernieuwingsduur.
- Tabellen in de DirectQuery- en Dual-opslagmodus: elke Tabel met de DirectQuery- en Dual-opslagmodus (alleen Power BI) moet zijn gebaseerd op een Power Query-query die kan worden gevouwen.
- Incrementeel vernieuwen: incrementele gegevensvernieuwing (alleen Power BI) is efficiënt, wat betreft resourcegebruik en vernieuwingsduur. In feite ontvangt u in het configuratievenster incrementeel vernieuwen van Power BI een waarschuwing als wordt vastgesteld dat het vouwen van query's voor de tabel niet kan worden bereikt. Als dit niet kan worden bereikt, wordt het doel van incrementeel vernieuwen verslagen. De mashup-engine zou dan nodig zijn om alle bronrijen op te halen en vervolgens filters toe te passen om incrementele wijzigingen te bepalen.
Het vouwen van query's kan plaatsvinden voor een volledige Power Query-query of voor een subset van de stappen. Wanneer het vouwen van query's ( gedeeltelijk of volledig) niet kan worden bereikt, moet de Mashup-engine van Power Query worden gecompenseerd 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 folding waar mogelijk plaatsvindt.
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 omvatten. Gegevensbronnen, zoals platte bestanden, blobs en web, doen dat meestal niet.
Transformaties die vouwen kunnen bereiken
Relationele gegevensbrontransformaties die query's kunnen worden gevouwen, zijn transformaties die kunnen worden geschreven als één SELECT-instructie. Een SELECT-instructie kan worden samengesteld met de juiste WHERE-, GROUP BY- en JOIN-componenten. Het kan ook kolomexpressies (berekeningen) bevatten die gebruikmaken van algemene ingebouwde functies die worden ondersteund door SQL-databases.
Over het algemeen worden in de volgende lijst transformaties beschreven die kunnen worden opgevouwen.
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).
Recordkolommen (bron-refererende-sleutelkolommen) uitbreiden om een join van twee brontabellen (JOIN-component) te bereiken.
Niet-fuzzy samenvoegen van vouwbare query's op basis van dezelfde bron (JOIN-component).
Vouwbare query's toevoegen op basis van dezelfde bron (UNION ALL-operator).
Aangepaste kolommen toevoegen met eenvoudige logica (SELECT-kolomexpressies). Eenvoudige logica impliceert ongecompliceerde bewerkingen, waaronder het gebruik van M-functies met equivalente functies in de SQL-gegevensbron, zoals wiskundige of tekstmanipulatiefuncties. Met de volgende expressies wordt bijvoorbeeld het jaaronderdeel van de kolomwaarde OrderDate geretourneerd (om een numerieke waarde te retourneren).
Date.Year([OrderDate])
Draaien en draaien ongedaan maken (PIVOT- en UNPIVOT-operatoren).
Transformaties die vouwen voorkomen
Over het algemeen worden in de volgende lijst transformaties beschreven die het vouwen van query's voorkomen. Deze lijst is niet bedoeld als een volledige lijst.
Query's samenvoegen op basis van verschillende bronnen.
Query's toevoegen (samenvoeging) 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.
Houd er rekening mee dat wanneer een Power Query-query meerdere gegevensbronnen omvat, incompatibiliteit van privacyniveaus voor gegevensbronnen kan voorkomen dat query's worden gevouwen. Zie het artikel over privacyniveaus van Power BI Desktop voor meer informatie.
Bepalen wanneer een query kan worden gevouwen
In het venster Power Query-editor kunt u bepalen wanneer een Power Query-query kan worden gevouwen. Wanneer u in het deelvenster Queryinstellingen met de rechtermuisknop op de laatste toegepaste stap klikt en de optie Systeemeigen query weergeven is ingeschakeld (niet grijs weergegeven), kan de hele query worden gevouwen.
Notitie
De optie Systeemeigen query weergeven is alleen beschikbaar voor bepaalde relationele DB/SQL-connectors die worden gegenereerd. Het werkt niet voor OData-connectors, bijvoorbeeld als er op de back-end vouwen plaatsvindt. De functie Querydiagnose is de beste manier om te zien wat er is gebeurd voor niet-SQL-connectors (hoewel de stappen die niet expliciet worden uitgelicht, worden weergegeven, ziet u alleen de resulterende URL die is gegenereerd).
Als u de gevouwen query wilt weergeven, selecteert u de optie Systeemeigen query weergeven. Vervolgens krijgt u de systeemeigen query te zien die Power Query gebruikt om gegevens te bronen.
Als de optie Systeemeigen query weergeven niet is ingeschakeld (grijs weergegeven), is dit bewijs dat niet alle querystappen kunnen worden gevouwen. Het kan echter betekenen dat een subset van stappen nog steeds kan worden gevouwen. Als u achterwaarts werkt vanaf de laatste stap, kunt u elke stap controleren om te zien of de optie Systeemeigen query weergeven is ingeschakeld. Zo ja, dan hebt u geleerd waar, in de reeks stappen, die query folding niet meer kon worden bereikt.
Volgende stappen
Raadpleeg de volgende bronnen voor meer informatie over het vouwen van query's en gerelateerde artikelen: