Verwijzen naar Power Query-query's

Dit artikel is bedoeld voor u als gegevensmodeller die werkt met Power BI Desktop. Het biedt richtlijnen bij het definiëren van Power Query-query's die verwijzen naar andere query's.

Laten we eens kijken wat dit betekent: wanneer een query verwijst naar een tweede query, is het alsof de stappen in de tweede query worden gecombineerd met en eerder worden uitgevoerd, de stappen in de eerste query.

Overweeg verschillende query's: Query1-bronnengegevens van een webservice en de belasting ervan is uitgeschakeld. Query2, Query3 en Query4 verwijzen allemaal naar Query1 en de bijbehorende uitvoer worden in het gegevensmodel geladen.

Diagram showing the Query Dependencies view, displaying queries described in the previous paragraph.

Wanneer het gegevensmodel wordt vernieuwd, wordt vaak ervan uitgegaan dat Power Query het resultaat Query1 ophaalt en dat het opnieuw wordt gebruikt door query's waarnaar wordt verwezen. Dit denken is onjuist. Power Query voert In feite Query2, Query3 en Query4 afzonderlijk uit.

U kunt denken dat Query2 de query1-stappen bevat die erin zijn ingesloten. Dit is ook het geval voor Query3 en Query4. In het volgende diagram ziet u een duidelijker beeld van hoe de query's worden uitgevoerd.

Diagram showing a modified version of the Query Dependencies view, displaying Query 2, Query 3, and Query 4.

Query1 wordt drie keer uitgevoerd. De meerdere uitvoeringen kunnen leiden tot trage gegevensvernieuwing en negatieve gevolgen voor de gegevensbron.

Het gebruik van de functie Table.Buffer in Query1 elimineert het ophalen van extra gegevens niet. Deze functie buffert een tabel in het geheugen en de gebufferde tabel kan alleen worden gebruikt binnen dezelfde queryuitvoering. Als Query1 dus wordt gebufferd wanneer Query2 wordt uitgevoerd, kunnen de gebufferde gegevens niet worden gebruikt wanneer Query3 en Query4 worden uitgevoerd. Ze bufferen de gegevens zelf nog twee keer. (Hierdoor kunnen de negatieve prestaties worden samengesteld, omdat de tabel wordt gebufferd door elke verwijzende query.)

Notitie

De cachearchitectuur van Power Query is complex en is niet de focus van dit artikel. Power Query kan gegevens opslaan die zijn opgehaald uit een gegevensbron. Wanneer er echter een query wordt uitgevoerd, kunnen de gegevens meer dan één keer worden opgehaald uit de gegevensbron.

Aanbevelingen

Over het algemeen raden we u aan om te verwijzen naar query's om dubbele logica in uw query's te voorkomen. Zoals beschreven in dit artikel kan deze ontwerpbenadering echter bijdragen aan trage gegevensvernieuwingen en overbelaste gegevensbronnen.

U wordt aangeraden in plaats daarvan een gegevensstroom te maken. Het gebruik van een gegevensstroom kan de vernieuwingstijd van gegevens verbeteren en de impact op uw gegevensbronnen verminderen.

U kunt de gegevensstroom ontwerpen om de brongegevens en transformaties in te kapselen. Omdat de gegevensstroom een permanente opslag van gegevens in de Power BI-service is, is het ophalen van gegevens snel. Zelfs wanneer naar query's wordt verwezen, worden er dus meerdere aanvragen voor de gegevensstroom gegenereerd, kunnen de vernieuwingstijden van gegevens worden verbeterd.

Als Query1 in het voorbeeld opnieuw is ontworpen als een gegevensstroomentiteit, kan Query2, Query3 en Query4 deze gebruiken als gegevensbron. Met dit ontwerp wordt de entiteit die wordt opgehaald door Query1 slechts één keer geëvalueerd.

Raadpleeg de volgende bronnen voor meer informatie over dit artikel: