Oversikt over spørringsevaluering og spørringsdelegering i Power Query

Denne artikkelen gir en grunnleggende oversikt over hvordan M-spørringer behandles og gjøres om til datakildeforespørsler.

Power Query M-skript

Alle spørringer, enten de er opprettet av Power Query, manuelt skrevet av deg i det avanserte redigeringsprogrammet, eller angitt ved hjelp av et tomt dokument, består av funksjoner og syntaks fra Power Query M-formelspråket. Denne spørringen tolkes og evalueres av Power Query-motoren for å sende resultatene. M-skriptet fungerer som settet med instruksjoner som kreves for å evaluere spørringen.

Tips

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

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

Merk

M-skriptet brukes i redigeringsprogrammet for Power Query til å:

  • Vis spørringen som en rekke trinn, og tillat oppretting eller endring av nye trinn.
  • Vis en diagramvisning.

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

Det forrige bildet fremhever delen brukte trinn, som inneholder følgende trinn:

  • 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 et bestemt antall rader fra toppen av tabellen.

Dette settet med trinnnavn er en egendefinert måte å vise M-skriptet som Power Query har opprettet for deg. Det finnes flere måter å vise hele M-skriptet på. I Power Query kan du velge avansert redigering i Visning-fanen. 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 skriptvisning>fra Oppsett-gruppen.

Bilde med det fullstendige M-skriptet og de tilsvarende navnene på de brukte trinnene.

De fleste navnene som finnes i ruten Brukte trinn , brukes også som de er i M-skriptet. Trinnene i en spørring kalles ved hjelp av noe som kalles identifikatorer på M-språket. Noen ganger er ekstra tegn pakket 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 kan brukes til å tillate at en sekvens med null eller flere Unicode-tegn brukes som identifikator, inkludert nøkkelord, mellomrom, kommentarer, operatorer og tegnsettingstegn. Hvis du vil lære mer om identifikatorer på M-språket, kan du gå til leksikalsk struktur.

Eventuelle endringer du gjør i spørringen gjennom Redigeringsprogrammet for Power Query, oppdaterer automatisk M-skriptet for spørringen. Hvis du for eksempel bruker det forrige bildet som utgangspunkt, oppdateres denne endringen automatisk i skriptvisningen hvis du endrer navnet på beholdte øverste rader til topp 20 rader.

Bilde med det brukte trinnnavnet endret til De 20 øverste radene, som også oppdaterer M-skriptet.

Selv om vi anbefaler at du bruker Redigeringsprogrammet for Power Query til å opprette hele eller de fleste M-skriptene for deg, kan du manuelt legge til eller endre deler av M-skriptet. Hvis du vil lære mer om M-språket, kan du gå til det offisielle dokumentnettstedet for M-språket.

Merk

M-skript, også kalt M-kode, er en term som brukes for alle koder som bruker M-språket. I denne artikkelen refererer M-skript også til koden som ble funnet i en Power Query-spørring og tilgjengelig gjennom det avanserte redigeringsvinduet eller gjennom skriptvisningen på formellinjen.

Spørringsevaluering i Power Query

Diagrammet nedenfor utforsker prosessen som oppstår når en spørring evalueres i Power Query.

Spørringsevalueringsdiagram som en oversikt.

  1. M-skriptet, som finnes i det avanserte redigeringsprogrammet, sendes til Power Query-motoren. Annen viktig informasjon er også inkludert, for eksempel legitimasjon og personvernnivåer for datakilder.
  2. Power Query bestemmer hvilke data som må trekkes ut 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 gjør eventuelle transformasjoner ved hjelp av Power Query-motoren om nødvendig.
  5. Resultatene som er avledet fra forrige punkt, lastes inn til et mål.

Merk

Selv om dette eksemplet viser en spørring med en SQL-database som datakilde, gjelder konseptet for spørringer med eller uten en datakilde.

Når Power Query leser M-skriptet, kjører det skriptet gjennom en optimaliseringsprosess for å evaluere spørringen mer effektivt. I denne prosessen bestemmer den hvilke trinn (transformeringer) fra spørringen som kan avlastes til datakilden. Den bestemmer også hvilke andre trinn som må evalueres ved hjelp av Power Query-motoren. Denne optimaliseringsprosessen kalles spørringsdelegering, der Power Query prøver å sende så mye av den mulige kjøringen til datakilden for å optimalisere kjøringen av spørringen.

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 som må evalueres. Power Query forstår også hvilke andre transformeringer som ikke trenger å evalueres fordi de ikke er nødvendige i utdataene for spørringen.

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.

Spørringsevalueringsdiagram som forklarer optimaliseringsprosessen.

  1. M-skriptet, som finnes i det avanserte redigeringsprogrammet, sendes til Power Query-motoren. Annen viktig informasjon leveres også, for eksempel legitimasjon og personvernnivåer for datakilder.
  2. Spørringsdelegeringsmekanismen sender metadataforespørsler til datakilden for å bestemme egenskapene til datakilden, tabellskjemaer, relasjoner mellom ulike tabeller i datakilden og mer.
  3. Basert på metadataene som mottas, bestemmer spørringsdelegeringsmekanismen hvilken informasjon som skal trekkes ut fra datakilden, og hvilket sett med transformasjoner som må skje i Power Query-motoren. Den sender instruksjonene til to andre komponenter som tar seg av å hente dataene fra datakilden og transformere innkommende data i Power Query-motoren om nødvendig.
  4. Når instruksjonene er mottatt av de interne komponentene i Power Query, 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 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. Resultatene som er avledet fra forrige punkt, lastes inn til et mål.

Merk

Avhengig av transformasjonene og datakilden som brukes i M-skriptet, bestemmer Power Query om det vil strømme eller bufre innkommende data.

Oversikt over spørringsdelegering

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 kan tolkes og utføres av datakilden. Den sender deretter evalueringen til datakilden og sender resultatet av evalueringen til Power Query.

Denne operasjonen gir ofte en mye raskere kjøring av spørringer enn å trekke ut alle nødvendige data fra datakilden og kjøre alle transformeringer som kreves i Power Query-motoren.

Når du bruker hent dataopplevelsen, veileder Power Query deg gjennom prosessen som til slutt lar deg koble til datakilden. Når du gjør dette, bruker Power Query en rekke funksjoner i M-språket kategorisert som tilgang til datafunksjoner. Disse spesifikke funksjonene bruker mekanismer og protokoller for å koble til datakilden ved hjelp av et språk som datakilden kan forstå.

Trinnene som følger i spørringen, er imidlertid trinnene eller transformasjonene som spørringsdelegeringsmekanismen forsøker å optimalisere. Den kontrollerer deretter om de kan avlastes til datakilden i stedet for å bli behandlet ved hjelp av Power Query-motoren.

Viktig

Alle datakildefunksjoner, vanligvis vist som kildetrinnet i en spørring, spør dataene på datakilden på sitt opprinnelige språk. Spørringsdelegeringsmekanismen brukes på alle transformeringer som brukes på spørringen etter datakildefunksjonen, slik at de kan oversettes og kombineres til én enkelt datakildespørring eller så mange transformeringer som kan avlastes til datakilden.

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

  • Fullstendig spørringsdelegering: Når alle spørringstransformasjonene sendes tilbake til datakilden og minimal behandling skjer på Power Query-motoren.
  • Delvis spørringsdelegering: Når bare noen få transformasjoner i spørringen, og ikke alle, kan sendes tilbake til datakilden. I dette tilfellet utføres bare et delsett av transformasjonene hos datakilden, og resten av spørringstransformasjonene forekommer i Power Query-motoren.
  • Ingen spørringsdelegering: Når spørringen inneholder transformasjoner som ikke kan oversettes til det opprinnelige spørringsspråket for datakilden, enten fordi transformasjonene ikke støttes eller koblingen ikke støtter spørringsdelegering. I dette tilfellet henter Power Query rådata fra datakilden og bruker Power Query-motoren til å oppnå utdataene du ønsker, ved å behandle de nødvendige transformeringene på Power Query-motornivå.

Merk

Spørringsdelegeringsmekanismen er hovedsakelig tilgjengelig i koblinger for strukturerte datakilder, for eksempel, men ikke begrenset til, Microsoft SQL Server og OData Feed. I løpet av optimaliseringsfasen kan motoren noen ganger endre rekkefølgen på trinnene i spørringen.

Hvis du bruker en datakilde som har flere behandlingsressurser og har spørringsdelegeringsfunksjoner, kan du fremskynde innlastingstidene for spørringen etter hvert som behandlingen skjer hos datakilden og ikke i Power Query-motoren.

Neste trinn

Hvis du vil ha detaljerte eksempler på de tre mulige resultatene av spørringsdelegeringsmekanismen, kan du gå til eksempler på spørringsdelegering.

Hvis du vil ha informasjon om spørringsdelegeringsindikatorer i ruten Brukte trinn , kan du gå til spørringsdelegeringsindikatorer