Inkrementelle Aktualisierung mit Unterabfragen

Seitdem die inkrementelle Aktualisierung auch schon mit einer Pro Lizenz verfügbar ist, wurde es Zeit für mich, mich mit dem Thema zu beschäftigen.

In der Power BI Community stellte ich fest, dass die bekannten Dokumentationen zwar beschreiben, wie man einen inkrementelle Aktualisierung einrichtet, aber dieses immer nur am Beispiel einer einzelnen Abfrage. In der Praxis sind aber durchaus kombinierte Abfrage aus mehreren Unterabfragen üblich.

Es sei an dieser Stelle bereits angemerkt, dass die inkrementelle Aktualisierung eine Funktion ist, die Sie im Power Query und Power BI Desktop einrichten, die aber erst durch das Datenladen im Power BI Service genutzt und gesteuert wird.

Doch betrachten wir zuerst wie wir die Vorteile der inkrementellen Aktualisierung nutzen können.

Durch die Verwendung der zwei Filter Parameter RangeStart und RangeEnd können wir zum einen steuern, welcher Zeitraum von Daten aus der Quelle geladen werden soll. Dieses reduziert die Ladezeit und sorgt für ein geringes Datenvolumen, das zum Power BI Service transportiert werden muss.
Zum anderen können wir festlegen, welcher Zeitraum von Daten im Analysespeicher beibehalten werden soll.

Parameter RangeStart und RangeEnd

Wie wir sehen, sind es zwei Funktionen, die wir beim Einrichten der Inkrementellen Aktualisierung berücksichtigen müssen.

  • Erstens müssen wir in den Unterabfragen so früh wie möglich die Filter Parameter RangeStart und RangeEnd verwenden, um die abgefragten Daten in der Quelle zu limitieren und damit Ladezeit zu sparen.
  • Zweitens müssen wir in der kombinierten Abfrage die Filter Parameter RangeStart und RangeEnd verwenden, um den Datenbestand im Analysespeicher zu identifizieren, der weiter beibehalten werden soll.

Ich möchte es an einem kleinen Beispiel verdeutlichen. In Business Central werden die Beleginformationen in Kopf und Zeilen Tabellen gespeichert, die wir für die Analyse in eine Abfrage kombinieren.

In diesem Beispiel gehen wir davon aus, dass wir die Datensätze mit einem Buchungsdatum in den letzten 2 Jahre aufbewahren (speichern) möchten und Datensätze mit einem Buchungsdatum in den letzten 7 Tagen aktualisieren möchten.

Inkrementelle Aktualisierung Dialog

Das folgende Schaubild zeigt wie die Power Query Engine die Rechnungskopf und -zeilen Daten der letzten 7 Tage aus Business Central lädt und zu einer Rechnung zusammenführt. Anschließend wird das Abfrageergebnis, nicht die zugrunde liegenden Basisdaten der Unterabfragen, im Analysespeicher vom Power BI Service gespeichert. Sollten Daten von einem vorherigen Datenladen für diesen Zeitraum bereits vorhanden sein, werden diese gelöscht. Sollten Daten den Aufbewahrungszeitraum von 2 Jahren überschreiten, werden auch diese gelöscht. Um die entsprechenden Datensätze zu identifizieren, muss auch im Abfrageergebnis Rechnung die Filterparameter RangeStart und RangeEnd gesetzt werden.

Schaubild Inkrementelle Aktualisierung

In Power Query wurden die Unterabfragen Verkaufsrechnungskopf und -zeile für das Laden in den Bericht deaktiviert und nur die kombinierte Abfrage Verkaufsrechnung wird in den Bericht geladen.

Abfrageabhängigkeiten

Hier filtern wir zuerst die Unterabfragen Verkaufsrechnungskopf und -zeile, um nur den benötigten Zeitraum aus Business Central abzurufen. Dafür setzen wir auf die Spalte PostingDate (Buchungsdatum) einen Datumsfilter > “Zwischen…”

Datumsfilter Zwischen für Unterabfrage

Wenn die Spalte vom Datentyp “Datum/Uhrzeit” ist, können wir im Dialog die Parameter RangeStart und RangeEnd als Filterwert verwenden. Da in diesem Fall die Spalte PostingDate vom Datentyp “Datum” ist, müssen wir erstmal fixe Werte hinterlegen.

Datumsfilter Dialog Filterparameter setzen

Anschließend ersetzen wir in der Bearbeitungsleiste die fixen Werte.
Hierfür konvertieren wir die Parameter RangeStart und RangeEnd mit der Funktion Date.From von Datum/Uhrzeit zu Datum.
Den Datentyp der Spalte sollten Sie nicht ändern, um sicherzustellen, dass die Filterung der Daten durch die Quelle erfolgt und nicht durch die Power Query Engine.

RangeStart und RangeEnd über Bearbeitungsleiste setzen.

Anschließend filtern wir noch die kombinierte Abfrage Verkaufsrechnung, damit der Analysespeicher identifizieren kann, welche Datensätze im Speicher weiter beibehalten oder ersetzt werden sollen.

Kombinierte Abfrage filtern für Inkrementelle Aktualisierung

Nun können wir in Power BI Desktop die Inkrementelle Aktualisierung einrichten und den Bericht in Power BI Service veröffentlichen.
Der Dialog “Inkrementelle Aktualisierung” wird für die Abfrage (Tabelle) nur angezeigt, wenn die Finale-Abfrage die Parameter RangeStart und RangeEnd verwendet.

Inkrementelle Aktualisierung einrichten

Ab jetzt übernimmt der Power BI Service die Steuerung über die Parameter RangeStart und RangeEnd und setzt diese automatisch für das erste vollständige Laden und den anschließenden inkrementellen Aktualisierungen.

WICHTIG: Berichte mit einer inkrementelle Aktualisierung können aktuell nicht vom Power BI Service heruntergeladen werden.

Quellen:

Veröffentlicht von

Marcus Wegener

Marcus Wegener

Marcus Wegener ist Anwendungsentwickler für Business Intelligence und erstellt Lösungen, mit denen sich große Datenmengen schnell analysieren lassen. Kunden nutzen seine Lösungen, um die Vergangenheit zu analysieren, die Gegenwart zu steuern und die Zukunft zu planen, um damit mehr Erfolg zu generieren. Dabei ist seine einzigartige Kombination aus Wissen und Auffassungsgabe ein Garant für ihren Erfolg.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.