Opslagmodus in Power BI Desktop beherenManage storage mode in Power BI Desktop

In Microsoft Power BI Desktop kunt u de opslagmodus van een tabel opgeven.In Microsoft Power BI Desktop, you can specify the storage mode of a table. Met de opslagmodus kunt u bepalen of tabelgegevens voor rapporten in een geheugencache worden opgeslagen in Power BI Desktop.The storage mode lets you control whether Power BI Desktop caches table data in-memory for reports.

Het instellen van de opslagmodus biedt verschillende voordelen.Setting the storage mode provides many advantages. U kunt de opslagmodus afzonderlijk instellen voor elke tabel in uw model.You can set the storage mode for each table individually in your model. Met deze actie wordt een enkele gegevensset ingeschakeld, wat de volgende voordelen biedt:This action enables a single dataset, which provides the following benefits:

  • Queryprestaties: terwijl gebruikers werken met visualisaties in Power BI-rapporten, worden er DAX-query's (Data Analysis Expressions) verzonden naar de gegevensset.Query performance: As users interact with visuals in Power BI reports, Data Analysis Expressions (DAX) queries are submitted to the dataset. Het opslaan van gegevens in het cachegeheugen door het juist instellen van de opslagmodus kan de queryprestaties en de interactiviteit van uw rapporten verbeteren.Caching data into memory by properly setting the storage mode can boost the query performance and interactivity of your reports.

  • Grote gegevenssets: tabellen die niet in het cachegeheugen worden opgeslagen, verbruiken geen geheugen voor cachebewerkingen.Large datasets: Tables that aren't cached don't consume memory for caching purposes. U kunt interactieve analyse inschakelen voor grote gegevenssets die te groot of te duur zijn om volledig op te slaan in het cachegeheugen.You can enable interactive analysis over large datasets that are too large or expensive to completely cache into memory. U kunt kiezen welke tabellen moeten worden opgeslagen in de cache en welke niet.You can choose which tables are worth caching, and which aren't.

  • Optimalisatie van gegevensvernieuwing: U hoeft tabellen die niet in de cache worden opgeslagen niet te vernieuwen.Data refresh optimization: You don't need to refresh tables that aren't cached. U kunt de vernieuwingstijden beperken door alleen de gegevens op te slaan in de cache die noodzakelijk zijn om te voldoen aan de serviceovereenkomsten en uw zakelijke vereisten.You can reduce refresh times by caching only the data that's necessary to meet your service level agreements and your business requirements.

  • Vereisten voor bijna realtime gegevens: voor tabellen met gegevens die in bijna realtime beschikbaar moeten zijn, kan het beter zijn om de gegevens niet in de cache op te slaan, om zo gegevenslatentie te verminderen.Near-real time requirements: Tables with near-real time requirements might benefit from not being cached, to reduce data latency.

  • Terugschrijven: terugschrijven (write-back) stelt zakelijke gebruikers in staat om what-if-scenario's te verkennen door celwaarden te wijzigen.Writeback: Writeback enables business users to explore what-if scenarios by changing cell values. Maatwerktoepassingen kunnen wijzigingen aanbrengen in de gegevensbron.Custom applications can apply changes to the data source. In tabellen die niet in de cache worden opgeslagen, worden wijzigingen direct weergegeven, waardoor de effecten direct kunnen worden geanalyseerd.Tables that aren't cached can display changes immediately, which allows instant analysis of the effects.

De opslagmodusinstelling in Power BI Desktop is een van drie gerelateerde functies:The storage mode setting in Power BI Desktop is one of three related features:

  • Samengestelde modellen: hiermee wordt het mogelijk dat een rapport twee of meer gegevensverbindingen heeft, inclusief DirectQuery-verbindingen of importverbindingen, in elke gewenste combinatie.Composite models: Allows a report to have two or more data connections, including DirectQuery connections or Import, in any combination. Zie Samengestelde modellen in Power BI Desktop gebruiken voor meer informatie.For more information, see Use composite models in Power BI Desktop.

  • Veel-op-veel-relaties: Met samengestelde modellen kunt u veel-op-veel-relaties tussen tabellen tot stand brengen.Many-to-many relationships: With composite models, you can establish many-to-many relationships between tables. In een veel-op-veel-relatie zijn unieke waarden in tabellen niet meer vereist.In a many-to-many relationship, requirements are removed for unique values in tables. Ook zijn eerdere tijdelijke oplossingen niet meer nodig, zoals de introductie van nieuwe tabellen alleen maar voor het tot stand brengen van relaties.It also removes prior workarounds, such as introducing new tables only to establish relationships. Zie Veel-op-veel-relaties in Power BI Desktop voor meer informatie.For more information, see Many-to-many relationships in Power BI Desktop.

  • Opslagmodus: Met de opslagmodus kunt u nu opgeven voor welke visualisaties een query naar de back-endgegevensbronnen is vereist.Storage mode: With storage mode, you can now specify which visuals require a query to back-end data sources. Visuals waarvoor geen query is vereist, worden geïmporteerd zelfs als ze zijn gebaseerd op DirectQuery.Visuals that don't require a query are imported even if they're based on DirectQuery. De functie helpt de prestaties te verbeteren en de back-end minder te belasten.This feature helps improve performance and reduce back-end load. Eerder werden zelfs voor eenvoudige visualisaties, zoals slicers, query's verzonden naar de back-end-bronnen.Previously, even simple visuals, such as slicers, initiated queries that were sent to back-end sources.

De opslagmoduseigenschap gebruikenUse the Storage mode property

De eigenschap Opslagmodus is een eigenschap die u kunt instellen voor elke tabel in uw model. U bepaalt hiermee hoe Power BI de tabelgegevens in de cache opslaat.The Storage mode property is a property that you can set on each table in your model and controls how Power BI caches the table data.

De eigenschap Opslagmodus instellen of de huidige instelling ervan weergeven:To set the Storage mode property, or view its current setting:

  1. Selecteer in de weergave Model de tabel waarvan u de eigenschappen wilt weergeven of instellen.in Model view, select the table whose properties you want to view or set.

  2. Vouw in het deelvenster Eigenschappen het gedeelte Geavanceerd uit en vouw de vervolgkeuzelijst Opslagmodus uit.In the Properties pane, expand the Advanced section, and expand the Storage mode drop-down.

    De eigenschap Opslagmodus selecteren

Stel de eigenschap Opslagmodus in op een van deze drie waarden:You set the Storage mode property to one of these three values:

  • Importeren: Geïmporteerde tabellen met deze instelling worden opgeslagen in de cache.Import: Imported tables with this setting are cached. Query's die worden verzonden naar de Power BI-gegevensset die gegevens retourneren uit importtabellen, kunnen alleen worden uitgevoerd aan de hand van gegevens in de cache.Queries submitted to the Power BI dataset that return data from Import tables can be fulfilled only from cached data.

  • DirectQuery: Tabellen met deze instelling worden niet in de cache opgeslagen.DirectQuery: Tables with this setting aren't cached. Query's die u verzendt naar de Power BI-gegevensset, —zoals DAX-query's—, en waarmee gegevens uit DirectQuery-tabellen worden geretourneerd, kunnen alleen worden voltooid door query's op aanvraag uit te voeren op de gegevensbron.Queries that you submit to the Power BI dataset—for example, DAX queries—and that return data from DirectQuery tables can be fulfilled only by executing on-demand queries to the data source. Query's die u verzendt naar de gegevensbron, gebruiken de querytaal voor deze gegevensbron, bijvoorbeeld SQL.Queries that you submit to the data source use the query language for that data source, for example, SQL.

  • Dual: Tabellen met deze instelling worden al dan niet in de cache opgeslagen, afhankelijk van de context van de query die wordt verzonden naar de Power BI-gegevensset.Dual: Tables with this setting can act as either cached or not cached, depending on the context of the query that's submitted to the Power BI dataset. In sommige gevallen voert u query's uit vanuit de gegevens in de cache.In some cases, you fulfill queries from cached data. In andere gevallen voert u query’s uit door een query op aanvraag uit te voeren voor de gegevensbron.In other cases, you fulfill queries by executing an on-demand query to the data source.

Het wijzigen van de Opslagmodus van een tabel in Import is een onomkeerbare bewerking.Changing the Storage mode of a table to Import is an irreversible operation. Deze eigenschap kan niet worden gewijzigd in DirectQuery of Dual.Once set, this property can't later be changed to either DirectQuery or Dual.

Notitie

U kunt de opslagmodus Dual in Power BI Desktop en in de Power BI-service gebruiken.You can use Dual storage mode in both Power BI Desktop and the Power BI service.

Beperkingen voor DirectQuery- en Dual-tabellenConstraints on DirectQuery and Dual tables

Voor Dual-tabellen gelden dezelfde functionele beperkingen als voor DirectQuery-tabellen.Dual tables have the same functional constraints as DirectQuery tables. Deze beperkingen omvatten beperkte M-transformaties en beperkte DAX-functies in berekende kolommen.These constraints include limited M transformations and restricted DAX functions in calculated columns. Zie Gevolgen van het gebruik van DirectQuery voor meer informatie.For more information, see Implications of using DirectQuery.

Doorgifte van de Dual-instellingPropagation of the Dual setting

In dit eenvoudige model zijn alle tabellen afkomstig uit één bron, die ondersteuning biedt voor de opslagmodi Importeren en DirectQuery.Consider the following simple model, where all the tables are from a single source that supports Import and DirectQuery.

Voorbeeld van relatieweergave voor opslagmodus

Stel dat alle tabellen in dit model in eerste instantie zijn ingesteld op DirectQuery.Let’s say all tables in this model are initially set to DirectQuery. Als u nu de opslagmodus van de tabel SurveyResponse wijzigt in Import, wordt het volgende waarschuwingsvenster weergegeven:If you then change the Storage mode of the SurveyResponse table to Import, the following warning window is displayed:

Waarschuwingsvenster voor opslagmodus

U kunt de dimensietabellen (Klant, Geografie en Datum) instellen op Dual om het aantal zwakke relaties in de gegevensset te verminderen en de prestaties te verbeteren.You can set the dimension tables (Customer, Geography, and Date) to Dual to reduce the number of weak relationships in the dataset, and improve performance. Zwakke relaties bestaan doorgaans uit ten minste één DirectQuery-tabel waarin samenvoeglogica niet naar de bronsystemen kan worden gepusht.Weak relationships normally involve at least one DirectQuery table where join logic can't be pushed to the source systems. Omdat Dual-tabellen kunnen fungeren als DirectQuery- of Import-tabellen, wordt deze situatie vermeden.Because Dual tables can act as either DirectQuery or Import tables, this situation is avoided.

De doorgiftelogica is namelijk ontworpen om u te helpen met modellen die veel tabellen bevatten.The propagation logic is designed to help with models that contain many tables. Stel dat u een model hebt met 50 tabellen en dat alleen bepaalde feitentabellen (met transacties) in de cache moeten worden opgeslagen.Suppose you have a model with 50 tables and only certain fact (transactional) tables need to be cached. Met de logica in Power BI Desktop worden berekend wat de minimale set met dimensietabellen is die moet worden ingesteld op Dual, zodat u dit niet hoeft te doen.The logic in Power BI Desktop calculates the minimum set of dimension tables that must be set to Dual, so you don’t have to.

De doorgiftelogica wordt slechts aan de een-zijde van een-op-veel-relaties doorlopen.The propagation logic traverses only to the one side of one-to-many relationships.

Praktijkvoorbeeld van opslagmodusStorage mode usage example

Laten we verdergaan met het voorbeeld uit het vorige gedeelte en doen alsof we de volgende instellingen van de eigenschap opslagmodus toepassen:Let's continue with the example from the previous section, and imagine applying the following storage mode property settings:

TabelTable OpslagmodusStorage mode
VerkoopSales DirectQueryDirectQuery
SurveyResponseSurveyResponse ImporterenImport
DatumDate DualDual
KlantCustomer DualDual
GeografieGeography DualDual

Het instellen van deze eigenschappen van de opslagmodus resulteert in de volgende gedragingen, ervan uitgaande dat de tabel Sales voldoende gegevens bevat:Setting these storage mode properties results in the following behaviors, assuming that the Sales table has significant data volume:

  • Dimensietabellen - Date, Customer en Geography, worden in de cache opgeslagen in Power BI Desktop, zodat de laadtijden van rapporten kort zijn bij het ophalen van slicerwaarden om weer te geven.Power BI Desktop caches dimension tables, Date, Customer, and Geography, so load times of initial reports are fast when they retrieve slicer values to display.

  • Power BI Desktop slaat de tabel Verkoop niet op in de cache.Power BI Desktop doesn't cache the Sales table. Door deze tabel niet in de cache op te slaan, biedt Power BI Desktop de volgende resultaten:By not caching this table, Power BI Desktop provides the following results:

    • De vernieuwingsintervallen van gegevens zijn korter en het geheugenverbruik is lager.Data-refresh times are improved, and memory consumption is reduced.
    • Rapportquery’s die zijn gebaseerd op de tabel Sales, worden uitgevoerd in de modus DirectQuery.Report queries that are based on the Sales table run in DirectQuery mode. Deze query’s duren langer maar liggen dichter bij realtime omdat er geen cachingvertraging optreedt.These queries might take longer but are closer to real time because no caching latency is introduced.
  • Rapportquery's die zijn gebaseerd op de tabel SurveyResponse, worden geretourneerd uit de geheugencache en zijn daarom relatief snel.Report queries that are based on the SurveyResponse table are returned from the in-memory cache, and are therefore relatively fast.

Query's op de cache die wel of geen hit opleverenQueries that hit or miss the cache

Als u SQL Profiler met de diagnostische poort voor Power BI Desktop verbindt, kunt u zien welke query's op de cache succesvol zijn of mislukken door een trace uit te voeren die is gebaseerd op de volgende gebeurtenissen:If you connect SQL Profiler to the diagnostics port for Power BI Desktop, you can see which queries hit or miss the in-memory cache by performing a trace that's based on the following events:

  • Queries Events\Query BeginQueries Events\Query Begin
  • Query Processing\Vertipaq SE Query BeginQuery Processing\Vertipaq SE Query Begin
  • Query Processing\DirectQuery BeginQuery Processing\DirectQuery Begin

Voor elke gebeurtenis Query Begin controleert u andere gebeurtenissen met dezelfde ActivityID.For each Query Begin event, check other events with the same ActivityID. Als er bijvoorbeeld geen gebeurtenis DirectQuery Begin is, maar wel een gebeurtenis Vertipaq SE-Query Begin, wordt de query beantwoord vanuit de cache.For example, if there isn't a DirectQuery Begin event, but there's a Vertipaq SE Query Begin event, the query is answered from the cache.

Met query's die verwijzen naar Dual-tabellen worden gegevens uit de cache geretourneerd, indien mogelijk, anders vallen ze terug op DirectQuery.Queries that refer to Dual tables return data from the cache, if possible; otherwise, they revert to DirectQuery.

Als we verdergaan met het vorige voorbeeld, verwijst de volgende query alleen naar een kolom uit de tabel Date, die is ingesteld als Dual.Continuing the previous example, the following query refers only to a column from the Date table, which is in Dual mode. De query moet daarom een hit geven uit de cache:Therefore, the query should hit the cache:

Script voor diagnose van opslagmodus

De volgende query verwijst alleen naar een kolom uit de tabel Sales, die in de modus DirectQuery staat.The following query refers only to a column from the Sales table, which is in DirectQuery mode. De query moet daarom geen hit opleveren uit de cache:Therefore, it should not hit the cache:

Script voor diagnose van opslagmodus

De volgende query is interessant omdat hierin beide kolommen worden gecombineerd.The following query is interesting because it combines both columns. Deze query levert geen hit op uit de cache.This query doesn't hit the cache. In eerste instantie verwacht u dat er CalendarYear-waarden worden opgehaald uit de cache en SalesAmount-waarden uit de bron en dat de resultaten vervolgens worden gecombineerd. Deze aanpak is echter minder efficiënt dan het verzenden van de bewerking SUM/GROUP BY naar het bronsysteem.You might initially expect it to retrieve CalendarYear values from the cache and SalesAmount values from the source and then combine the results, but this approach is less efficient than submitting the SUM/GROUP BY operation to the source system. Als de bewerking naar de bron wordt gepusht, zal het aantal geretourneerde rijen waarschijnlijk veel lager zijn:If the operation is pushed down to the source, the number of rows returned will likely be far less:

Script voor diagnose van opslagmodus

Notitie

Dit gedrag verschilt van veel-op-veel-relaties in Power BI Desktop waarbij tabellen die wel en tabellen die niet in de cache zijn opgeslagen, worden gecombineerd.This behavior is different from many-to-many relationships in Power BI Desktop when cached and non-cached tables are combined.

Caches moeten steeds worden gesynchroniseerdCaches should be kept in sync

De query's in het vorige gedeelte laten zien dat Dual-tabellen soms wel een hit opleveren uit de cache en soms niet.The queries displayed in the previous section show that Dual tables sometimes hit the cache and sometimes don't. Als gevolg hiervan kunnen er verschillende waarden worden geretourneerd wanneer de cache is verouderd.As a result, if the cache is out of date, different values can be returned. Bij het uitvoeren van query's wordt er niet geprobeerd om gegevensproblemen te maskeren, bijvoorbeeld door DirectQuery resultaten te filteren zodat deze overeenkomen met de waarden in de cache.Query execution won't attempt to mask data issues by, for example, filtering DirectQuery results to match cached values. Het is uw verantwoordelijkheid om te weten hoe de gegevensstromen lopen en uw ontwerp hierop af te stemmen.It's your responsibility to know your data flows, and you should design accordingly. Er zijn in de praktijk bewezen technieken om dergelijke gevallen bij de bron af te handelen, indien nodig.There are established techniques to handle such cases at the source, if necessary.

De opslagmodus Dual biedt een optimalisatie van prestaties.The Dual storage mode is a performance optimization. Gebruik de modus alleen op manieren die geen conflict opleveren met het voldoen aan zakelijke vereisten.It should be used only in ways that don't compromise the ability to meet business requirements. Voor een alternatieve aanpak kunt u de technieken overwegen die worden beschreven in het artikel Veel-op-veel-relaties in Power BI Desktop.For alternative behavior, consider using the techniques described in the Many-to-many relationships in Power BI Desktop.

GegevensweergaveData view

Als voor minstens één tabel in de gegevensset de opslagmodus is ingesteld op Import of Dual, kan het tabblad Gegevensweergave worden weergegeven.If at least one table in the dataset has its storage mode set to either Import or Dual, the Data view tab is displayable.

Gegevensweergave in Power BI Desktop

Wanneer u Dual- en Import-tabellen selecteert in de weergave Gegevens, geven deze gegevens uit de cache weer.When you select Dual and Import tables in Data view, they show cached data. DirectQuery-tabellen bevatten geen gegevens. U ziet een bericht met de mededeling dat DirectQuery tabellen niet kunnen worden weergegeven.DirectQuery tables don't show data, and a message is displayed that states that DirectQuery tables can't be shown.

Beperkingen en overwegingenLimitations and considerations

Er gelden enkele beperkingen voor deze release van de opslagmodus, en de correlatie ervan met samengestelde modellen.There are a few limitations for this release of storage mode and its correlation with composite models.

De volgende (multidimensionale) liveverbindingsbronnen kunnen niet worden gebruikt met samengestelde modellen:The following live connection (multi-dimensional) sources can't be used with composite models:

  • SAP HANASAP HANA
  • SAP Business WarehouseSAP Business Warehouse
  • SQL Server Analysis ServicesSQL Server Analysis Services
  • Power BI-gegevenssetsPower BI datasets
  • Azure Analysis ServicesAzure Analysis Services

Als u met behulp van DirectQuery verbinding maakt met deze multidimensionale bronnen, is het mogelijk om verbinding te maken met een andere DirectQuery-bron of deze te combineren met geïmporteerde gegevens.When you connect to those multi-dimensional sources by using DirectQuery, you can't connect to another DirectQuery source or combine it with imported data.

De bestaande beperkingen van het gebruik van DirectQuery gelden nog steeds wanneer u samengestelde modellen gebruikt.The existing limitations of using DirectQuery still apply when you use composite models. Veel van deze beperkingen zijn nu per tabel, al naar gelang de opslagmodus van de tabel.Many of those limitations are now per table, depending upon the storage mode of the table. Zo kan een berekende kolom in een geïmporteerde tabel verwijzen naar andere tabellen, maar kan een berekende kolom in een DirectQuery-tabel nog steeds alleen verwijzen naar kolommen in dezelfde tabel.For example, a calculated column on an imported table can refer to other tables, but a calculated column on a DirectQuery table is still restricted to refer only to columns on the same table. Andere beperkingen gelden voor het model als geheel, als een van de tabellen in het model DirectQuery gebruikt.Other limitations apply to the model as a whole, if any of the tables within the model are DirectQuery. De functies Snelle inzichten en Q&A zijn bijvoorbeeld niet beschikbaar voor een model als een van de tabellen in het model de opslagmodus DirectQuery heeft.For example, the QuickInsights and Q&A features aren't available on a model if any of the tables within it has a storage mode of DirectQuery.

Volgende stappenNext steps

Zie de volgende artikelen voor meer informatie over samengestelde modellen en DirectQuery:For more information about composite models and DirectQuery, see the following articles: