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, legger du merke til 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.
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 noen rader fra toppen av tabellen.
Dette settet med trinnnavn er en egendefinert måte å vise M-skriptet som Power Query 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-gruppen på Hjem-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.
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 de øverste 20 radene.
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 Power Query 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.
- 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.
- Power Query bestemmer hvilke data som må trekkes ut fra datakilden, og sender en forespørsel til datakilden.
- Datakilden svarer på forespørselen fra Power Query ved å overføre de forespurte dataene til Power Query.
- Power Query mottar innkommende data fra datakilden og gjør eventuelle transformasjoner ved hjelp av Power Query-motoren om nødvendig.
- 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.
- 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.
- Spørringsdelegeringsmekanismen sender metadataforespørsler til datakilden for å bestemme egenskapene til datakilden, tabellskjemaer, relasjoner mellom ulike tabeller i datakilden og mer.
- 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.
- Når de interne komponentene i Power Query mottar instruksjonene, sender Power Query en forespørsel til datakilden ved hjelp av en datakildespørring.
- Datakilden mottar forespørselen fra Power Query og overfører dataene til Power Query-motoren.
- 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.
- Resultatene som er avledet fra forrige punkt, lastes inn til et mål.
Merk
Avhengig av transformasjonene og datakilden som brukes i M-skriptet, avgjør Power Query om de strømmer eller bufrer 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 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.
Relatert innhold
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