Richtlijnen voor samengestelde modellen in Power BI DesktopComposite model guidance in Power BI Desktop

Dit artikel is bedoeld voor gegevensmodelleerders die samengestelde modellen willen ontwikkelen in Power BI.This article targets data modelers developing Power BI Composite models. Er worden gebruikscases beschreven en u krijgt richtlijnen voor het ontwerpproces.It describes Composite model use cases, and provides you with design guidance. De richtlijnen zijn met name bedoeld om u te helpen bepalen of een samengesteld model wel geschikt is voor uw oplossing.Specifically, the guidance is to help you determine whether a Composite model is appropriate for your solution. Als dat het geval is, helpt dit artikel u ook bij het ontwerpen van een optimaal model.If it is, then this article will also help you design an optimal model.

Notitie

In dit artikel wordt niet ingegaan op samengestelde modellen in het algemeen.An introduction to Composite models is not covered in this article. Als u niet volledig bekend bent met samengestelde modellen, raden we u aan eerst het artikel Samengestelde modellen in Power BI Desktop gebruiken te lezen.If you're not completely familiar with Composite models, we recommend you first read the Use composite models in Power BI Desktop article.

Omdat samengestelde modellen uit ten minste één DirectQuery-bron bestaan, is het ook belangrijk dat u een grondige kennis hebt van modelrelaties, DirectQuery-modellenen richtlijnen voor het ontwerpen van DirectQuery-modellen.Because Composite models consist of at least one DirectQuery source, it's also important that you have a thorough understanding of model relationships, DirectQuery models, and DirectQuery model design guidance.

Gebruikscases voor samengestelde modellenComposite model use cases

Als dat mogelijk is, kunt u modellen het beste ontwikkelen in de importmodus.Whenever possible, it's best to develop a model in Import mode. Deze modus biedt namelijk niet alleen de grootste flexibiliteit, maar ook de beste prestaties.This mode provides the greatest design flexibility, and best performance.

Importmodellen zijn echter niet geschikt voor het oplossen van uitdagingen met betrekking tot grote gegevensvolumes of bij rapportage over bijna realtime gegevens.However, challenges related to large data volumes, or reporting on near real-time data, cannot be solved by Import models. In deze gevallen kunt u een DirectQuery-model overwegen, op voorwaarde dat uw gegevens zijn opgeslagen in één gegevensbron die wordt ondersteund door de DirectQuery-modus.In either of these cases, you can consider a DirectQuery model, providing your data is stored in a single data source that's supported by DirectQuery mode.

In de volgende situaties is het zinvol om een samengesteld model te ontwikkelen.Further, you can consider developing a Composite model in the following situations.

  • Het model kan een DirectQuery-model zijn, maar u wilt de prestaties verbeteren.Your model could be a DirectQuery model, but you want to boost performance. In een samengesteld model kunnen de prestaties worden verbeterd door voor elke tabel de juiste opslag te configureren.In a Composite model, performance can be improved by configuring appropriate storage for each table. U kunt ook aggregaties toevoegen.You can also add aggregations. Beide optimalisaties worden verderop in dit artikel besproken.Both of these optimizations are discussed later in this article.
  • U wilt een DirectQuery-model combineren met aanvullende gegevens, die in het model moeten worden geïmporteerd.You want to combine a DirectQuery model with additional data, which must be imported into the model. Geïmporteerde gegevens kunnen worden geladen vanuit een andere gegevensbron of uit berekende tabellen.Imported data can be loaded from a different data source, or from calculated tables.
  • U wilt twee of meer DirectQuery-gegevensbronnen combineren tot één model.You want to combine two or more DirectQuery data sources into a single model.

Notitie

Samengestelde modellen kunnen geen bronnen van live-verbindingen of analytische databases van DirectQuery combineren.Composite models cannot combine Live Connection sources or DirectQuery analytic database sources. Voorbeelden van bronnen van live-verbindingen zijn extern gehoste modellen en Power BI-gegevenssets.Live Connection sources include external-hosted models, and Power BI datasets. SAP Business Warehouse en SAP HANA zijn voorbeelden van bronnen van analytische DirectQuery-databases.DirectQuery analytic database sources include SAP Business Warehouse, and SAP HANA.

Modelontwerp optimaliserenOptimize model design

Een samengesteld model kan worden geoptimaliseerd door het configureren van opslagmodi voor tabellen en door aggregaties toe te voegen.A Composite model can be optimized by configuring table storage modes, and by adding aggregations.

Table-opslagmodusTable storage mode

In een samengesteld model kunt u de opslagmodus voor elke tabel configureren (met uitzondering van berekende tabellen):In a Composite model, you can configure the storage mode for each table (except calculated tables):

  • DirectQuery: We raden u aan deze modus in te stellen voor tabellen die grote gegevensvolumes vertegenwoordigen of die bijna realtime resultaten moeten leveren.DirectQuery: We recommend you set this mode for tables that represent large data volumes, or which need to deliver near real-time results. Gegevens worden nooit in deze tabellen geïmporteerd.Data will never be imported into these tables. Deze tabellen zijn meestal feitentabellen: tabellen die worden gebruikt voor overzichten.Usually, these tables will be fact-type tables—tables used for summarization.
  • Importeren: Het wordt aangeraden deze modus in te stellen voor dimensietypetabellen, ofwel tabellen die worden gebruikt voor filteren en groeperen.Import: We recommend you set this mode for dimension-type tables—tables used for filtering and grouping. Dit is in feite de enige optie voor tabellen op basis van bronnen die niet worden ondersteund door de DirectQuery-modus.In fact, it's the only option for tables based on sources not supported by DirectQuery mode. Berekende tabellen zijn altijd importtabellen.Calculated tables are always Import tables.
  • Dual: U wordt aangeraden deze modus in te stellen voor dimensietypetabellen, wanneer de mogelijkheid bestaat dat deze tegelijk met DirectQuery-feitentabellen uit dezelfde bron worden bevraagd.Dual: We recommend you set this mode for dimension-type tables, when there's a possibility they'll be queried together with DirectQuery fact-type tables from the same source.

Er zijn verschillende scenario's mogelijk waarin Power BI een query uitvoert op een samengesteld model:There are several possible scenarios when Power BI queries a Composite model:

  • Alleen query's op een of meer import- of dual-tabellen: Alle gegevens worden opgehaald uit de modelcache.Queries only Import or Dual table(s): All data is retrieved from the model cache. Dit biedt de snelst mogelijke prestaties.It will deliver the fastest possible performance. Dit scenario is gebruikelijk voor dimensietypetabellen die worden bevraagd met behulp van filters of slicervisualisaties.This scenario is common for dimension-type tables queried by filters or slicer visuals.
  • Query's op een of meer dual- of DirectQuery-tabellen uit dezelfde bron: Alle gegevens worden opgehaald door een of meer native query's te verzenden naar de DirectQuery-bron.Queries Dual table(s) or DirectQuery table(s) from the same source: All data is retrieved by sending one or more native queries to the DirectQuery source. Dit biedt de snelst mogelijke prestaties, met name wanneer de juiste indexen bestaan voor de brontabellen.It will deliver the fastest possible performance, especially when appropriate indexes exist on the source tables. Dit scenario is gebruikelijk voor query's waarbij dual-dimensietypetabellen en DirectQuery-feitentabellen worden gekoppeld.This scenario is common for queries that relate Dual dimension-type tables and DirectQuery fact-type tables. Deze query's zijn intra-eiland en dus worden alle een-op-een- of een-op-veel-relaties geëvalueerd als sterke relaties.These queries are intra-island, and so all one-to-one or one-to-many relationships are evaluated as strong relationships.
  • Alle overige query's: Deze query's omvatten relaties tussen eilanden.All other queries: These queries involve cross-island relationships. De reden hiervoor is dat een importtabel is gekoppeld aan een DirectQuery-tabel of een dual-tabel aan een DirectQuery-tabel vanuit een andere bron. In het laatste geval gedraagt de tabel zich als een importtabel.It's either because an Import table relates to a DirectQuery table, or a Dual table relates to a DirectQuery table from a different source—in which case it behaves as an Import table. Alle relaties worden geëvalueerd als zwakke relaties.All relationships are evaluated as weak relationships. Het betekent ook dat groeperingen die worden toegepast op niet-DirectQuery-tabellen, als een virtuele tabel moeten worden verzonden naar de DirectQuery-bron.It also means that groupings applied to non-DirectQuery tables must be sent to the DirectQuery source as a virtual table. In dit geval kan de native query inefficiënt zijn, met name voor grote groepeersets.In this case, the native query can be inefficient, especially for large grouping sets. Bovendien bestaat de kans dat er gevoelige gegevens worden blootgesteld in de native query.And, it has the potential to expose sensitive data in the native query.

Kort samengevat, adviseren wij het volgende:In summary, we recommend that you:

  • Denk goed na of een samengesteld model wel de juiste oplossing is. Hoewel een dergelijk model integratie op modelniveau mogelijk maakt van verschillende gegevensbronnen, krijgt u ook te maken met complexe ontwerpaspecten en de mogelijke gevolgen hiervan.Consider carefully that a Composite model is the right solution—while it allows model-level integration of different data sources, it also introduces design complexities with possible consequences
  • Stel de opslagmodus in op DirectQuery wanneer een tabel een feitentabel is waarin grote hoeveelheden gegevens worden opgeslagen, of wanneer bijna realtime resultaten vereist zijn.Set the storage mode to DirectQuery when a table is a fact-type table storing large data volumes, or it needs to deliver near real-time results
  • Stel de opslagmodus in op Dual wanneer een tabel een dimensietypetabel is en deze tegelijk wordt bevraagd met DirectQuery-feitentabellen op basis van dezelfde bron.Set the storage mode to Dual when a table is a dimension-type table, and it will be queried together with DirectQuery fact-type tables based on the same source
  • Configureer de juiste vernieuwingsfrequenties om de modelcache voor dual-tabellen (en eventuele afhankelijke berekende tabellen) synchroon te houden met de brondatabase(s).Configure appropriate refresh frequencies to keep the model cache for Dual tables (and any dependent calculated tables) in sync with the source database(s)
  • Streef ernaar om de integriteit van gegevens te garanderen tussen gegevensbronnen (inclusief de modelcache): zwakke relaties elimineren rijen wanneer gerelateerde kolomwaarden niet overeenkomen.Strive to ensure data integrity across data sources (including the model cache)—weak relationships will eliminate rows when related column values don't match
  • Optimaliseer DirectQuery-gegevensbronnen met de juiste indexen voor efficiënte samenvoegingen, filters en groeperingen.Optimize DirectQuery data sources with appropriate indexes for efficient joins, filtering and grouping
  • Laad geen gevoelige gegevens in import- of dual-tabellen als er het risico bestaat dat een native query wordt onderschept. Zie Gevolgen voor de beveiliging in het artikel Samengestelde modellen in Power BI Desktop gebruiken voor meer informatie.Don't load sensitive data into Import or Dual tables if there's risk of a native query being intercepted—for more information, see Use composite models in Power BI Desktop (Security implications)

AggregatiesAggregations

U kunt aggregaties toevoegen aan DirectQuery-tabellen in uw samengestelde model.You can add aggregations to DirectQuery tables in your Composite model. Aggregaties worden opgeslagen in de cache in het model en werken dus als importtabellen (hoewel ze niet kunnen worden gebruikt als een modeltabel).Aggregations are cached in the model, and so they behave as Import tables (although they can't be used like a model table). Ze hebben als doel om de prestaties te verbeteren voor query's met een algemener aggregatieniveau.Their purpose is to improve performance for "higher grain" queries. Zie Aggregaties in Power BI Desktop voor meer informatie.For more information, see Aggregations in Power BI Desktop.

Wij adviseren om altijd een basisregel te hanteren voor een aggregatietabel: Het aantal rijen moet minstens een factor tien kleiner zijn dan van de onderliggende tabel.We recommend that an aggregation table follows a basic rule: Its row count should be at least a factor of 10 smaller than the underlying table. Als de onderliggende tabel bijvoorbeeld één miljard rijen bevat, mag de aggregatietabel niet groter zijn dan 100 miljoen rijen.For example, if the underlying table stores 1 billion rows, then the aggregation table shouldn't exceed 100 million rows. Deze regel zorgt ervoor dat de prestatieverbetering voldoende groot is ten opzichte van de kosten voor het maken en onderhouden van de aggregatietabel.This rule ensures there's an adequate performance gain relative to the cost of creating and maintaining the aggregation table.

Volgende stappenNext steps

Bekijk de volgende resources voor meer informatie over dit artikel:For more information related to this article, check out the following resources: