Delen via


Opslagmodus beheren in Power BI Desktop

In Microsoft Power BI Desktop kunt u de opslagmodus van een tabel opgeven. Met de opslagmodus kunt u bepalen of in Power BI Desktop tabelgegevens in het geheugen voor rapporten worden opgeslagen. Caching betekent dat gegevens tijdelijk in het geheugen worden opgeslagen.

Het instellen van de opslagmodus biedt veel voordelen. U kunt de opslagmodus voor elke tabel afzonderlijk in uw model instellen. Met deze actie wordt één semantisch model ingeschakeld, dat de volgende voordelen biedt:

  • Queryprestaties: wanneer gebruikers werken met visuals in Power BI-rapporten, worden DAX-query's (Data Analysis Expressions) verzonden naar het semantische model. Het opslaan van gegevens in het geheugen door de opslagmodus correct in te stellen, kan de queryprestaties en interactiviteit van uw rapporten verbeteren.

  • Grote semantische modellen: tabellen die niet in de cache worden opgeslagen, verbruiken geen geheugen voor cachedoeleinden. U kunt interactieve analyse inschakelen via grote semantische modellen die te groot of duur zijn om volledig in het geheugen op te cachen. U kunt kiezen welke tabellen de cache waard zijn en welke niet.

  • Optimalisatie van gegevensvernieuwing: u hoeft geen tabellen te vernieuwen die niet in de cache zijn opgeslagen. U kunt vernieuwingstijden verminderen door alleen de gegevens in de cache op te slaan die nodig zijn om te voldoen aan uw serviceovereenkomsten en uw zakelijke vereisten.

  • Vereisten voor bijna realtime: tabellen met bijna realtime-vereisten kunnen profiteren van het niet in de cache opslaan om de gegevenslatentie te verminderen.

  • Writeback: Met Writeback kunnen zakelijke gebruikers wat-als-scenario's verkennen door celwaarden te wijzigen. Aangepaste toepassingen kunnen wijzigingen toepassen op de gegevensbron. Tabellen die niet in de cache worden opgeslagen, kunnen wijzigingen onmiddellijk weergeven, waardoor de effecten direct kunnen worden geanalyseerd.

De instelling voor de opslagmodus in Power BI Desktop is een van de drie gerelateerde functies:

  • Samengestelde modellen: Hiermee kan een rapport twee of meer gegevensverbindingen hebben, waaronder DirectQuery-verbindingen of Importeren, in elke combinatie. Zie Samengestelde modellen gebruiken in Power BI Desktop voor meer informatie.

  • Veel-op-veel-relaties: Met samengestelde modellen kunt u veel-op-veel-relaties tussen tabellen tot stand brengen. In een veel-op-veel-relatie worden vereisten verwijderd voor unieke waarden in tabellen. Ook worden eerdere tijdelijke oplossingen verwijderd, zoals het introduceren van nieuwe tabellen om relaties tot stand te brengen. Zie Veel-op-veel-relaties in Power BI Desktop voor meer informatie.

  • Opslagmodus: Met de opslagmodus kunt u nu opgeven welke visuals een query naar back-endgegevensbronnen vereisen. Visuals waarvoor geen query is vereist, worden geïmporteerd, zelfs als ze zijn gebaseerd op DirectQuery. Deze functie helpt de prestaties te verbeteren en de back-endbelasting te verminderen. Voorheen werden zelfs eenvoudige visuals, zoals slicers, geïnitieerde query's gestart die naar back-endbronnen werden verzonden.

De eigenschap Opslagmodus gebruiken

De eigenschap Opslagmodus is een eigenschap die u voor elke tabel in uw model kunt instellen en bepaalt hoe Power BI de tabelgegevens in de cache opbergt.

Als u de eigenschap Opslagmodus wilt instellen of de huidige instelling wilt weergeven:

  1. Selecteer in de modelweergave de tabel waarvan u de eigenschappen wilt weergeven of instellen.

  2. Vouw in het deelvenster Eigenschappen de sectie Geavanceerd uit en vouw de vervolgkeuzelijst Opslagmodus uit.

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

U stelt de eigenschap Opslagmodus in op een van deze drie waarden:

  • Importeren: Geïmporteerde tabellen met deze instelling worden in de cache opgeslagen. Query's die worden verzonden naar het semantische Power BI-model dat gegevens uit importtabellen retourneert, kunnen alleen worden uitgevoerd vanuit gegevens in de cache.

  • DirectQuery: tabellen met deze instelling worden niet in de cache opgeslagen. Query's die u verzendt naar het semantische Power BI-model, bijvoorbeeld DAX-query's, en die gegevens uit DirectQuery-tabellen retourneren, kunnen alleen worden uitgevoerd door query's op aanvraag uit te voeren op de gegevensbron. Query's die u naar de gegevensbron verzendt, gebruiken de querytaal voor die gegevensbron, bijvoorbeeld SQL.

  • Dual: Tabellen met deze instelling kunnen fungeren als in de cache of niet in de cache, afhankelijk van de context van de query die wordt verzonden naar het semantische Power BI-model. In sommige gevallen voert u query's uit in de cache opgeslagen gegevens uit. In andere gevallen voert u query's uit door een on-demand query uit te voeren op de gegevensbron.

Het wijzigen van de opslagmodus van een tabel in Importeren is een onherstelbare bewerking. Nadat deze eigenschap is ingesteld, kan deze later niet meer worden gewijzigd in DirectQuery of Dual.

Notitie

U kunt de dual-opslagmodus gebruiken in zowel Power BI Desktop als de Power BI-service.

Beperkingen voor DirectQuery- en Dual-tabellen

Dubbele tabellen hebben dezelfde functionele beperkingen als DirectQuery-tabellen. Deze beperkingen omvatten beperkte M-transformaties en beperkte DAX-functies in berekende kolommen. Zie DirectQuery-beperkingen voor meer informatie.

Doorgifte van de dual-instelling

Houd rekening met het volgende model, waarbij alle tabellen afkomstig zijn van één bron die import en DirectQuery ondersteunt.

Screenshot of the example Relationship view for storage mode.

Stel dat alle tabellen in dit model in eerste instantie zijn ingesteld op DirectQuery. Als u vervolgens de opslagmodus van de tabel SurveyResponse wijzigt in Importeren, wordt het volgende waarschuwingsvenster weergegeven:

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

U kunt de dimensietabellen (Klant, Geografie en Datum) instellen op Dual om het aantal beperkte relaties in het semantische model te verminderen en de prestaties te verbeteren. Beperkte relaties omvatten normaal gesproken ten minste één DirectQuery-tabel waarbij joinlogica niet naar de bronsystemen kan worden gepusht. Omdat Dual-tabellen kunnen fungeren als DirectQuery- of Importtabellen, wordt deze situatie vermeden.

De doorgiftelogica is ontworpen om te helpen bij modellen die veel tabellen bevatten. Stel dat u een model hebt met 50 tabellen en dat alleen bepaalde feitentabellen (transactionele) tabellen in de cache moeten worden opgeslagen. De logica in Power BI Desktop berekent de minimale set dimensietabellen die moeten worden ingesteld op Dual, zodat u dat niet hoeft te doen.

De doorgiftelogica gaat alleen over de ene kant van een-op-veel-relaties.

Voorbeeld van gebruik van opslagmodus

Stel dat u de volgende eigenschapsinstellingen voor de opslagmodus toepast:

Table Opslagmodus
Verkoop DirectQuery
SurveyResponse Import
Datum Dual
Customer Dual
Geografie Dual

Als u deze eigenschappen van de opslagmodus instelt, resulteert dit in het volgende gedrag, ervan uitgaande dat de tabel Verkoop aanzienlijke gegevensvolumes heeft:

  • In Power BI Desktop worden dimensietabellen, Datum, Klant en Geografie in de cache opgeslagen. Laadtijden van initiële rapporten zijn dus snel wanneer ze slicerwaarden ophalen die moeten worden weergegeven.

  • Power BI Desktop slaat de tabel Sales niet in de cache op. Power BI Desktop biedt de volgende resultaten door deze tabel niet in de cache op te plaatsen:

    • Gegevensvernieuwingstijden worden verbeterd en het geheugenverbruik wordt verminderd.
    • Rapportquery's die zijn gebaseerd op de tabel Verkoop , worden uitgevoerd in de DirectQuery-modus . Deze query's kunnen langer duren, maar zich dichter bij realtime bevinden, omdat er geen cachelatentie wordt geïntroduceerd.
  • Rapportquery's die zijn gebaseerd op de tabel SurveyResponse , worden geretourneerd vanuit de cache in het geheugen en zijn daarom relatief snel.

Query's die de cache raken of missen

Als u SQL Profiler verbindt met de diagnostische poort voor Power BI Desktop, kunt u zien welke query's de cache in het geheugen raken of missen door een tracering uit te voeren die is gebaseerd op de volgende gebeurtenissen:

  • Query's gebeurtenissen\Query begin
  • Queryverwerking\Vertipaq SE-query beginnen
  • Queryverwerking\DirectQuery Begin

Controleer voor elke Query Begin-gebeurtenis andere gebeurtenissen met dezelfde ActivityID. Als er bijvoorbeeld geen DirectQuery Begin-gebeurtenis is, maar er een Vertipaq SE Query Begin-gebeurtenis is, wordt de query beantwoord vanuit de cache.

Query's die verwijzen naar Dual-tabellen retourneren gegevens uit de cache, indien mogelijk; anders keren ze terug naar DirectQuery.

De volgende query wordt voortgezet uit de vorige tabel. Het verwijst alleen naar een kolom uit de tabel Datum, die zich in de dual-modus bevindt. Daarom moet de query de cache raken:

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

De volgende query verwijst alleen naar een kolom uit de tabel Sales, die zich in de DirectQuery-modus bevindt. Daarom mag deze niet op de cache drukken:

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

De volgende query is interessant omdat beide kolommen worden gecombineerd. Deze query raakt de cache niet. U kunt in eerste instantie verwachten dat deze CalendarYear-waarden ophaalt uit de cache en SalesAmount-waarden uit de bron en vervolgens de resultaten combineert, maar deze methode is minder efficiënt dan het verzenden van de BEWERKING SUM/GROUP BY naar het bronsysteem. Als de bewerking naar de bron wordt gepusht, is het aantal geretourneerde rijen waarschijnlijk veel minder:

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

Notitie

Dit gedrag verschilt van veel-op-veel-relaties in Power BI Desktop wanneer tabellen in de cache en niet-in de cache worden gecombineerd.

Caches moeten gesynchroniseerd worden gehouden

De query's die in de vorige sectie worden weergegeven, laten zien dat Dual-tabellen soms de cache raken en soms niet. Als de cache verouderd is, kunnen er verschillende waarden worden geretourneerd. Bij het uitvoeren van query's wordt niet geprobeerd om gegevensproblemen te maskeren, bijvoorbeeld door DirectQuery-resultaten te filteren op overeenkomende waarden in de cache. Het is uw verantwoordelijkheid om uw gegevensstromen te kennen en u moet dienovereenkomstig ontwerpen. Er zijn vastgestelde technieken om dergelijke gevallen bij de bron af te handelen, indien nodig.

De dual-opslagmodus is een optimalisatie van prestaties. Het moet alleen worden gebruikt op manieren die niet in gevaar komen voor de mogelijkheid om te voldoen aan bedrijfsvereisten. Voor alternatief gedrag kunt u overwegen de technieken te gebruiken die worden beschreven in de veel-op-veel-relaties in Power BI Desktop.

Gegevensweergave

Als ten minste één tabel in het semantische model de opslagmodus heeft ingesteld op Importeren of Dual, kan het tabblad Gegevensweergave worden weergegeven.

Screenshot highlighting the Data view icon.

Wanneer u Dual- en Import-tabellen selecteert in de gegevensweergave, worden gegevens in de cache weergegeven. DirectQuery-tabellen bevatten geen gegevens en er wordt een bericht weergegeven waarin staat dat DirectQuery-tabellen niet kunnen worden weergegeven.

Overwegingen en beperkingen

Er zijn enkele beperkingen voor de huidige release van de opslagmodus en de correlatie met samengestelde modellen.

De volgende bronnen voor liveverbindingen (multidimensionaal) kunnen niet worden gebruikt met samengestelde modellen:

  • SAP HANA
  • SAP Business Warehouse

Wanneer u verbinding maakt met deze multidimensionale bronnen met Behulp van DirectQuery, kunt u geen verbinding maken met een andere DirectQuery-bron of deze combineren met geïmporteerde gegevens.

De bestaande beperkingen van het gebruik van DirectQuery gelden nog steeds wanneer u samengestelde modellen gebruikt. Veel van deze beperkingen zijn nu per tabel, afhankelijk van de opslagmodus van de tabel. Een berekende kolom in een geïmporteerde tabel kan bijvoorbeeld verwijzen naar andere tabellen, maar een berekende kolom in een DirectQuery-tabel is nog steeds beperkt om alleen te verwijzen naar kolommen in dezelfde tabel. Andere beperkingen gelden voor het model als geheel, als een van de tabellen in het model DirectQuery is.

Zie de volgende artikelen voor meer informatie over samengestelde modellen en DirectQuery: