Bruke DirectQuery i Power BI Desktop

Når du kobler til en datakilde med Power BI Desktop, kan du importere en kopi av dataene. For enkelte datakilder kan du også koble direkte til datakilden uten å importere data ved hjelp av DirectQuery.

Hvis du vil finne ut om en datakilde støtter DirectQuery, kan du vise den fullstendige oppføringen av tilgjengelige datakilder som finnes i artikkelen Koble til orer i Power Query, som også gjelder for Power BI, velge artikkelen som beskriver datakilden du er interessert i, fra listen over støttede koblinger, og deretter se delen i denne koblingens artikkel med tittelen Funksjoner som støttes. Hvis DirectQuery ikke er oppført i denne delen for datakildeartikkelen, støttes ikke DirectQuery for denne datakoblingen.

Her er forskjellene mellom å bruke import- og DirectQuery-tilkoblingsmodus:

  • Importer: En kopi av dataene fra de valgte tabellene og kolonnene importeres til Power BI Desktop. Når du oppretter eller samhandler med visualiseringer, bruker Power BI Desktop de importerte dataene. Hvis du vil se underliggende dataendringer etter den første importen eller den siste oppdateringen, må du importere den fullstendige semantiske modellen på nytt for å oppdatere dataene.

  • DirectQuery: Ingen data importeres til Power BI Desktop. For relasjonskilder kan du velge tabeller og kolonner som skal vises i feltlisten i Power BI Desktop. For flerdimensjonale kilder som SAP Business Warehouse (SAP BW) vises dimensjonene og målene for den valgte kuben i Felter-listen . Når du oppretter eller samhandler med visualiseringer, spør Power BI Desktop den underliggende datakilden, slik at du alltid viser gjeldende data.

Når du oppretter eller samhandler med en visualisering med DirectQuery, må du spørre den underliggende kilden. Tiden som kreves for å oppdatere visualiseringen, avhenger av ytelsen til den underliggende datakilden. Hvis dataene som kreves for å betjene forespørselen nylig ble forespurt, bruker Power BI Desktop de nylig brukte dataene til å redusere tiden det tar å vise visualiseringen. Hvis du velger Oppdater fra Hjem-båndet , oppdateres alle visualiseringer med gjeldende data.

Mange datamodelleringer og datatransformasjoner er tilgjengelige når du bruker DirectQuery, men med noen ytelsesbaserte begrensninger. Hvis du vil ha mer informasjon om DirectQuery-fordeler, begrensninger og anbefalinger, kan du se DirectQuery i Power BI.

DirectQuery-fordeler

Noen fordeler ved å bruke DirectQuery inkluderer:

  • DirectQuery lar deg bygge visualiseringer over svært store semantiske modeller, der det ville være umulig å importere alle dataene med forhåndsaggregasjon.

  • DirectQuery-rapporter bruker alltid gjeldende data. Hvis du ser underliggende dataendringer, må du oppdatere dataene, og det kan være umulig å importere store semantiske modeller for å oppdatere data.

  • Semantisk modellbegrensning på 1 GB gjelder ikke med DirectQuery.

Koble til ved hjelp av DirectQuery

Slik kobler du til en datakilde med DirectQuery:

  1. Velg Hent data i Hjem-gruppen på Power BI Desktop-båndet, og velg deretter en datakilde som DirectQuery støtter, for eksempel SQL Server.

  2. Velg DirectQuery under Datatilkoblingsmodus i dialogboksen for tilkoblingen.

Import and DirectQuery options, SQL Server Database dialog, Power BI Desktop

Publiser til Power BI-tjenesten

Du kan publisere DirectQuery-rapporter til Power Bi-tjeneste, men du må utføre ekstra trinn for Power Bi-tjeneste for å åpne rapportene.

  • Hvis du vil koble Power Bi-tjeneste til Andre DirectQuery-datakilder enn Azure SQL Database, installerer Azure Synapse Analytics (tidligere SQL Data Warehouse), Amazon Redshift og Snowflake Data Warehouse en lokal datagateway og registrerer datakilden.

  • Hvis du brukte DirectQuery med skykilder som Azure SQL Database, Azure Synapse, Amazon Redshift eller Snowflake Data Warehouse, trenger du ikke en lokal datagateway. Du må fortsatt angi legitimasjon for Power Bi-tjeneste for å åpne den publiserte rapporten. Uten legitimasjon oppstår det en feil når du prøver å åpne en publisert rapport eller utforske en semantisk modell som er opprettet med en DirectQuery-tilkobling.

Slik angir du legitimasjon for åpning av rapporten og oppdatering av dataene:

  1. Velg tannhjulikonet øverst til høyre i Power Bi-tjeneste, og velg Innstillinger.

    Screenshot of the Power BI service Settings dropdown menu.

  2. Velg semantiske modeller-fanen på Innstillinger-siden, og velg den semantiske modellen som bruker DirectQuery.

  3. Angi legitimasjonen for å koble til datakilden under Datakildetilkobling.

Merk

Hvis du brukte DirectQuery med en Azure SQL Database som har en privat IP-adresse, må du bruke en lokal gateway.

Hensyn og begrensninger

Noen Power BI Desktop-funksjoner støttes ikke i DirectQuery-modus, eller de har begrensninger. Noen funksjoner i Power Bi-tjeneste, for eksempel rask innsikt, er heller ikke tilgjengelige for semantiske modeller som bruker DirectQuery. Når du bestemmer deg for om du vil bruke DirectQuery, bør du vurdere disse funksjonsbegrensningene. Vurder også følgende faktorer:

Ytelses- og belastningshensyn

DirectQuery sender alle forespørsler til kildedatabasen, slik at den nødvendige oppdateringstiden for visualobjekter avhenger av hvor lang tid den underliggende kilden tar for å returnere resultatene. Fem sekunder eller mindre er anbefalt responstid for mottak av forespurte data for visualobjekter. Oppdateringstider over 30 sekunder gir en uakseptabel dårlig opplevelse for brukere som bruker rapporten. En spørring som tar lengre tid enn fire minutter i Power Bi-tjeneste, og brukeren får en feilmelding.

Belastning på kildedatabasen avhenger også av antall Power BI-brukere som bruker den publiserte rapporten, spesielt hvis rapporten bruker sikkerhet på radnivå (RLS). Oppdateringen av en ikke-RLS-instrumentbordflis som deles av flere brukere, sender én enkelt spørring til databasen, men oppdatering av en instrumentbordflis som bruker RLS, krever én spørring per bruker. De økte spørringene øker belastningen betydelig og påvirker potensielt ytelsen.

Radgrense på én million

DirectQuery definerer en radgrense på én million for data som returneres fra datakilder i skyen, som er datakilder som ikke er lokale. Lokale kilder er begrenset til en definert nyttelast på ca. 4 MB per rad, avhengig av proprietær komprimeringsalgoritme eller 16 MB for hele visualobjektet. Premium-kapasiteter kan angi ulike maksimale radgrenser, som beskrevet i blogginnlegget Power BI Premium nye kapasitetsinnstillinger.

Power BI oppretter spørringer som er så effektive som mulig, men noen genererte spørringer kan hente for mange rader fra den underliggende datakilden. Denne situasjonen kan for eksempel oppstå med et enkelt diagram som inneholder en kolonne med høy kardinalitet med aggregasjonsalternativet satt til Ikke oppsummer. Visualobjektet må bare ha kolonner med en kardinalitet under 1 million, eller må bruke de riktige filtrene.

Radgrensen gjelder ikke for aggregasjoner eller beregninger som brukes til å velge den semantiske modellen DirectQuery returnerer, bare for radene som returneres. Spørringen som kjører på datakilden, kan for eksempel aggregere 10 millioner rader. Så lenge dataene som returneres til Power BI er mindre enn 1 million rader, kan spørringen returnere resultatene nøyaktig. Hvis dataene er over 1 million rader, viser Power BI en feil, bortsett fra i Premium-kapasitet med ulike begrensninger for administrasjonssett. Feiltilstandene: Resultatsettet for en spørring til ekstern datakilde har overskredet den maksimale tillatte størrelsen på '10000000'-rader.

Sikkerhetshensyn

Som standard kobler alle brukere som bruker en publisert rapport i Power Bi-tjeneste til den underliggende datakilden ved hjelp av legitimasjonen som er angitt etter publisering. Denne situasjonen er den samme som for importerte data. Alle brukere ser de samme dataene, uavhengig av eventuelle sikkerhetsregler som den underliggende kilden definerer.

Hvis du trenger sikkerhet per bruker implementert med DirectQuery-kilder, kan du enten bruke RLS eller konfigurere Kerberos-begrenset godkjenning mot kilden. Kerberos er ikke tilgjengelig for alle kilder. Hvis du vil ha mer informasjon, kan du se Sikkerhet på radnivå (RLS) med Power BI og Konfigurere Kerberos-basert SSO fra Power Bi-tjeneste til lokale datakilder.

Andre DirectQuery-begrensninger

Noen andre begrensninger ved bruk av DirectQuery inkluderer:

  • Hvis Power Query-redigering spørringen er altfor kompleks, oppstår det en feil. Hvis du vil løse feilen, må du enten slette det problematiske trinnet i Power Query-redigering, eller bytte til importmodus. Flerdimensjonale kilder som SAP BW kan ikke bruke Power Query-redigering.

  • Automatisk dato/klokkeslett-hierarki er utilgjengelig i DirectQuery. DirectQuery-modus støtter ikke datokolonnedrilling etter år, kvartal, måned eller dag.

  • For tabell- eller matrisevisualiseringer er det en grense på 125 kolonner for resultater som returnerer mer enn 500 rader fra DirectQuery-kilder. Disse resultatene viser et rullefelt i tabellen eller matrisen som lar deg hente flere data. I slike tilfeller er maksimalt antall kolonner i tabellen eller matrisen 125. Hvis du må inkludere mer enn 125 kolonner i én enkelt tabell eller matrise, bør du vurdere å opprette mål som bruker MIN, , MAXFIRSTeller LAST, fordi de ikke teller mot dette maksimumet.

  • Du kan ikke endre fra import til DirectQuery-modus. Du kan bytte fra DirectQuery-modus til importmodus hvis du importerer alle nødvendige data. Det er ikke mulig å bytte tilbake, hovedsakelig på grunn av funksjonssettet som DirectQuery ikke støtter. DirectQuery-modeller over flerdimensjonale kilder, for eksempel SAP BW, kan heller ikke byttes fra DirectQuery til importmodus på grunn av den ulike behandlingen av eksterne tiltak.

  • Beregnede tabeller og beregnede kolonner som refererer til en DirectQuery-tabell fra en datakilde med enkel pålogging (SSO)-godkjenning, støttes ikke i Power Bi-tjeneste.