Leitfaden für zusammengesetzte Modelle in Power BI DesktopComposite model guidance in Power BI Desktop

Dieser Artikel richtet sich an Datenmodellierer, die zusammengesetzte Modelle für Power BI entwickeln.This article targets data modelers developing Power BI Composite models. Er beschreibt Anwendungsfälle zusammengesetzter Modelle und bietet Ratschläge für Entwürfe.It describes Composite model use cases, and provides you with design guidance. Hauptziel dieses Leitfadens ist es, Ihnen dabei zu helfen, festzulegen, ob ein zusammengesetztes Modell für Ihre Lösung geeignet ist.Specifically, the guidance is to help you determine whether a Composite model is appropriate for your solution. Wenn dies der Fall ist, hilft Ihnen dieser Artikel auch beim Entwerfen eines optimalen Modells.If it is, then this article will also help you design an optimal model.

Hinweis

Dieser Artikel enthält keine grundlegenden Informationen zu zusammengesetzten Modellen.An introduction to Composite models is not covered in this article. Wenn Sie nicht vollständig mit zusammengesetzten Modellen vertraut sind, sollten Sie zunächst den Artikel Verwenden zusammengesetzter Modelle in Power BI Desktop lesen.If you're not completely familiar with Composite models, we recommend you first read the Use composite models in Power BI Desktop article.

Da zusammengesetzte Modelle aus mindestens einer DirectQuery-Quelle bestehen, ist es auch wichtig, dass Sie mit Modellbeziehungen, DirectQuery-Modellen und dem Designleitfaden für DirectQuery-Modelle vertraut sind.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.

Anwendungsfälle für zusammengesetzte ModelleComposite model use cases

Wenn möglich, sollten Sie ein Modell im Importmodus entwickeln.Whenever possible, it's best to develop a model in Import mode. Er bietet größtmögliche Flexibilität für Entwürfe und die beste Leistung.This mode provides the greatest design flexibility, and best performance.

Allerdings können Herausforderungen, die im Zusammenhang mit großen Datenmengen oder der Berichterstellung über Quasi-Echtzeitdaten stehen, nicht durch Importmodelle gelöst werden.However, challenges related to large data volumes, or reporting on near real-time data, cannot be solved by Import models. In diesen Fällen würde sich ein DirectQuery-Modell anbieten, vorausgesetzt, Ihre Daten sind in einer einzelnen Datenquelle gespeichert, die vom DirectQuery-Modus unterstützt wird.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.

Ein zusammengesetztes Modell wäre auch für folgende Situationen gut geeignet:Further, you can consider developing a Composite model in the following situations.

  • Sie haben bereits ein DirectQuery-Modell, möchten aber noch bessere Leistung.Your model could be a DirectQuery model, but you want to boost performance. Ein zusammengesetztes Modell ist leistungsfähiger, weil für jede Tabelle der passende Speicher konfiguriert werden kann.In a Composite model, performance can be improved by configuring appropriate storage for each table. Sie können auch Aggregationen hinzufügen.You can also add aggregations. Beide Optimierungen werden weiter unten in diesem Artikel erläutert.Both of these optimizations are discussed later in this article.
  • Sie möchten ein DirectQuery-Modell mit zusätzlichen Daten kombinieren, die in das Modell importiert werden müssen.You want to combine a DirectQuery model with additional data, which must be imported into the model. Importierte Daten können aus einer anderen Datenquelle oder aus berechneten Tabellen geladen werden.Imported data can be loaded from a different data source, or from calculated tables.
  • Sie möchten zwei oder mehr DirectQuery-Datenquellen in einem einzelnen Modell kombinieren.You want to combine two or more DirectQuery data sources into a single model.

Hinweis

In zusammengesetzten Modellen ist es nicht möglich, Liveverbindungen und DirectQuery-Analysedatenbanken miteinander zu kombinieren.Composite models cannot combine Live Connection sources or DirectQuery analytic database sources. Zu Liveverbindungen zählen extern gehostete Modelle und Power BI Datasets.Live Connection sources include external-hosted models, and Power BI datasets. Zu DirectQuery-Analysedatenbanken werden auch SAP Business Warehouse und SAP HANA gezählt.DirectQuery analytic database sources include SAP Business Warehouse, and SAP HANA.

Optimieren des ModellentwurfsOptimize model design

Sie können ein zusammengesetztes Modell optimieren, indem Sie Speichermodi für Tabellen konfigurieren und Aggregationen hinzufügen.A Composite model can be optimized by configuring table storage modes, and by adding aggregations.

TabellenspeichermodusTable storage mode

In einem zusammengesetzten Modell können Sie den Speichermodus jeder Tabelle konfigurieren, mit Ausnahme berechneter Tabellen:In a Composite model, you can configure the storage mode for each table (except calculated tables):

  • DirectQuery: Dieser Modus empfiehlt sich für Tabellen, die große Datenmengen enthalten oder in Quasi-Echtzeit Ergebnisse liefern müssen.DirectQuery: We recommend you set this mode for tables that represent large data volumes, or which need to deliver near real-time results. Daten werden nie in diese Tabellen importiert.Data will never be imported into these tables. In der Regel haben diese Faktentabellen und werden für Zusammenfassungen verwendet.Usually, these tables will be fact-type tables—tables used for summarization.
  • Import: Dieser Modus empfiehlt sich für Dimensionstabellen, d. h. für Tabellen, mit deren Hilfe gefiltert und gruppiert wird.Import: We recommend you set this mode for dimension-type tables—tables used for filtering and grouping. Tatsächlich ist dieser Modus die einzige Option für Tabellen, die auf Quellen basieren, die nicht vom DirectQuery-Modus unterstützt werden.In fact, it's the only option for tables based on sources not supported by DirectQuery mode. Berechnete Tabellen haben immer diesen Modus.Calculated tables are always Import tables.
  • Dual: Diesen Modus sollten Sie für Tabellen des Typs „Dimension“ verwenden, wenn die Chance besteht, dass sie zusammen mit DirectQuery-Tabellen des Typs „Fakt“ aus derselben Quelle abgefragt werden.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.

Beim Abfragen eines zusammengesetzten Modells durch Power BI sind mehrere Szenarios denkbar:There are several possible scenarios when Power BI queries a Composite model:

  • Es werden nur Tabellen mit dem Modus „Import“ oder „Dual“ abgefragt: Alle Daten werden aus dem Modellcache abgerufen.Queries only Import or Dual table(s): All data is retrieved from the model cache. Dadurch wird die schnellstmögliche Leistung erzielt.It will deliver the fastest possible performance. Dieses Szenario kommt häufig bei Tabellen des Typs „Dimension“ vor, die mit Filtern oder Datenschnittvisuals abgefragt werden.This scenario is common for dimension-type tables queried by filters or slicer visuals.
  • Es werden nur Tabellen mit dem Modus „Dual“ oder DirectQuery-Tabellen abgefragt, die aus derselben Quelle stammen: Alle Daten werden abgerufen, indem eine oder mehrere native Abfragen an die DirectQuery-Quelle gesendet werden.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. Dadurch wird die schnellstmögliche Leistung erzielt, insbesondere wenn in den Quelltabellen geeignete Indizes vorhanden sind.It will deliver the fastest possible performance, especially when appropriate indexes exist on the source tables. Dieses Szenario wird häufig bei Abfragen verwendet, bei denen Tabellen, die den Typ „Dimension“ und den Modus „Dual“ haben, mit DirectQuery-Tabellen des Typs „Fakt“ verknüpft werden.This scenario is common for queries that relate Dual dimension-type tables and DirectQuery fact-type tables. Diese Abfragen haben eine inselinterne-Beziehung, d. h., alle 1:1- oder 1:n-Beziehungen werden als reguläre Beziehungen bewertet.These queries are intra-island, and so all one-to-one or one-to-many relationships are evaluated as regular relationships.
  • Alle anderen Abfragen: Diese Abfragen umfassen inselübergreifende Beziehungen.All other queries: These queries involve cross-island relationships. Der Grund hierfür ist entweder, dass eine Tabelle mit dem Modus „Import“ mit einer DirectQuery-Tabelle verknüpft ist, oder dass eine Tabelle mit dem Modus „Dual“ mit einer DirectQuery-Tabelle aus einer anderen Quelle verknüpft ist und sich deshalb wie eine Tabelle mit dem Modus „Import“ verhält.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 Beziehungen werden als beschränkte Beziehungen bewertet.All relationships are evaluated as limited relationships. Das bedeutet auch, dass Gruppierungen, die auf nicht mit DirectQuery erstellte Tabellen angewendet werden, als virtuelle Tabelle an die DirectQuery-Quelle gesendet werden müssen.It also means that groupings applied to non-DirectQuery tables must be sent to the DirectQuery source as a virtual table. In diesem Fall kann die native Abfrage ineffizient sein, insbesondere bei großen Gruppierungssätzen.In this case, the native query can be inefficient, especially for large grouping sets. Außerdem besteht die Möglichkeit, dass in der nativen Abfrage sensible Daten angezeigt werden.And, it has the potential to expose sensitive data in the native query.

Zusammenfassend empfiehlt sich Folgendes:In summary, we recommend that you:

  • Überlegen Sie gut, ob ein zusammengesetztes Modell die richtige Lösung ist. Es erlaubt zwar die Integration verschiedener Datenquellen auf Modellebene, macht aber auch das Entwerfen komplizierter, was Konsequenzen haben kann.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
  • Legen Sie den Speichermodus auf DirectQuery fest, wenn eine Tabelle den Typ „Fakt“ hat und in ihr große Datenmengen gespeichert sind, oder sie in Quasi-Echtzeit Ergebnisse liefern muss.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
  • Legen Sie den Speichermodus auf Dual fest, wenn eine Tabelle den Typ "Dimension" hat und sie zusammen mit DirectQuery-Tabellen des Typs „Fakt“ abgefragt wird, die aus derselben Quelle stammen.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
  • Konfigurieren Sie die Aktualisierungshäufigkeiten so, dass der Modellcache für Tabellen mit dem Modus „Dual“ (und für alle abhängigen, kalkulierten Tabellen) und die Quelldatenbanken synchron sind.Configure appropriate refresh frequencies to keep the model cache for Dual tables (and any dependent calculated tables) in sync with the source database(s)
  • Bemühen Sie sich um datenquellenübergreifende Datenintegrität (einschließlich Modellcache) – durch beschränkte Beziehungen werden Reihen eliminiert, wenn verknüpfte Spaltenwerte nicht übereinstimmen.Strive to ensure data integrity across data sources (including the model cache)—limited relationships will eliminate rows when related column values don't match
  • Optimieren Sie DirectQuery-Datenquellen mit geeigneten Indizes für effiziente Joins, Filter, Gruppierungen.Optimize DirectQuery data sources with appropriate indexes for efficient joins, filtering and grouping
  • Laden Sie sensible Daten nicht in Tabellen mit dem Modus „Import“ oder „Dual“, wenn das Risiko besteht, dass eine native Abfrage abgefangen wird. Weitere Informationen hierzu finden Sie unter Verwenden zusammengesetzter Modelle in Power BI Desktop (Abschnitt „Folgen für die Sicherheit“).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)

AggregationenAggregations

Sie können den DirectQuery-Tabellen in Ihrem zusammengesetzten Modell Aggregationen hinzufügen.You can add aggregations to DirectQuery tables in your Composite model. Aggregationen werden im Modell zwischengespeichert. Deshalb verhalten sie sich wie Tabellen mit dem Modus „Import“, können aber nicht wie Modelltabellen verwendet werden.Aggregations are cached in the model, and so they behave as Import tables (although they can't be used like a model table). Ihr Zweck besteht darin, die Leistung bei Abfragen mit höherer Granularität zu verbessern.Their purpose is to improve performance for "higher grain" queries. Weitere Informationen finden Sie unter Aggregationen in Power BI Desktop.For more information, see Aggregations in Power BI Desktop.

Eine Aggregationstabelle sollte dieser Grundregel folgen: Die Zeilenanzahl muss mindestens um den Faktor 10 kleiner sein als in der zugrunde liegenden Tabelle.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. Wenn die zugrunde liegende Tabelle z. B. 1 Milliarde Zeilen hat, sollte die Aggregationstabelle nicht länger als 100 Millionen Zeilen sein.For example, if the underlying table stores 1 billion rows, then the aggregation table shouldn't exceed 100 million rows. Mit dieser Regel stellen Sie sicher, dass Sie im Gegenzug für die beim Erstellen und Verwalten einer Aggregationstabelle entstehenden Kosten auch eine angemessene Leistungssteigerung erhalten.This rule ensures there's an adequate performance gain relative to the cost of creating and maintaining the aggregation table.

Nächste SchritteNext steps

Weitere Informationen zu diesem Artikel finden Sie in den folgenden Ressourcen:For more information related to this article, check out the following resources: