Del via


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: I takt med at 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 cachelagring. 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å flere oplysninger i 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 Storage er en egenskab, som du kan angive for hver tabel i din model og styre, hvordan Power BI cachelagrer tabeldataene.

Hvis du vil angive lagringstilstand egenskab eller få vist dens aktuelle indstilling:

  1. I model visning skal du vælge den tabel, hvis egenskaber du vil have vist eller angive.

  2. I ruden egenskaber for skal du udvide afsnittet Avancerede og udvide rullelisten Lagringstilstand.

    Skærmbillede af relationsvisning, skal du fremhæve rullelisten med indstillinger for at ændre lagringstilstanden.

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

  • Importér: 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 Lagringstilstand i en tabel til Importér er en handling, der ikke kan fortrydes. Når denne egenskab er angivet, kan den ikke senere ændres til enten DirectQuery- eller Dual.

Seddel

Du kan bruge lagringstilstanden Dual i både Power BI Desktop og Power BI-tjenesten.

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.

Skærmbillede af eksempelvisningen Relations for lagringstilstand.

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

Skærmbillede, der viser et advarselsvindue, der beskriver resultaterne af at ændre lagringstilstanden til Import.

Du kan angive dimensionstabellerne (Customer, Geographyog Date) 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å du ikke behøver at gøre det.

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:

Bord Lagringstilstand
Salg DirectQuery
Svar på undersøgelse Import
Dato Dobbelt
Kunde 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, Customerog Geography, så indlæsningstiderne 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 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 Dato, som er i Dual--tilstand. Forespørgslen skal derfor ramme cachen:

Skærmbillede, der viser teksten i forespørgslen, der refererer til tabellen Date.

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

Skærmbillede, der viser teksten i forespørgslen, der refererer til tabellen Sales.

Følgende forespørgsel er interessant, fordi den kombinerer begge kolonner. Denne forespørgsel rammer ikke cachen. Du forventer måske, at den først henter CalendarYear- værdier fra cachen og SalesAmount værdier 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:

Skærmbillede, der viser teksten i forespørgslen, der refererer til både tabellen Date og tabellen Sales.

Seddel

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.

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

Tabelvisning

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

Skærmbillede, der fremhæver ikonet Tabelvisning.

Når du vælger Tabeller med Dual og Import i Tabel visning, 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: