Share via


Referere til Power Query-spørringer

Denne artikkelen er rettet mot deg som datamodellerer som arbeider med Power BI Desktop. Den gir deg veiledning når du definerer Power Query-spørringer som refererer til andre spørringer.

La oss være tydelige på hva dette betyr: Når en spørring refererer til en ny spørring, er det som om trinnene i den andre spørringen kombineres med, og kjører før, trinnene i den første spørringen.

Vurder flere spørringer: Spørring1 henter data fra en nettjeneste, og belastningen er deaktivert. Spørring 2, Spørring 3 og Spørring4 refererer alle til Query1, og utdataene lastes inn i datamodellen.

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

Når datamodellen oppdateres, antas det ofte at Power Query henter spørringsresultatet , og at den brukes på nytt av refererte spørringer. Denne tenkningen er feil. Faktisk kjører Power Query Spørring2, Spørring3 og Spørring4 separat.

Du kan tro at Spørring2 har spørring 1-trinnene innebygd i den. Det er tilfellet for Query3 og Query4 også. Diagrammet nedenfor viser et klarere bilde av hvordan spørringene utføres.

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

Spørring 1 kjøres tre ganger. Flere kjøringer kan føre til treg dataoppdatering og negativ innvirkning på datakilden.

Bruken av Table.Buffer-funksjonen i Query1 eliminerer ikke den ekstra datahentingen. Denne funksjonen bufrer en tabell til minne, og den bufrede tabellen kan bare brukes i den samme kjøringen av spørringen. Så i eksemplet, hvis Spørring1 bufres når Spørring2 kjøres, kan ikke de bufrede dataene brukes når Query3 og Query4 kjøres. De bufrer dataene to ganger til. (Dette resultatet kan faktisk sammensatte den negative ytelsen fordi tabellen bufres av hver referansespørring.)

Merk

Hurtigbufringsarkitektur for Power Query er kompleks, og det er ikke fokuset i denne artikkelen. Power Query kan bufre data som hentes fra en datakilde. Når den utfører en spørring, kan den imidlertid hente dataene fra datakilden mer enn én gang.

Anbefalinger

Generelt anbefaler vi at du refererer til spørringer for å unngå duplisering av logikk på tvers av spørringene. Men som beskrevet i denne artikkelen, kan denne utformingstilnærmingen bidra til trege dataoppdateringer og overbelastede datakilder.

Vi anbefaler at du oppretter en dataflyt i stedet. Bruk av en dataflyt kan forbedre dataoppdateringstiden og redusere innvirkningen på datakildene.

Du kan utforme dataflyten for å innkapsle kildedataene og transformasjonene. Ettersom dataflyten er et fast lager av data i Power Bi-tjeneste, er datahentingen rask. Så selv når du refererer til spørringer resulterer i flere forespørsler om dataflyten, kan dataoppdateringstider forbedres.

Hvis Spørring1 er utformet på nytt som en dataflytenhet, kan spørring 2, spørring 3 og spørring4 bruke den som en datakilde i eksemplet. Med denne utformingen evalueres enheten som hentes av Query1 , bare én gang.

Hvis du vil ha mer informasjon om denne artikkelen, kan du se følgende ressurser: