Administrer lagringstilstand i Power BI Desktop

I Microsoft Power BI Desktop kan du angive lagringstilstanden for en tabel. Med lagringstilstanden kan du styre, om Power BI Desktop cachelagrer tabeldata i hukommelsen for rapporter. Cachelagring betyder midlertidigt lagring af data i hukommelsen.

Der er mange fordele ved at indstille lagringstilstanden. Du kan angive lagringstilstanden for hver tabel individuelt i din model. Denne handling aktiverer en enkelt semantisk model, hvilket giver følgende fordele:

  • Forespørgselsydeevne: Når brugerne interagerer med visualiseringer i Power BI-rapporter, sendes DAX-forespørgsler (Data Analysis Expressions) til den semantiske model. Cachelagring af data i hukommelsen ved at angive lagringstilstanden korrekt kan øge ydeevnen af forespørgslen og dine rapporters interaktivitet.

  • Store semantiske modeller: Tabeller, der ikke cachelagres, bruger ikke hukommelse til cachelagringsformål. Du kan aktivere interaktiv analyse af store semantiske modeller, der er for store eller dyre til helt at cachelagre i hukommelsen. Du kan vælge, hvilke tabeller der er værd at cachelagring, og hvilke der ikke er.

  • Optimering af dataopdatering: Du behøver ikke at opdatere tabeller, der ikke cachelagres. Du kan reducere opdateringstiden ved kun at cachelagring af de data, der er nødvendige for at opfylde dine serviceniveauaftaler og dine forretningsmæssige krav.

  • Tidskrav i nærheden af realtid: Tabeller med tidskrav i nærheden af realtid kan drage fordel af, at de ikke cachelagres, for at reducere dataventetiden.

  • Tilbageførsel: Tilbageførsel gør det muligt for virksomhedsbrugere at udforske what if-scenarier ved at ændre celleværdier. Brugerdefinerede programmer kan anvende ændringer på datakilden. Tabeller, der ikke cachelagres, kan vise ændringer med det samme, hvilket giver mulighed for øjeblikkelig analyse af effekterne.

Indstillingen for lagringstilstand i Power BI Desktop er en af tre relaterede funktioner:

  • Sammensatte modeller: Gør det muligt for en rapport at have to eller flere dataforbindelser, herunder DirectQuery-forbindelser eller Import, i en hvilken som helst kombination. Du kan få mere at vide under Brug sammensatte modeller i Power BI Desktop.

  • Mange til mange-relationer: Med sammensatte modeller kan du oprette mange til mange-relationer mellem tabeller. I en mange til mange-relation fjernes kravene for entydige værdier i tabeller. Det fjerner også tidligere løsninger, f.eks. introduktion af nye tabeller kun for at oprette relationer. Du kan få flere oplysninger under Mange til mange-relationer i Power BI Desktop.

  • Lagringstilstand: Med lagringstilstand kan du nu angive, hvilke visualiseringer der kræver en forespørgsel til back end-datakilder. Visualiseringer, der ikke kræver en forespørgsel, importeres, selvom de er baseret på DirectQuery. Denne funktion hjælper med at forbedre ydeevnen og reducere back end-belastningen. Tidligere startede selv simple visualiseringer, f.eks. udsnit, forespørgsler, der blev sendt til back end-kilder.

Brug egenskaben Lagringstilstand

Egenskaben Lagringstilstand er en egenskab, som du kan angive for hver tabel i din model og styrer, hvordan Power BI cachelagrer tabeldataene.

Sådan angiver du egenskaben Lagringstilstand eller får vist dens aktuelle indstilling:

  1. Vælg den tabel, hvis egenskaber du vil have vist eller angive, i Modelvisning .

  2. Udvid afsnittet Avanceret i ruden Egenskaber, og udvid rullelisten Lagringstilstand.

    Screenshot of Relationship view highlight the option drop-down to change the storage mode.

Du angiver egenskaben Lagringstilstand til en af disse tre værdier:

  • Import: Importerede tabeller med denne indstilling cachelagres. Forespørgsler, der er sendt til den semantiske Power BI-model, og som returnerer data fra importtabeller, kan kun opfyldes fra cachelagrede data.

  • DirectQuery: Tabeller med denne indstilling cachelagres ikke. Forespørgsler, du sender til den semantiske Power BI-model – f.eks. DAX-forespørgsler – og som returnerer data fra DirectQuery-tabeller, kan kun opfyldes ved at udføre forespørgsler efter behov til datakilden. Forespørgsler, du sender til datakilden, bruger forespørgselssproget for den pågældende datakilde, f.eks. SQL.

  • Dual: Tabeller med denne indstilling kan fungere som enten cachelagret eller ikke cachelagret, afhængigt af konteksten for den forespørgsel, der er sendt til den semantiske Power BI-model. I nogle tilfælde opfylder du forespørgsler fra cachelagrede data. I andre tilfælde opfylder du forespørgsler ved at udføre en forespørgsel efter behov til datakilden.

Ændring af lagringstilstanden for en tabel til Import er en handling, der ikke kan fortrydes. Når denne egenskab er angivet, kan den ikke senere ændres til enten DirectQuery eller Dual.

Bemærk

Du kan bruge Dobbelt lagringstilstand i både Power BI Desktop og Power BI-tjeneste.

Begrænsninger på DirectQuery- og Dual-tabeller

Dual-tabeller har de samme funktionelle begrænsninger som DirectQuery-tabeller. Disse begrænsninger omfatter begrænsede M-transformationer og begrænsede DAX-funktioner i beregnede kolonner. Du kan finde flere oplysninger under DirectQuery-begrænsninger.

Overførsel af Dual-indstillingen

Overvej følgende model, hvor alle tabellerne er fra en enkelt kilde, der understøtter Import og DirectQuery.

Screenshot of the example Relationship view for storage mode.

Lad os antage, at alle tabeller i denne model indledningsvist er angivet til DirectQuery. Hvis du derefter ændrer lagringstilstanden for tabellen SurveyResponse til Import, vises følgende advarselsvindue:

Screenshot showing a warning window that describes the results of changing the storage mode to Import.

Du kan angive dimensionstabellerne (Kunde, Geografi og Dato) til Dual for at reducere antallet af begrænsede relationer i den semantiske model og forbedre ydeevnen. Begrænsede relationer involverer normalt mindst én DirectQuery-tabel, hvor joinlogik ikke kan pushes til kildesystemerne. Da Dual-tabeller kan fungere som enten DirectQuery- eller Import-tabeller, undgås denne situation.

Overførselslogikken er udviklet til at hjælpe med modeller, der indeholder mange tabeller. Lad os antage, at du har en model med 50 tabeller, og kun visse faktatabeller (transaktionstabeller) skal cachelagres. Logikken i Power BI Desktop beregner det mindste sæt dimensionstabeller, der skal angives til Dual, så det behøver du ikke.

Overførselslogikken kører kun til den ene side af en til mange-relationer.

Eksempel på brug af lagringstilstand

Forestil dig, at du anvender følgende egenskabsindstillinger for lagringstilstand:

Table Lagringstilstand
Salg DirectQuery
Svar på undersøgelse Importér
Dato Dobbelt
Customer Dobbelt
Geografi Dobbelt

Angivelse af disse egenskaber for lagringstilstand resulterer i følgende funktionsmåder, idet det antages, at tabellen Sales har en betydelig datamængde:

  • Power BI Desktop cachelagrer dimensionstabeller, Dato, Kunde og Geografi, så indlæsningstiden for de indledende rapporter er hurtige, når de henter udsnitsværdier, der skal vises.

  • Tabellen Sales cachelagres ikke i Power BI Desktop. Power BI Desktop indeholder følgende resultater ved ikke at cachelagring af denne tabel:

    • Opdateringstider for data forbedres, og hukommelsesforbruget reduceres.
    • Rapportforespørgsler, der er baseret på tabellen Sales , kører i DirectQuery-tilstand . Disse forespørgsler kan tage længere tid, men er tættere på realtid, fordi der ikke er nogen ventetid for cachelagring.
  • Rapportforespørgsler, der er baseret på tabellen SurveyResponse , returneres fra cachen i hukommelsen og er derfor relativt hurtige.

Forespørgsler, der findes eller ikke findes i cachen

Hvis du forbinder SQL Profiler til diagnosticeringsporten til Power BI Desktop, kan du se, hvilke forespørgsler der findes eller ikke findes i cachen i hukommelsen, ved at udføre en sporing, der er baseret på følgende hændelser:

  • Hændelser for forespørgsler\Forespørgsels start
  • Forespørgselsbehandling\Vertipaq SE-forespørgsels start
  • Forespørgselsbehandling\DirectQuery Start

For hver Query Begin-hændelse skal du kontrollere andre hændelser med det samme ActivityID. Hvis der f.eks. ikke er en DirectQuery Begin-hændelse , men der er en Vertipaq SE Query Begin-hændelse , besvares forespørgslen fra cachen.

Forespørgsler, der refererer til Dual-tabeller, returnerer data fra cachen, hvis det er muligt. Ellers vender de tilbage til DirectQuery.

Følgende forespørgsel fortsætter fra den forrige tabel. Den refererer kun til en kolonne fra tabellen Date , som er i dual-tilstand . Forespørgslen skal derfor ramme cachen:

Screenshot showing the text of query that refers to the Date table.

Følgende forespørgsel refererer kun til en kolonne fra tabellen Sales , som er i DirectQuery-tilstand . Derfor bør den ikke ramme cachen:

Screenshot showing the text of query that refers the Sales table.

Følgende forespørgsel er interessant, fordi den kombinerer begge kolonner. Denne forespørgsel rammer ikke cachen. Du forventer måske indledningsvist, at den henter CalendarYear-værdier fra cachen og SalesAmount-værdierne fra kilden og derefter kombinerer resultaterne, men denne fremgangsmåde er mindre effektiv end at sende HANDLINGEN SUM/GRUPPÉR EFTER til kildesystemet. Hvis handlingen skubbes ned til kilden, vil antallet af returnerede rækker sandsynligvis være langt mindre:

Screenshot showing the text of query that refers to both the Date table and the Sales table.

Bemærk

Denne funktionsmåde adskiller sig fra mange til mange-relationer i Power BI Desktop, når cachelagrede og ikke-cachelagrede tabeller kombineres.

Cacher skal holdes synkroniserede

De forespørgsler, der blev vist i forrige afsnit, viser, at Dual-tabeller nogle gange rammer cachen og nogle gange ikke. Hvis cachen er forældet, kan der derfor returneres forskellige værdier. Udførelse af forespørgsler forsøger ikke at maskere dataproblemer ved f.eks. at filtrere DirectQuery-resultater, så de stemmer overens med cachelagrede værdier. Det er dit ansvar at kende dine dataflow, og du skal designe i overensstemmelse hermed. Der er etableret teknikker til at håndtere sådanne tilfælde ved kilden, hvis det er nødvendigt.

Dual-lagringstilstanden er en optimering af ydeevnen. Den bør kun bruges på måder, der ikke kompromitterer muligheden for at opfylde forretningsmæssige krav. I forbindelse med alternativ funktionsmåde kan du overveje at bruge de teknikker, der er beskrevet i mange til mange-relationer i Power BI Desktop.

Datavisning

Hvis mindst én tabel i den semantiske model har lagringstilstanden angivet til enten Import eller Dual, kan fanen Datavisning vises.

Screenshot highlighting the Data view icon.

Når du vælger Tabeller med Dual og Import i datavisning , vises cachelagrede data. DirectQuery-tabeller viser ikke data, og der vises en meddelelse om, at DirectQuery-tabeller ikke kan vises.

Overvejelser og begrænsninger

Der er nogle få begrænsninger for den aktuelle version af lagringstilstanden og dens korrelation med sammensatte modeller.

Følgende direkte forbindelseskilder (flerdimensionelle) kan ikke bruges sammen med sammensatte modeller:

  • SAP HANA
  • SAP Business Warehouse

Når du opretter forbindelse til disse flerdimensionelle kilder ved hjælp af DirectQuery, kan du ikke oprette forbindelse til en anden DirectQuery-kilde eller kombinere den med importerede data.

De eksisterende begrænsninger ved brug af DirectQuery gælder stadig, når du bruger sammensatte modeller. Mange af disse begrænsninger er nu pr. tabel, afhængigt af tabellens lagringstilstand. En beregnet kolonne i en importeret tabel kan f.eks. referere til andre tabeller, men en beregnet kolonne i en DirectQuery-tabel er stadig begrænset til kun at referere til kolonner i den samme tabel. Der gælder andre begrænsninger for modellen som helhed, hvis nogen af tabellerne i modellen er DirectQuery.

Du kan finde flere oplysninger om sammensatte modeller og DirectQuery i følgende artikler: