DirectQuery-Modelle durch Speicher auf Tabellenebene optimieren
DirectQuery ist eine Möglichkeit, Daten in Power BI Desktop zu integrieren. Bei der DirectQuery-Methode wird von Power BI Desktop aus eine direkte Verbindung zu den Daten im Quellrepository hergestellt. Es ist eine Alternative zum Importieren von Daten in Power BI Desktop.
Wenn Sie die DirectQuery-Methode verwenden, hängt die allgemeine Leistung stark von der Leistung der zugrunde liegenden Datenquelle ab. Langsame Abfrageantwortzeiten führen zu einer negativen Benutzererfahrung und im schlimmsten Fall kann es zu einer Zeitüberschreitung der Abfragen kommen. Auch die Anzahl der Benutzer, die die Berichte gleichzeitig öffnen, wirkt sich auf die Auslastung der Datenquelle aus. Wenn Ihr Bericht beispielsweise 20 Visuals enthält und von 10 Benutzern verwendet wird, werden mindestens 200 Abfragen an die Datenquelle gesendet, da jedes Visual mindestens eine Abfrage ausgibt.
Leider wird die Leistung Ihres Power BI-Modells nicht nur durch die Leistung der zugrunde liegenden Datenquelle beeinflusst, sondern auch durch andere nicht kontrollierbare Faktoren, wie etwa:
Die Netzwerklatenz. Schnellere Netzwerke geben Daten schneller zurück.
Die Leistung des Servers, auf dem sich die Datenquelle befindet, und die Anzahl der anderen Workloads auf diesem Server. Bedenken Sie z. B. die Auswirkungen einer Serveraktualisierung, die stattfindet, während Hunderte von Benutzer denselben Server aus unterschiedlichen Gründen verwenden.
Daher stellt DirectQuery ein Risiko für die Qualität der Leistung Ihres Modells dar. Sie benötigen Kontrolle über oder Zugriff auf die Quelldatenbank, um die Leistung in dieser Situation optimieren zu können.
Weitere Informationen finden Sie unter Leitfaden für das DirectQuery-Modell in Power BI Desktop.
Auswirkungen von DirectQuery
Es wird empfohlen, Daten in Power BI Desktop zu importieren, Ihre Organisation muss jedoch möglicherweise aus einem der folgenden Gründe (Vorteile von DirectQuery) den DirectQuery-Datenkonnektivitätsmodus verwenden:
Es ist hilfreich, wenn häufige Datenänderungen anfallen und Berichte nahezu in Echtzeit erstellt werden müssen.
Es kann große Datenmengen verarbeiten, ohne dass diese vorab zusammengefasst werden müssen.
Es wendet Beschränkungen hinsichtlich der Datenhoheit an, um die gesetzlichen Vorgaben einzuhalten.
Es kann mit einer mehrdimensionalen Datenquelle verwendet werden, die Kennzahlen wie SAP Business Warehouse (BW) enthält.
Wenn Ihre Organisation DirectQuery verwenden muss, sollten Sie dessen Verhalten in Power BI Desktop genau verstehen und sich seiner Einschränkungen bewusst sein. Wenn dem so ist, sind Sie bestens vorbereitet, um das DirectQuery-Modell so gut wie möglich zu optimieren.
Verhalten von DirectQuery-Verbindungen
Wenn Sie DirectQuery verwenden, um eine Verbindung mit Daten in Power BI Desktop herzustellen, verhält sich diese Verbindung folgendermaßen:
Wenn Sie die Funktion Get Data in Power BI Desktop zum ersten Mal verwenden, wählen Sie die Quelle aus. Wenn Sie eine Verbindung mit einer relationalen Quelle herstellen, können Sie mehrere Tabellen auswählen, die jeweils eine Abfrage definieren, die logisch eine Datenmenge zurückgibt. Bei mehrdimensionalen Quellen, z. B. SAP BW, können Sie nur diese Quelle auswählen.
Wenn Sie die Daten laden, werden keine Daten in Power BI Desktop importiert, sondern es wird lediglich das Schema geladen. Wenn Sie ein Visual in Power BI Desktop erstellen, werden Abfragen an die zugrunde liegende Quelle gesendet, um die erforderlichen Daten abzurufen. Die zum Aktualisieren des Visuals benötigte Zeit hängt von der Leistung der zugrunde liegenden Datenquelle ab.
Wenn Änderungen an den zugrunde liegenden Daten vorgenommen werden, werden diese aufgrund der Zwischenspeicherung nicht sofort in den vorhandenen Visuals in Power BI widergespiegelt. Sie müssen eine Aktualisierung durchführen, damit diese Änderungen angezeigt werden. Die erforderlichen Abfragen werden für jedes Visual erneut gesendet, und die Visuals werden entsprechend aktualisiert.
Wenn Sie den Bericht im Power BI-Dienst veröffentlichen, entsteht daraus ein semantisches Modell im Power BI-Dienst, genau wie beim Import. In diesem semantischen Modell sind jedoch keine Daten enthalten.
Wenn Sie im Power BI-Dienst einen vorhandenen Bericht öffnen oder einen neuen erstellen, wird die zugrunde liegende Quelle erneut abgefragt, um die erforderlichen Daten abzurufen. Je nach Speicherort der ursprünglichen Quelle müssen Sie möglicherweise ein lokales Datengateway konfigurieren.
Sie können Visuals oder ganze Berichtsseiten als Dashboardkacheln anheften. Die Kacheln werden automatisch gemäß einem Zeitplan aktualisiert, z. B. stündlich. Sie können die Häufigkeit dieser Aktualisierungen nach Bedarf steuern. Wenn Sie ein Dashboard öffnen, bilden die Kacheln die Daten zum Zeitpunkt der letzten Aktualisierung ab. Sie enthalten daher möglicherweise nicht die neuesten Änderungen an der zugrunde liegenden Datenquelle. Sie können ein offenes Dashboard jederzeit aktualisieren, um sicherzustellen, dass es auf dem neuesten Stand ist.
Einschränkungen von DirectQuery-Verbindungen
Die Verwendung von DirectQuery kann negative Auswirkungen haben. Die Einschränkungen unterscheiden sich je nach verwendeter Datenquelle. Die folgenden Punkte sollten Sie berücksichtigen:
Leistung – Wie bereits erläutert, hängt die Dienstqualität stark von der Leistung der zugrunde liegenden Datenquelle ab.
Sicherheit – Wenn Sie mehrere Datenquellen in einem DirectQuery-Modell verwenden, ist es wichtig, zu verstehen, wie Daten zwischen den zugrunde liegenden Datenquellen weitergegeben werden und wie sich dies auf die Sicherheit auswirkt. Sie sollten auch ermitteln, ob Sicherheitsregeln auf die Daten in Ihrer zugrunde liegenden Quelle anwendbar sind, da jeder Benutzer diese Daten in Power BI anzeigen kann.
Datentransformation – Im Vergleich zu importierten Daten unterliegen Daten aus DirectQuery Einschränkungen, wenn es um die Anwendung von Techniken der Datentransformation im Power Query-Editor geht. Wenn Sie z. B. eine Verbindung mit einer OLAP-Quelle wie SAP BW herstellen, können Sie überhaupt keine Transformationen durchführen. Das gesamte externe Modell wird aus der Datenquelle übernommen. Alle gewünschten Transformationen für die Daten müssen Sie in der zugrunde liegenden Datenquelle durchführen.
Modellierung – Einige der bei importierten Daten verfügbaren Modellierungsfunktionen stehen bei der Verwendung von DirectQuery gar nicht oder nur eingeschränkt zur Verfügung.
Berichterstellung – Fast alle der bei importierten Daten verfügbaren Berichterstellungsfunktionen werden auch für DirectQuery-Modelle unterstützt, vorausgesetzt, die zugrunde liegende Quelle verfügt über eine entsprechende Leistung. Wenn der Bericht jedoch im Power BI-Dienst veröffentlicht wird, werden die Funktionen „Quick Insights“ und „Q&A“ nicht unterstützt. Außerdem führt die Verwendung der Funktion „Durchsuchen“ in Excel wahrscheinlich zu einer schlechteren Leistung.
Ausführlichere Informationen zu den Einschränkungen bei der Verwendung von DirectQuery finden Sie unter Auswirkungen von DirectQuery.
Nun da Sie wissen, wie DirectQuery im Großen und Ganzen funktioniert und welche Einschränkungen damit einhergehen, können Sie Maßnahmen ergreifen, um die Leistung zu verbessern.
Leistung optimieren
Wenn Sie mit dem Tailwind Traders-Szenario fortfahren, stellen Sie bei der Überprüfung des semantischen Modells fest, dass die Abfrage DirectQuery verwendet hat, um Power BI Desktop mit den Quelldaten zu verbinden. Diese Verwendung von DirectQuery ist der Grund, dass bei Benutzern eine schlechte Berichtsleistung auftritt. Das Laden der Seiten im Bericht dauert zu lange, und Tabellen werden nicht schnell genug aktualisiert, wenn eine bestimmte Auswahl getroffen wird. Sie müssen Maßnahmen ergreifen, um die Leistung des DirectQuery-Modells zu optimieren.
Sie können die Abfragen untersuchen, die an die zugrunde liegende Quelle gesendet werden, und versuchen, den Grund für die schlechte Abfrageleistung zu ermitteln. Sie können dann Änderungen in Power BI Desktop und den zugrunde liegenden Datenquelle vornehmen, um die Gesamtleistung zu optimieren.
Daten in Power BI Desktop optimieren
Wenn Sie die Datenquelle so weit wie möglich optimiert haben, können Sie in Power BI Desktop weitere Maßnahmen ergreifen, indem Sie Leistungsanalyse verwenden, wo Sie Abfragen isolieren können, um Abfragepläne zu überprüfen.
Sie können die Dauer der an die zugrunde liegende Quelle gesendeten Abfragen analysieren, um die Abfragen mit langen Ladezeiten zu identifizieren. Anders ausgedrückt: Sie können ermitteln, wo es zu Engpässen kommt.
Zum Optimieren eines DirectQuery-Modells ist kein besonderer Ansatz erforderlich. Sie können bei den Daten aus der DirectQuery-Quelle dieselben Optimierungstechniken verwenden wie auch schon bei den importierten Daten. Beispielsweise können Sie die Anzahl von Visuals auf einer Berichtsseite verringern oder die Anzahl von Feldern, die in einem Visual verwendet werden. Außerdem können Sie nicht benötigte Spalten und Zeilen entfernen.
Ausführlichere Anleitungen zum Optimieren einer DirectQuery-Abfrage finden Sie unter Anleitung zum DirectQuery-Modell in Power BI Desktop und unter Anleitung zur erfolgreichen Verwendung von DirectQuery.
Die zugrunde liegenden Datenquelle (verbundenen Datenbank) optimieren
Ihr Ausgangspunkt ist die Datenquelle. Sie müssen die Quelldatenbank so weit wie möglich optimieren, da alles, was Sie zur Verbesserung der Leistung dieser Quelldatenbank unternehmen, wiederum zu einer Verbesserung von Power BI DirectQuery führt. Die in der Datenbank durchgeführten Maßnahmen haben die größten positiven Auswirkungen.
Ziehen Sie die folgenden Standardvorgehensweisen für Datenbanken in Betracht, die in den meisten Fällen passen:
Vermeiden Sie die Verwendung komplexer berechneter Spalten, da der Berechnungsausdruck in die Quellabfragen eingebettet wird. Es ist effizienter, den Ausdruck in die Quelle zu verlagern, da so der Pushdown vermieden wird. Sie könnten auch das Hinzufügen von Surrogatschlüsselspalten in Dimensionstabellen in Erwägung ziehen.
Überprüfen Sie die Indizes, und stellen Sie sicher, dass die aktuelle Indizierung korrekt ist. Wenn Sie neue Indizes erstellen müssen, stellen Sie sicher, dass diese geeignet sind.
Sehen Sie sich die Anleitungsdokumente Ihrer Datenquelle an, und implementieren Sie die dort dargelegten Leistungsempfehlungen.
Optionen für Abfragereduzierungen anpassen
Power BI Desktop bietet Ihnen die Möglichkeit, weniger Abfragen zu senden und bestimmte Interaktionen zu deaktivieren, die zu einer schlechten Benutzererfahrung führen, wenn die Ausführung der resultierenden Abfragen lange dauert. Das Anwenden dieser Optionen verhindert, dass ständig Abfragen die Datenquelle erreichen, was zu einer Leistungsverbesserung führen sollte.
In diesem Beispiel bearbeiten Sie die Standardeinstellungen, um die verfügbaren Optionen für Datenreduzierungen auf Ihr Modell anzuwenden. Sie können die Einstellungen aufrufen, indem Sie Datei>Optionen und Einstellungen>Optionen auswählen, auf der Seite nach unten scrollen und dann die Option Abfragereduzierung auswählen.
Die folgenden Optionen für Abfragereduzierungen sind verfügbar:
Anzahl der gesendeten Abfragen reduzieren durch – Standardmäßig interagiert jedes Visual mit allen anderen Visuals. Wenn Sie dieses Kontrollkästchen aktivieren, wird diese standardmäßige Interaktion deaktiviert. Anschließend können Sie mit der Funktion Interaktionen bearbeiten optional festlegen, welche Visuals miteinander interagieren sollen.
Datenschnitte – Die Option Datenschnittänderungen sofort anwenden ist standardmäßig ausgewählt. Wählen Sie die Option Jedem Datenschnitt eine Schaltfläche „Anwenden“ hinzufügen, um die Änderungen zu übernehmen, wenn Sie bereit sind aus, um ein manuelles Anwenden von Datenschnittänderungen durch die Berichtsbenutzer zu erzwingen.
Filter – Die Option Basisfilteränderungen sofort anwenden ist standardmäßig ausgewählt. Wählen Sie eine der anderen Optionen aus, um ein manuelles Anwenden von Filteränderungen durch die Berichtsbenutzer zu erzwingen:
Schaltfläche „Anwenden“ zu allen Basisfiltern hinzufügen, um Änderungen bei Bedarf anzuwenden
Einzelne Schaltfläche „Anwenden“ dem Filterbereich hinzufügen, um Änderungen in einem Schritt anzuwenden (Vorschauversion)