Power Query-forespørgselsdelegering
Denne artikel henvender sig til dataudmodeller, der udvikler modeller i Power Pivot eller Power BI Desktop. Den indeholder en beskrivelse Power Query forespørgselsde foldning, og hvorfor det er vigtigt i dine datamodeldesign. I denne artikel beskrives også de datakilder og transformationer, der kan opnås forespørgselsde foldning, og hvordan du kan fastlægge, at dine Power Query-forespørgsler kan foldes – uanset om de er helt eller delvist.
Forespørgselsde foldning er muligheden for, at Power Query forespørgsel genererer en enkelt forespørgselssætningen for at hente og transformere kildedata. Miksprogrammet Power Query at opnå forespørgselsde foldning, når det er muligt, af hensyn til effektiviteten.
Forespørgselsdelegering er et vigtigt emne for datamodellering af flere årsager:
- Tabel med importmodel: Opdatering af data i tabeller med importmodeller (Power Pivot eller Power BI Desktop) effektivt i forhold til udnyttelsen af ressourcer og varigheden af opdateringen.
- DirectQuery-tabeller og tabeller med dobbelt lagringstilstand: Hver DirectQuery-tabel og tabel med dobbelt lagringstilstand (kun Power BI) skal være baseret på en Power Query, der kan foldes.
- Trinvis opdatering: Trinvis opdatering af data (Power BI) vil være effektivt med hensyn til udnyttelsen af ressourcer og varigheden af opdateringen. Vinduet med den trinvise Power BI vil faktisk give dig besked, hvis det bestemmes, at forespørgselsde foldning for tabellen ikke kan opnås. Hvis det ikke kan opnås, er målet for trinvis opdatering overset. Det vil derefter kræves af miksprogrammet, at det henter alle kilderækker og derefter anvender filtre for at fastlægge de trinvise ændringer.
Der kan ske forespørgselsdelegering for en hel Power Query-forespørgsel eller for en delmængde af dens trin. Når forespørgselsde foldning ikke kan opnås – enten helt eller delvist – skal Power Query-miksprogrammet kompensere ved at behandle selve datatransformationerne. Denne proces kan omfatte hentning af resultater for kildeforespørgsel, hvilket er meget ressourcetungt og langsomt for store datasæt.
Vi anbefaler, at du bestræber dig på at opnå effektivitet i dine modeldesign ved at sikre, at der sker forespørgselsde foldning, når det er muligt.
Kilder, der understøtter foldning
De fleste datakilder, der indeholder et forespørgselssprog, understøtter forespørgselsdelegering. Disse datakilder kan omfatte relationsdatabaser, OData-feeds (inklusive SharePoint-lister), Exchange og Active Directory. Datakilder såsom flade filer, BLOB-filer og webfiler gør dog typisk ikke.
Transformationer, der kan opnå foldning
Transformationer af relationsdatakilder, hvor forespørgsler kan delegeres, er dem, der kan skrives som en enkelt SELECT-sætning. En SELECT-sætning kan konstrueres med passende WHERE-, GROUP BY- og JOIN-delsætninger. Den kan også indeholde kolonneudtryk (beregninger), hvor der bruges almindelige indbyggede funktioner, som understøttes af SQL-databaser.
Generelt beskriver følgende liste transformationer, hvor forespørgslerne kan foldes.
Fjernelse af kolonner.
Omdøbning af kolonner (SELECT-kolonnealiasser).
Filtrering af rækker med statiske værdier eller parametre Power Query (WHERE-delsætning prædikater).
Gruppering og opsummering (GROUP BY-delsætning).
Udvidelse af postkolonner (kolonner til fremmed nøgle for kilden) for at opnå en joinforbindelse af to kildetabeller (JOIN-delsætning).
Fletning, der ikke er fuzzy, af forespørgsler, som kan deleves, baseret på den samme kilde (JOIN-delsætning).
Tilføje forespørgsler, som kan foldes, baseret på den samme kilde (UNION ALL-operator).
Tilføjelse af brugerdefinerede kolonner med enkel logik (SELECT-kolonneudtryk). Enkel logik indebærer ukomplicerede handlinger, hvilket muligvis omfatter brugen af M-funktioner, der har tilsvarende funktioner i SQL, f.eks. funktioner til manipulation af matematik eller tekst. Følgende udtryk returnerer f.eks. årskomponenten for kolonneværdien Ordredato (for at returnere en numerisk værdi).
Date.Year([OrderDate])Pivotering og fjern pivotering (PIVOT- og UNPIVOT-operatorer).
Transformationer, der forhindrer foldning
Generelt beskriver følgende liste transformationer, der forhindrer forespørgselsde foldning. Det er ikke meningen, at denne liste er en komplet liste.
Fletter forespørgsler baseret på forskellige kilder.
Tilføje (union-ing) forespørgsler baseret på forskellige kilder.
Tilføjelse af brugerdefinerede kolonner med kompleks logik. Kompleks logik indebærer brugen af M-funktioner, der ikke har nogen tilsvarende funktioner i datakilden. Følgende udtryk formaterer f.eks. kolonneværdien Ordredato (for at returnere en tekstværdi).
Date.ToText([OrderDate], "yyyy")Tilføjelse af indekskolonner.
Ændring af datatypen for en kolonne.
Bemærk! Når en Power Query-forespørgsel omfatter flere datakilder, kan inkompatibilitet på niveauerne for beskyttelse af personlige oplysninger for datakilderne forhindre, at der sker forespørgselsdelegering. Du kan finde flere oplysninger i artiklen niveauer Power BI Desktop beskyttelse af personlige oplysninger.
Fastlæg, hvornår en forespørgsel kan delegeres
I vinduet Power Query Editor er det muligt at afgøre, hvornår en Power Query kan foldes. Når du højreklikker på det senest anvendte trin i ruden Forespørgselsruden Indstillinger, og indstillingen Vis oprindelig forespørgsel er aktiveret (ikke nedtonet), så kan hele forespørgslen foldes.

Bemærk
Indstillingen Vis oprindelig forespørgsel er kun tilgængelig for bestemte relations-DB/-SQL, der opretter connectors. Det fungerer ikke for OData-baserede connectors, selvom der f.eks. er foldning i backend. Funktionen Forespørgselsdiagnosticering er den bedste måde at se, hvilken foldning der er sket for ikke-SQL-connectors (selvom de trin, der ikke udtrykkeligt vises, vises den URL-adresse, der — genereres).
Hvis du vil have vist den udfoldede forespørgsel, skal du vælge indstillingen Vis oprindelig forespørgsel. Derefter får du vist den oprindelige forespørgsel, som Power Query vil bruge til kildedata.

Hvis indstillingen Vis oprindelig forespørgsel ikke er aktiveret (nedtonet), er det tegn på, at ikke alle forespørgselstrin kan foldes. Det kan dog betyde, at en delmængde af trinnene stadig kan delegeres. Når du arbejder bagud fra det sidste trin, kan du kontrollere hvert trin for at se, om indstillingen Vis oprindelig forespørgsel er aktiveret. I så tilfælde har du fundet ud af, hvor i rækkefølgen af trin denne forespørgselsde foldning ikke længere kunne opnås.

Næste trin
Du kan finde flere oplysninger om forespørgselsde foldning og relaterede artikler i følgende ressourcer: