Gegevenssetmodi in de Power BI-serviceDataset modes in the Power BI service

Dit artikel bevat een technische uitleg van Power BI-gegevenssetsmodi.This article provides a technical explanation of Power BI dataset modes. Deze uitleg is van toepassing op gegevenssets met een liveverbinding met een extern gehost Analysis Services model en ook op modellen die zijn ontwikkeld in Power BI Desktop.It applies to datasets that represent a live connection to an external-hosted Analysis Services model, and also to models developed in Power BI Desktop. In het artikel wordt de motivering voor elke modus benadrukt en de mogelijke impact op de resources van Power BI capaciteit.The article emphasizes the rationale for each mode, and possible impacts on Power BI capacity resources.

De drie gegevenssetmodi zijn:The three dataset modes are:

ImportmodusImport mode

De importmodus is de meest gebruikte modus voor het ontwikkelen van modellen.Import mode is the most common mode used to develop models. Deze modus biedt extreem snelle prestaties doordat query's worden uitgevoerd in het geheugen.This mode delivers extremely fast performance thanks to in-memory querying. Het biedt ook ontwerpflexibiliteit voor modelmakers en ondersteuning voor specifieke functies van de Power BI-service (Q&A, snelle inzichten, enzovoort).It also offers design flexibility to modelers, and support for specific Power BI service features (Q&A, Quick Insights, etc.). Vanwege deze sterke punten is dit de standaardmodus bij het maken van een nieuwe Power BI Desktop-oplossing.Because of these strengths, it's the default mode when creating a new Power BI Desktop solution.

Het is belangrijk te begrijpen dat geïmporteerde gegevens altijd op schijf worden opgeslagen.It's important to understand that imported data is always stored to disk. Wanneer een query wordt uitgevoerd of vernieuwd, moeten de gegevens volledig worden geladen in het geheugen van de Power BI-capaciteit.When queried or refreshed, the data must be fully loaded into memory of the Power BI capacity. Als de gegevens eenmaal in het geheugen zijn geladen, kunnen er met importmodellen zeer snelle queryresultaten worden behaald.Once in memory, Import models can then achieve very fast query results. Het is ook belangrijk te begrijpen dat het niet mogelijk is om een importmodel gedeeltelijk in het geheugen te geladen.It's also important to understand that there's no concept of an Import model being partially loaded into memory.

Bij het vernieuwen worden gegevens gecomprimeerd en geoptimaliseerd en vervolgens met de VertiPaq-opslagengine op schijf opgeslagen.When refreshed, data is compressed and optimized and then stored to disk by the VertiPaq storage engine. Bij het laden in het geheugen vanaf schijf is een compressiefactor van 10 mogelijk.When loaded from disk into memory, it's possible to see 10x compression. Daarom is het redelijk te verwachten dat 10 GB aan brongegevens kan worden gecomprimeerd tot een grootte van ongeveer 1 GB.So, it's reasonable to expect that 10 GB of source data can compress to about 1 GB in size. De opslaggrootte op schijf kan 20% van de gecomprimeerde grootte afnemen.Storage size on disk can achieve a 20% reduction from the compressed size. (Het verschil in grootte kan worden bepaald door de Power BI Desktop-bestandsgrootte te vergelijken met het Taakbeheer-geheugengebruik van het bestand.)(The difference in size can be determined by comparing the Power BI Desktop file size with the Task Manager memory usage of the file.)

Ontwerpflexibiliteit kan op drie manieren worden bereikt.Design flexibility can be achieved in three ways. Gegevensmodelmakers kunnen:Data modelers can:

  • Gegevens integreren door gegevens van gegevensstromen en externe gegevensbronnen, ongeacht het gegevensbrontype of de bestandsindeling, in de cache te plaatsenIntegrate data by caching data from dataflows, and external data sources, whatever the data source type or format
  • Gebruikmaken van alle functies van de Power Query-formuletaal (informeel M genoemd) bij het maken van query's voor gegevensvoorbereidingLeverage the entire set of Power Query Formula Language (informally referred to as M) functions when creating data preparation queries
  • Gebruikmaken van alle functies van Data Analysis Expressions (DAX) bij het uitbreiden van het model met bedrijfslogica.Leverage the entire set of Data Analysis Expressions (DAX) functions when enhancing the model with business logic. Er wordt ondersteuning geboden voor berekende kolommen, berekende tabellen en metingen.There's support for calculated columns, calculated tables, and measures.

Zoals in de volgende afbeelding wordt weergegeven, kan een importmodel gegevens van elk gewenst aantal ondersteunde gegevensbrontypen integreren.As shown in the following image, an Import model can integrate data from any number of supported data source types.

Een importmodel kan gegevens van elk gewenst aantal externe gegevensbrontypen integreren

Hoewel importmodellen aantrekkelijke voordelen hebben, zijn er ook nadelen:However, while there are compelling advantages associated with Import models, there are disadvantages, too:

  • Het volledige model moet in het geheugen worden geladen voordat Power BI het model kan opvragen. Dit kan de beschikbare capaciteitsresources onder druk zetten, vooral als het aantal en de grootte van de importmodellen toenemenThe entire model must be loaded to memory before Power BI can query the model, which can place pressure on available capacity resources, especially as the number and size of Import models grow

  • Modelgegevens zijn slechts zo up-to-date als de laatste vernieuwing. Daarom moeten importmodellen worden vernieuwd, gewoonlijk volgens een bepaald schemaModel data is only as current as the latest refresh, and so Import models need to be refreshed, usually on a scheduled basis

  • Bij een volledige vernieuwing worden alle gegevens uit alle tabellen verwijderd en opnieuw vanuit de gegevensbron geladen.A full refresh will remove all data from all tables and reload it from the data source. Deze bewerking kan kostbaar zijn qua tijd en resources voor de Power BI-service en de gegevensbron(nen).This operation can be expensive in terms of time and resources for the Power BI service, and the data source(s).

    Notitie

    Power BI kan incrementeel vernieuwen om te voorkomen dat hele tabellen worden afgekapt en opnieuw geladen.Power BI can achieve incremental refresh to avoid truncating and reloading entire tables. Deze functie wordt echter alleen ondersteund als de gegevensset wordt gehost in werkruimten op Premium-capaciteiten.However, this feature is only supported when the dataset is hosted in workspaces on Premium capacities. Zie het artikel Incrementeel vernieuwen in Power BI Premium voor meer informatie.For more information, see the Incremental refresh in Power BI Premium article.

Vanuit het perspectief van resources van de Power BI-service is het volgende vereist voor importmodellen:From a Power BI service resource perspective, Import models require:

  • Voldoende geheugen om het model te laden wanneer het wordt opgevraagd of vernieuwdSufficient memory to load the model when it's queried or refreshed
  • Verwerkingsresources en aanvullende geheugenresources om gegevens te vernieuwenProcessing resources and additional memory resources to refresh data

DirectQuery-modusDirectQuery mode

De DirectQuery-modus is een alternatief voor de importmodus.DirectQuery mode is an alternative to Import mode. In modellen die worden ontwikkeld in de DirectQuery-modus, worden geen gegevens geïmporteerd.Models developed in DirectQuery mode don't import data. In plaats daarvan bestaan ze alleen uit metagegevens waarmee de modelstructuur wordt gedefinieerd.Instead, they consist only of metadata defining the model structure. Wanneer het model wordt opgevraagd, worden er systeemeigen query's gebruikt om gegevens op te halen uit de onderliggende gegevensbron.When the model is queried, native queries are used to retrieve data from the underlying data source.

Een DirectQuery-model verzendt systeemeigen query's naar de onderliggende gegevensbron

Er zijn twee belangrijke redenen om te overwegen een DirectQuery-model te ontwikkelen:There are two main reasons to consider developing a DirectQuery model:

  • Wanneer de gegevens volumes te groot zijn om in een model te laden of te worden vernieuwd, zelfs wanneer er methoden voor gegevensreductie worden toegepastWhen data volumes are too large - even when data reduction methods are applied - to load into a model, or practically refresh
  • Wanneer rapporten en dashboards 'near realtime' gegevens moeten leveren, buiten wat kan worden bereikt binnen de geplande vernieuwingslimieten.When reports and dashboards need to deliver "near real-time" data, beyond what can be achieved within scheduled refresh limits. (De geplande vernieuwingslimieten zijn 8 keer per dag voor gedeelde capaciteit, en 48 keer per dag voor een Premium-capaciteit.)(Scheduled refresh limits are eight times a day for shared capacity, and 48 times a day for a Premium capacity.)

DirectQuery-modellen bieden verschillende voordelen:There are several advantages associated with DirectQuery models:

  • De groottelimieten voor importmodellen zijn niet van toepassingImport model size limits don't apply
  • Modellen hoeven niet te worden vernieuwdModels don't require refresh
  • Rapportgebruikers krijgen de meeste recente gegevens te zien bij interactie met rapportfilters en slicers.Report users will see the latest data when interacting with report filters and slicers. Rapportgebruikers kunnen ook het hele rapport vernieuwen om actuele gegevens op te halen.Also, report users can refresh the entire report to retrieve current data.
  • Realtimerapporten kunnen worden ontwikkeld met behulp van de functie Pagina automatisch vernieuwenReal-time reports can be developed by using the Automatic page refresh feature
  • Dashboardtegels op basis van DirectQuery-modellen kunnen regelmatig automatisch worden bijgewerkt, tot zelfs elke 15 minutenDashboard tiles, when based on DirectQuery models, can update automatically as frequently as every 15 minutes

DirectQuery-modellen hebben echter ook bepaalde beperkingen:However, there are some limitations associated with DirectQuery models:

  • In DAX-formules mogen alleen functies worden gebruikt die kunnen worden getransponeerd naar systeemeigen query's die compatibel zijn met de gegevensbron.DAX formulas are limited to use only functions that can be transposed to native queries understood by the data source. Berekende tabellen worden niet ondersteund.Calculated tables are not supported.
  • De functies Q&A en Snelle inzichten worden niet ondersteundQ&A and Quick Insights features aren't supported

Vanuit het perspectief van resources van de Power BI-service is het volgende vereist voor DirectQuery-modellen:From a Power BI service resource perspective, DirectQuery models require:

  • Er is weinig geheugen nodig om het model te laden (alleen metagegevens) bij het uitvoeren van query'sMinimal memory to load the model (metadata only) when it's queried
  • Soms vraagt de Power BI-service veel processorcapaciteit voor het genereren en verwerken van query's die naar de gegevensbron worden verzonden.Sometimes the Power BI service must use significant processor resources to generate and process queries sent to the data source. Wanneer deze situatie zich voordoet, kan dit van invloed zijn op de doorvoer, met name wanneer meerdere gebruikers tegelijk een query uitvoeren op het model.When this situation arises, it can impact throughput, especially when concurrent users are querying the model.

Zie DirectQuery gebruiken in Power BI Desktop voor meer informatie.For more information, see Use Direct Query in Power BI Desktop.

Samengestelde modusComposite mode

In de modus Samengesteld kunnen de modi Import en DirectQuery worden gecombineerd of meerdere DirectQuery-gegevensbronnen worden geïntegreerd.Composite mode can mix Import and DirectQuery modes, or integrate multiple DirectQuery data sources. Bij modellen die worden ontwikkeld in de modus Samengesteld, kan de opslagmodus voor elke modeltabel worden geconfigureerd.Models developed in Composite mode support configuring the storage mode for each model table. Ook berekende tabellen (gedefinieerd met DAX) worden in deze modus ondersteund.This mode also supports calculated tables (defined with DAX).

De tabelopslagmodus kan worden geconfigureerd als Import, DirectQuery of Dual.The table storage mode can be configured as Import, DirectQuery, or Dual. Een tabel die is geconfigureerd als de opslagmodus Dual, is zowel Import als DirectQuery. Met deze instelling kan de Power BI-service per query de meest efficiënte modus bepalen.A table configured as Dual storage mode is both Import and DirectQuery, and this setting allows the Power BI service to determine the most efficient mode to use on a query-by-query basis.

Een samengesteld model is een combinatie van de opslagmodi Import en DirectQuery, geconfigureerd op tabelniveau

Bij samengestelde modellen wordt getracht het beste van de modi Import en DirectQuery te combineren.Composite models strive to deliver the best of Import and DirectQuery modes. Als deze modus goed is geconfigureerd, krijgt u zowel de hoge queryprestaties van in-memory modellen als de mogelijkheid om bijna in realtime gegevens uit gegevensbronnen op te halen.When configured appropriately they can combine the high query performance of in-memory models with the ability to retrieve near real-time data from data sources.

Gegevensmodelmakers die samengestelde modellen ontwikkelen, zullen waarschijnlijk dimensietabellen in de opslagmodus Import of Dual configureren, en feitentabellen in de modus DirectQuery.Data modelers who develop Composite models are likely to configure dimension-type tables in Import or Dual storage mode, and fact-type tables in DirectQuery mode. Zie Meer informatie over stervormige schema's en het belang voor Power BI voor meer informatie over modeltabelrollen.For more information about model table roles, see Understand star schema and the importance for Power BI.

Neem bijvoorbeeld een model met de dimensietabel Product in de modus Dual en de feitentabel Sales in de modus DirectQuery.For example, consider a model with a Product dimension-type table in Dual mode, and a Sales fact-type table in DirectQuery mode. De tabel Product kan efficiënt en snel worden opgevraagd uit het geheugen om een rapportslicer weer te geven.The Product table could be efficiently and quickly queried from in-memory to render a report slicer. De tabel Sales kan ook worden opgevraagd in de modus DirectQuery met de gerelateerde tabel Product.The Sales table could also be queried in DirectQuery mode with the related Product table. Met de laatste is het mogelijk een enkele efficiënte systeemeigen SQL-query te genereren die de tabellen Product en Sales samenvoegt en filtert op de slicerwaarden.The latter query could enable the generation of a single efficient native SQL query that joins Product and Sales tables, and filters by the slicer values.

Over het algemeen hebben samengestelde modellen dezelfde voor- en nadelen als Import- en DirectQuery-modellen, afhankelijk van de configuratie van elke tabel.In general, for Composite models, the advantages and disadvantages associated with Import and DirectQuery, depending on how each table is configured.

Zie Samengestelde modellen in Power BI Desktop gebruiken voor meer informatie.For more information, see Use composite models in Power BI Desktop.

Volgende stappenNext steps