Query's vouwen in Power Query

Dit artikel is bedoeld voor gegevensmodellers die modellen ontwikkelen in Power Pivot of Power BI Desktop. Hierin wordt beschreven wat Power Query query folding is en waarom het belangrijk is in het ontwerpen van uw gegevensmodel. 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 kunnen worden gevouwen, ongeacht of deze volledig of gedeeltelijk zijn.

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 naar het waar mogelijk vouwen van query's om redenen van efficiëntie.

Het vouwen van query's is een belangrijk onderwerp voor gegevensmodellering om verschillende redenen:

  • Modeltabellen importeren: Het vernieuwen van gegevens vindt efficiënt plaats voor modeltabellen importeren (Power Pivot of Power BI Desktop), wat betreft het resourcegebruik en de duur van het vernieuwen.
  • Tabellen in de DirectQuery- en Dual-opslagmodus: Elke Tabel in 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. 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 het vouwen van query's niet kan worden bereikt( gedeeltelijk of volledig), moet de 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 te streven naar efficiëntie 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 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-componenten. Deze 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 query's kunnen worden gevouwen.

  • 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, mogelijk inclusief het gebruik van M-functies met gelijkwaardige 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])
    
  • Draaitabel en draaitabel opheffen (PIVOT- en UNPIVOT-operators).

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

Voorbeeld van het bepalen dat Power Query query's kunnen vouwen in Power BI Desktop.

Notitie

De optie Systeemeigen query weergeven is alleen beschikbaar voor bepaalde relationele DB-/SQL-gegenereerde connectors. Het werkt niet voor OData-connectors, bijvoorbeeld als er vouwen optreedt op de back-end. 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.

Voorbeeld van een systeemeigen query in Power BI Desktop.

Als de optie Systeemeigen query weergeven niet is ingeschakeld (grijs weergegeven), is dit 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 achteruit 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.

Voorbeeld van het bepalen dat Power Query geen query's kunt vouwen in Power BI Desktop.

Volgende stappen

Raadpleeg de volgende bronnen voor meer informatie over Query Folding en verwante onderwerpen: