Oversikt over spørringsvurdering og spørringsfolding i Power Query

Power Query evaluerer en M-spørring for å fastslå dataene og transformasjonene som kreves for resultatet. Under evalueringen forsøker spørringsdelegering å oversette støttede transformasjoner til operasjoner som en datakilde kan utføre. Transformasjoner som ikke kan brettes kjøres i Power Query-motoren.

Hva er et Power Query M-skript?

Et M-skript, også kalt M-kode, er settet med Power Query M-formelspråkfunksjoner og syntaks som Power Query evaluerer for å produsere et spørringsresultat. Hver spørring har et M-skript, enten Power Query oppretter det, du skriver det i det avanserte redigeringsprogrammet, eller du skriver det inn i en tom spørring.

Tips

Du kan tenke på M-skriptet som en oppskrift som beskriver hvordan du klargjør dataene.

Den vanligste måten å lage et M-skript på er ved å bruke Power Query-editoren. Når du for eksempel kobler til en datakilde, for eksempel en SQL Server database, legger du merke til på høyre side av skjermen at det finnes en inndeling som kalles brukte trinn. Denne delen viser alle trinnene eller transformasjonene som brukes i spørringen. I denne forstand fungerer Power Query-redigeringsprogrammet som et grensesnitt for å hjelpe deg med å opprette det aktuelle M-skriptet for transformeringene du vil bruke, og sikrer at koden du bruker, er gyldig.

Merk deg

M-skriptet brukes i Power Query-editoren til å:

  • Vis spørringen som en rekke trinn, og la deg opprette eller endre trinn.
  • Vis en diagramvisning.

Skjermbilde av de brukte trinnene og forhåndsvisningsvisningen for data.

I dette SQL Server eksemplet inneholder ruten Brukte trinn følgende fremgangsmåte:

  • Kilde: Kobler til datakilden. I dette tilfellet er det en tilkobling til en SQL Server-database.
  • Navigasjon: Navigerer til en bestemt tabell i databasen.
  • Fjernet andre kolonner: Merker hvilke kolonner fra tabellen som skal beholdes.
  • Sorterte rader: Sorterer tabellen ved hjelp av én eller flere kolonner.
  • Beholdt øverste rader: Filtrerer tabellen for å bare beholde noen rader fra toppen av tabellen.

Vise og redigere et M-skript i Power Query

Dette settet med stegnavn er en vennlig måte å se M-skriptet som Power Query har laget for deg. Du kan vise hele M-skriptet på flere måter. Velg avansert redigering i Vis-fanen i Power Query. Du kan også velge avansert redigering fra Spørring-gruppenHjem-fanen. I noen versjoner av Power Query kan du også endre visningen av formellinjen for å vise spørringsskriptet ved å gå til Visning-fanen, og velge skriptskript for skriptvisning> i oppsettgruppen.

Skjermbilde som inneholder hele M-skriptet og de tilsvarende navnene på de brukte trinnene.

De fleste navnene du finner i ruten Brukte trinn , brukes også som de er i M-skriptet. Du gir navn til trinnene i en spørring ved hjelp av identifikatorer på M-språket. Noen ganger brytes ekstra tegn rundt trinnnavn i M, men disse tegnene vises ikke i de brukte trinnene. Et eksempel er #"Kept top rows", som er kategorisert som en sitert identifikator på grunn av disse ekstra tegnene. En sitert identifikator gjør at enhver sekvens med null eller flere Unicode-tegn kan brukes som en identifikator, inkludert nøkkelord, mellomrom, kommentarer, operatorer og tegnsettingstegn. Hvis du vil lære mer om identifikatorer på M-språket, kan du se leksikalsk struktur.

Eventuelle endringer du gjør i spørringen gjennom Power Query redigeringsprogrammet, oppdaterer automatisk M-skriptet for spørringen. Hvis du for eksempel endrer navnet på behold øverste rader til de øverste 20 radene, endres navnet også i spørringsskriptvisningen.

Skjermbilde av det brukte trinnnavnet som er endret til De 20 øverste radene, som også oppdaterer M-skriptet.

Selv om vi anbefaler at du bruker Power Query-editoren for å lage hele eller mesteparten av M-skriptet for deg, kan du manuelt legge til eller endre deler av M-skriptet ditt. Hvis du vil ha mer informasjon, kan du se M-språkreferansen.

I denne artikkelen refererer M-skript til Power Query M-koden i en spørring, som du kan få tilgang til gjennom avansert redigeringsprogram eller spørringsskriptvisning på formellinjen.

Hvordan Power Query evaluerer en M-spørring

Power Query evaluerer et M-skript ved å bestemme de nødvendige utdataene og hvordan du produserer det. For spørringer som bruker en ekstern datakilde, inkluderer evaluering å be om data fra kilden, behandle eventuelle transformasjoner som kjører i Power Query-motoren, og laste inn resultatet til et mål.

Følgende diagram utforsker prosessen som skjer når en spørring evalueres i Power Query.

Diagram som viser veien for en spørringsevaluering fra M-skriptet til sluttresultatet.

  1. M-skriptet, som finnes i den avanserte editoren, sendes til Power Query-motoren. Annen viktig informasjon er også inkludert, for eksempel legitimasjon og personvernnivåer for datakilder.
  2. Power Query avgjør hvilke data som må hentes fra datakilden og sender en forespørsel til datakilden.
  3. Datakilden svarer på forespørselen fra Power Query ved å overføre de forespurte dataene til Power Query.
  4. Power Query mottar innkommende data fra datakilden og utfører eventuelle transformasjoner ved hjelp av Power Query-motoren om nødvendig.
  5. Power Query laster inn det transformerte resultatet til et mål.

Merk deg

Denne flyten viser en spørring som leses fra en SQL Server database. For en spørring uten en ekstern datakilde evaluerer Power Query fortsatt M-skriptet og gir et resultat, men datakildeforespørselen og overføringsfasene gjelder ikke.

Hvordan spørringsdelegering optimaliserer spørringsevaluering

Når Power Query leser M-skriptet ditt, kjører skriptet gjennom en optimaliseringsprosess for å evaluere spørringen din mer effektivt. I denne prosessen bestemmer den hvilke trinn (transformeringer) fra spørringen som kan avlastes til datakilden. Den avgjør også hvilke andre steg som må evalueres ved hjelp av Power Query-motoren.

Denne optimaliseringsprosessen kalles spørringsdelegering. Spørringsdelegering oversetter støttede M-transformasjoner til operasjoner som datakilden kan utføre. Power Query prøver å kjøre så mye av spørringen som mulig på datakilden og evaluerer eventuelle gjenværende transformasjoner i Power Query-motoren.

Viktig!

Alle regler fra Power Query M-formelspråket (også kjent som M-språket) følges. Spesielt spiller lat evaluering en viktig rolle under optimaliseringsprosessen. I denne prosessen forstår Power Query hvilke spesifikke transformasjoner fra spørringen din som må evalueres. Power Query forstår også hvilke andre transformasjoner som ikke trenger å evalueres fordi de ikke trengs i utdataene av spørringen din.

Når flere kilder er involvert, tas personvernnivået for hver datakilde i tillegg i betraktning når du evaluerer spørringen. Mer informasjon: Bak kulissene i brannmuren for datavern

Diagrammet nedenfor viser trinnene som finner sted i denne optimaliseringsprosessen.

Diagram som viser optimaliseringsprosessen under spørringsevaluering.

  1. M-skriptet, som finnes i den avanserte editoren, sendes til Power Query-motoren. Annen viktig informasjon leveres også, for eksempel legitimasjon og personvernnivåer for datakilder.
  2. Spørringsdelegeringsmekanismen sender inn metadataforespørsler for å bestemme egenskapene til datakilden, tabellskjemaer, relasjoner mellom tabeller i datakilden og andre metadata.
  3. Basert på metadataene den mottar, bestemmer spørringsdelegeringsmekanismen hvilken informasjon som skal trekkes ut fra datakilden, og hvilke transformasjoner som må forekomme i Power Query-motoren. Den sender instruksjoner til to andre komponenter som henter data fra datakilden og transformerer innkommende data i Power Query-motoren om nødvendig.
  4. Når de interne komponentene i Power Query mottar instruksjonene, sender Power Query en forespørsel til datakilden ved hjelp av en datakildespørring.
  5. Datakilden mottar forespørselen fra Power Query og overfører dataene til Power Query-motoren.
  6. Når dataene er inne i Power Query, gjør transformasjonsmotoren i Power Query (også kjent som mashup-motor) transformasjonene som ikke kunne brettes tilbake eller avlastes til datakilden.
  7. Power Query laster inn det transformerte resultatet til et mål.

Merk deg

Avhengig av transformasjonene og datakilden som brukes i M-skriptet, bestemmer Power Query om de innkommende dataene skal strømmes eller bufres.

Hva spørringsdelegering gjør i Power Query

Målet med spørringsdelegering er å avlaste eller sende så mye av evalueringen av en spørring til en datakilde som kan beregne transformasjonene av spørringen.

Spørringsdelegeringsmekanismen oppnår dette målet ved å oversette M-skriptet til et språk som datakilden kan tolke og kjøre. Den sender deretter evalueringen til datakilden din og sender resultatet av evalueringen til Power Query.

Denne operasjonen gir ofte en raskere spørringskjøring enn å hente ut all nødvendig data fra datakilden din og kjøre alle transformasjoner som kreves i Power Query-motoren.

Når du bruker get data experience, guider Power Query deg gjennom prosessen som til slutt lar deg koble til datakilden din. Når dette gjøres, bruker Power Query en serie funksjoner i M-språket kategorisert som tilgangsdatafunksjoner. Disse spesifikke funksjonene bruker mekanismer og protokoller for å koble til datakilden ved hjelp av et språk som datakilden kan forstå.

For transformasjoner etter datakildefunksjonen kontrollerer spørringsdelegeringsmekanismen om den kan avlaste dem til datakilden i stedet for å behandle dem i Power Query-motoren.

Viktig!

Datakildefunksjoner, som vanligvis vises som kildetrinnet i en spørring, spør etter data på datakilden på det opprinnelige språket. For transformasjoner etter datakildefunksjonen forsøker Power Query spørringsdelegering bare når koblingen og transformasjonene støtter den. Mekanismen kan oversette og kombinere støttede transformasjoner til én enkelt datakildespørring.

Spørringsdelegeringsresultater i Power Query

Avhengig av hvordan spørringen er strukturert, kan det være tre mulige resultater for spørringsdelegeringsmekanismen:

Spørringsdelegeringsresultat Behandler ved datakilden Behandler i Power Query-motoren
Fullstendig spørringsdelegering Datakilden behandler alle spørringstransformasjoner. Minimal behandling skjer i Power Query-motoren.
Delvis spørringsdelegering Datakilden behandler transformasjonene som Power Query kan oversette til det opprinnelige spørringsspråket. Den Power Query motoren behandler de gjenværende transformasjonene.
Ingen spørringsdelegering Datakilden returnerer de forespurte kildedataene uten å behandle spørringstransformasjoner. Den Power Query motoren behandler alle nødvendige transformasjoner.

Datakilder som støtter spørringsdelegering

Støtte for spørringsdelegering avhenger av koblingen, datakilden og transformasjonene i spørringen. Koblinger for strukturerte datakilder med spørringsbehandlingsfunksjoner, for eksempel SQL Server og OData-feed, støtter vanligvis spørringsdelegering. Kilder uten en spørringsmotor, for eksempel CSV og Excel filer, støtter ikke spørringsdelegering.

Under optimalisering kan Power Query-motoren endre rekkefølgen på spørringstrinnene. Hvis du bruker en datakilde med flere behandlingsressurser og spørringsdelegeringsfunksjoner, kan du redusere innlastingstiden for spørringer fordi behandling skjer i datakilden i stedet for i Power Query-motoren.

Bekreft spørringsdelegering i Power Query Online

I Power Query Online bruker du spørringsdelegeringsindikatorer ved siden av de brukte trinnene for å identifisere hvilke trinn som brettes. Du kan også bruke spørringsplanen til å se hvilke operasjoner som kjører på datakilden, og hvilke operasjoner som kjører i Power Query-motoren. Disse funksjonene er bare tilgjengelige i Power Query Online.

Når tilgjengelig, kan du bruke Vis opprinnelig spørring eller Vis datakildespørring til å undersøke forespørselen som Power Query sender til datakilden. Tilgjengelighet avhenger av koblingen.