Freigeben über


Verwenden der inkrementellen Aktualisierung mit Dataflows

Mit Dataflows können Sie große Datenmengen in Power BI oder in den von Ihrem Unternehmen bereitgestellten Speicher bringen. In manchen Fällen ist es jedoch nicht sinnvoll, bei jeder Aktualisierung eine vollständige Kopie der Quelldaten zu aktualisieren. Eine gute Alternative ist inkrementelle Aktualisierung, die folgende Vorteile für Dataflows bietet:

  • Die Aktualisierung erfolgt schneller: Nur Daten, die sich geändert haben, müssen aufgefrischt werden. Aktualisieren Sie zum Beispiel nur die letzten fünf Tage eines 10-jährigen Datenstroms.
  • Refresh ist zuverlässiger: Es ist zum Beispiel nicht notwendig, lang andauernde Verbindungen zu flüchtigen Quellsystemen aufrechtzuerhalten.
  • Der Ressourcenverbrauch wird reduziert: Weniger zu aktualisierende Daten verringern den Gesamtverbrauch an Speicher und anderen Ressourcen.

Die inkrementelle Aktualisierung ist in Dataflows verfügbar, die in Power BI und in Dataflows, die in Power Apps erstellt wurden. Dieser Artikel zeigt Bildschirme aus Power BI, aber diese Anweisungen gelten für Dataflows, die in Power BI oder in Power Apps erstellt wurden.

Hinweis

Wenn sich das Schema für eine Tabelle in einem analytischen Dataflow ändert, wird eine vollständige Aktualisierung durchgeführt, um sicherzustellen, dass alle resultierenden Daten mit dem neuen Schema übereinstimmen. Dies hat zur Folge, dass alle inkrementell gespeicherten Daten aktualisiert werden und in einigen Fällen, wenn das Quellsystem keine historischen Daten aufbewahrt, verloren gehen.

Inkrementelle Aktualisierung für Dataflows.

Die Verwendung der inkrementellen Aktualisierung in Dataflows, die in Power BI erstellt wurden, erfordert, dass sich der Dataflow in einem Arbeitsbereich mit der Kapazität Premiumbefindet. Die inkrementelle Aktualisierung in Power Apps erfordert Power Apps pro Anwendung oder pro Benutzer und ist nur für Dataflows mit Azure Data Lake Storage als Ziel verfügbar.

Die Verwendung der inkrementellen Aktualisierung in Power BI oder Power Apps erfordert, dass die in den Dataflow aufgenommenen Quelldaten ein DateTime-Feld haben, nach dem die inkrementelle Aktualisierung filtern kann.

Konfigurieren der inkrementellen Aktualisierung für Dataflows

Ein Dataflow kann viele Tabellen enthalten. Die inkrementelle Aktualisierung wird auf Tabellenebene eingerichtet, so dass ein Dataflow sowohl vollständig aktualisierte Tabellen als auch inkrementell aktualisierte Tabellen enthalten kann.

Um eine inkrementell aufgefrischte Tabelle einzurichten, konfigurieren Sie zunächst Ihre Tabelle wie jede andere Tabelle.

Nachdem der Dataflow erstellt und gespeichert wurde, wählen Sie Inkrementelle Aktualisierung Inkrementelle Aktualisierung in der Tabellenansicht, wie in der folgenden Abbildung dargestellt.

Symbol Inkrementelle Aktualisierung für Dataflows.

Wenn Sie das Symbol auswählen, wird das Fenster Inkrementelle Aktualisierungseinstellungen angezeigt. Aktivieren Sie die inkrementelle Aktualisierung.

Inkrementelle Aktualisierung für Dataflows.

In der folgenden Liste werden die Einstellungen im Fenster Inkrementelle Aktualisierungseinstellungen erläutert.

  • Inkrementelle Aktualisierung ein/aus: Schaltet die inkrementelle Aktualisierungsrichtlinie für die Tabelle ein oder aus.

  • Dropdown-Filterfeld: Wählt das Abfragefeld aus, nach dem die Tabelle nach Inkrementen gefiltert werden soll. Dieses Feld enthält nur DateTime-Felder. Sie können die inkrementelle Aktualisierung nicht verwenden, wenn Ihre Tabelle kein DateTime-Feld enthält.

    Wichtig

    Wählen Sie ein nicht geändertes Datumsfeld für den inkrementellen Aktualisierungsfilter aus. Wenn sich der Feldwert ändert (z. B. mit einem Feld Änderungsdatum), kann dies zu Aktualisierungsfehlern aufgrund doppelter Werte in den Daten führen.

  • Zeilen aus der Vergangenheit speichern/auffrischen: Das Beispiel in der vorherigen Abbildung veranschaulicht diese nächsten Einstellungen.

    In diesem Beispiel wird eine Aktualisierungsrichtlinie definiert, die insgesamt fünf Jahre Daten speichert und inkrementell 10 Tage an Daten aktualisiert. Unter der Annahme, dass die Tabelle täglich aktualisiert wird, werden die folgenden Aktionen bei jedem Aktualisierungsvorgang ausgeführt:

    • Fügen Sie einen neuen Tag mit Daten hinzu.

    • Aktualisieren Sie 10 Tage, bis zum aktuellen Datum.

    • Entfernen Sie Kalenderjahre, die älter als fünf Jahre vor dem aktuellen Datum sind. Wenn das aktuelle Datum zum Beispiel der 1. Januar 2019 ist, wird das Jahr 2013 entfernt.

    Die erste Aktualisierung des Dataflows kann eine Weile dauern, um alle fünf Jahre zu importieren, aber die folgenden Aktualisierungen werden wahrscheinlich viel schneller abgeschlossen sein.

  • Datenänderungen erkennen: Eine inkrementelle Aktualisierung von 10 Tagen ist viel effizienter als eine vollständige Aktualisierung über fünf Jahre, aber vielleicht können Sie sogar noch mehr erreichen. Wenn Sie das Kontrollkästchen Datenänderungen erkennen aktivieren, können Sie eine Datums-/Zeitspalte auswählen, um nur die Tage zu identifizieren und zu aktualisieren, an denen sich die Daten geändert haben. Dies setzt voraus, dass eine solche Spalte im Quellsystem vorhanden ist, was in der Regel zu Prüfungszwecken geschieht. Der Maximalwert dieser Spalte wird für jeden der Zeiträume im Inkrementbereich ausgewertet. Wenn sich diese Daten seit der letzten Aktualisierung nicht geändert haben, muss der Zeitraum nicht aktualisiert werden. In diesem Beispiel könnte dies die Anzahl der inkrementell aufgefrischten Tage von 10 auf vielleicht 2 reduzieren.

    Tipp

    Das derzeitige Design erfordert, dass die Spalte, die zur Erkennung von Datenänderungen verwendet wird, persistent ist und im Speicher zwischengespeichert wird. Sie können eine der folgenden Techniken in Betracht ziehen, um die Kardinalität und den Speicherverbrauch zu reduzieren:

    • Persistieren Sie nur den Maximalwert dieser Spalte zum Zeitpunkt der Aktualisierung, z. B. mit Hilfe einer Power Query-Funktion.
    • Reduzieren Sie die Genauigkeit auf ein Niveau, das für Ihre Anforderungen an die Bildwiederholfrequenz akzeptabel ist.
  • Nur vollständige Zeiträume aktualisieren: Stellen Sie sich vor, dass Ihre Aktualisierung jeden Tag um 4:00 Uhr morgens stattfinden soll. Wenn Daten in den ersten vier Stunden des Tages im Quellsystem erscheinen, möchten Sie diese möglicherweise nicht berücksichtigen. Einige Geschäftskennzahlen, wie z. B. Barrel pro Tag in der Öl- und Gasindustrie, sind nicht praktikabel oder sinnvoll, wenn sie auf der Grundlage von Teiltagen berechnet werden.

    Ein weiteres Beispiel, bei dem nur vollständige Zeiträume aktualisiert werden sollten, ist die Aktualisierung von Daten aus einem Finanzsystem. Stellen Sie sich ein Finanzsystem vor, in dem die Daten des Vormonats am 12. Kalendertag des Monats genehmigt werden. Sie können den inkrementellen Bereich auf einen Monat festlegen und die Aktualisierung für den 12. Wenn Sie diese Option wählen, aktualisiert das System die Januar-Daten (den letzten vollständigen Monatszeitraum) am 12. Februar.

Hinweis

Die inkrementelle Aktualisierung von Dataflows bestimmt die Daten nach der folgenden Logik: Wenn eine Aktualisierung geplant ist, verwendet die inkrementelle Aktualisierung für Dataflows die in der Aktualisierungsrichtlinie definierte Zeitzone. Wenn kein Zeitplan für die Aktualisierung existiert, wird für die inkrementelle Aktualisierung die Zeit des Computers verwendet, der die Aktualisierung durchführt.

Nachdem die inkrementelle Aktualisierung konfiguriert wurde, ändert der Dataflow automatisch Ihre Abfrage, um die Filterung nach Datum einzuschließen. Wenn der Dataflow in Power BI erstellt wurde, können Sie die automatisch generierte Abfrage auch mithilfe des erweiterten Editors in Power Query bearbeiten, um Ihre Aktualisierung zu verfeinern oder anzupassen. In den folgenden Abschnitten erfahren Sie mehr über die inkrementelle Aktualisierung und ihre Funktionsweise.

Hinweis

Wenn Sie den Dataflow bearbeiten, stellt der Power Query-Editor eine direkte Verbindung mit der Datenquelle her und zeigt die im Dataflow zwischengespeicherten/gefilterten Daten nach der Verarbeitung durch die inkrementelle Aktualisierungsrichtlinie nicht an. Um die im Dataflow zwischengespeicherten Daten zu überprüfen, stellen Sie nach der Konfiguration der inkrementellen Aktualisierungsrichtlinie und Aktualisierung des Dataflows eine Verbindung zwischen Power BI Desktop und dem Dataflow her.

Inkrementelle Aktualisierung und verknüpfte Tabellen vs. berechnete Tabellen

Bei verknüpften Tabellen wird bei der inkrementellen Aktualisierung die Quelltabelle aktualisiert. Da verknüpfte Tabellen lediglich einen Zeiger auf die Originaltabelle darstellen, hat die inkrementelle Aktualisierung keine Auswirkungen auf die verknüpfte Tabelle. Wenn die Quelltabelle gemäß ihrer definierten Aktualisierungsrichtlinie aktualisiert wird, sollte jede verknüpfte Tabelle davon ausgehen, dass die Daten in der Quelle aktualisiert werden.

Berechnete Tabellen basieren auf Abfragen, die über einen Datenspeicher laufen, der ein anderer Dataflow sein kann. Daher verhalten sich berechnete Tabellen genauso wie verknüpfte Tabellen.

Da sich berechnete Tabellen und verknüpfte Tabellen ähnlich verhalten, sind die Anforderungen und Konfigurationsschritte für beide identisch. Ein Unterschied besteht darin, dass bei berechneten Tabellen in bestimmten Konfigurationen die inkrementelle Aktualisierung aufgrund der Art und Weise, wie Partitionen aufgebaut sind, nicht in optimierter Weise durchgeführt werden kann.

Wechseln zwischen inkrementeller und vollständiger Aktualisierung

Dataflows unterstützen die Änderung der Aktualisierungspolitik zwischen inkrementeller und vollständiger Aktualisierung. Wenn eine Änderung in eine der beiden Richtungen (vollständig zu inkrementell oder inkrementell zu vollständig) erfolgt, wirkt sich die Änderung auf den Dataflow nach der nächsten Aktualisierung aus.

Wenn ein Dataflow von der vollständigen Aktualisierung auf die inkrementelle Aktualisierung umgestellt wird, aktualisiert die neue Aktualisierungslogik den Dataflow, indem sie sich an das Aktualisierungsfenster und das Inkrement hält, wie in den Einstellungen für die inkrementelle Aktualisierung festgelegt.

Wenn ein Dataflow von der inkrementellen zur vollständigen Aktualisierung übergeht, werden alle in der inkrementellen Aktualisierung gesammelten Daten durch die in der vollständigen Aktualisierung definierte Richtlinie überschrieben. Sie müssen diese Aktion genehmigen.

Unterstützung von Zeitzonen bei der inkrementellen Aktualisierung

Die inkrementelle Aktualisierung des Dataflows ist abhängig von der Zeit, zu der sie ausgeführt wird. Die Filterung der Abfrage ist abhängig vom Tag, an dem sie ausgeführt wird.

Um diese Abhängigkeiten zu berücksichtigen und die Datenkonsistenz zu gewährleisten, implementiert die inkrementelle Aktualisierung für Dataflows die folgende Heuristik für refresh now Szenarien:

  • Wenn im System eine geplante Aktualisierung definiert ist, verwendet die inkrementelle Aktualisierung die Zeitzoneneinstellungen aus dem Abschnitt über die geplante Aktualisierung. Dadurch wird sichergestellt, dass die Zeitzone, in der sich die Person befindet, die den Dataflow aktualisiert, immer mit der Systemdefinition übereinstimmt.

  • Wenn keine geplante Aktualisierung definiert ist, verwenden Dataflows die Zeitzone des Computers des Benutzers, der die Aktualisierung durchführt.

Die inkrementelle Aktualisierung kann auch mit Hilfe von APIs aufgerufen werden. In diesem Fall kann der API-Aufruf eine Zeitzoneneinstellung enthalten, die bei der Aktualisierung verwendet wird. Die Verwendung von APIs kann für Test- und Validierungszwecke hilfreich sein.

Details zur Implementierung der inkrementellen Aktualisierung

Dataflows verwenden Partitionierung für inkrementelle Aktualisierung. Bei der inkrementellen Aktualisierung von Dataflows wird die Mindestanzahl von Partitionen beibehalten, um die Anforderungen der Aktualisierungsrichtlinie zu erfüllen. Alte Partitionen, die außerhalb des Bereichs liegen, werden verworfen, wodurch ein rollendes Fenster erhalten bleibt. Partitionen werden opportunistisch zusammengeführt, wodurch die Gesamtzahl der erforderlichen Partitionen reduziert wird. Dies verbessert die Komprimierung und kann in einigen Fällen die Abfrageleistung verbessern.

Für die Beispiele in diesem Abschnitt gilt die folgende Aktualisierungsrichtlinie:

  • Zeilen im letzten 1 Quartal speichern
  • Zeilen aktualisieren in den letzten 10 Tagen
  • Datenänderungen erkennen = False
  • Nur vollständige Tage aktualisieren = True

Partitionen zusammenführen

In diesem Beispiel werden Tagespartitionen automatisch auf die Monatsebene zusammengeführt, nachdem sie den inkrementellen Bereich verlassen haben. Partitionen im inkrementellen Bereich müssen mit täglicher Granularität gepflegt werden, damit nur diese Tage aufgefrischt werden können. Der Aktualisierungsvorgang mit Run Date 12/11/2016 führt die Tage im November zusammen, da sie außerhalb des inkrementellen Bereichs liegen.

Partitionen in Datenflows zusammenführen.

Alte Partitionen löschen

Alte Partitionen, die außerhalb des Gesamtbereichs liegen, werden entfernt. Der Aktualisierungsvorgang mit Run Date 1/2/2017 lässt die Partition für Q3 von 2016 fallen, da sie außerhalb des Gesamtbereichs liegt.

Legen Sie alte Partitionen in Datenflows ab.

Erholung nach längerem Ausfall

In diesem Beispiel wird simuliert, wie sich das System nach einem länger andauernden Ausfall erholt. Angenommen, die Aktualisierung wird nicht erfolgreich ausgeführt, weil die Anmeldeinformationen der Datenquelle abgelaufen sind, und es dauert 13 Tage, bis das Problem gelöst ist. Die inkrementelle Reichweite beträgt nur 10 Tage.

Der nächste erfolgreiche Aktualisierungsvorgang, mit Run Date 1/15/2017, muss die fehlenden 13 Tage auffüllen und aktualisieren. Außerdem müssen die letzten neun Tage aktualisiert werden, da sie nicht nach dem normalen Zeitplan aktualisiert wurden. Mit anderen Worten: Die inkrementelle Reichweite wird von 10 auf 22 Tage erhöht.

Der nächste Aktualisierungsvorgang, mit Run Date 1/16/2017, nutzt die Gelegenheit, die Tage im Dezember und die Monate im vierten Quartal 2016 zusammenzuführen.

Erholung nach längerem Ausfall in Dataflows.

Inkrementelle Dataflowaktualisierung und Datensätze

Die inkrementelle Aktualisierung von Dataflows und die inkrementelle Aktualisierung von Datensätzen sind so konzipiert, dass sie Hand in Hand gehen. Es ist akzeptabel und wird unterstützt, eine inkrementell aktualisierte Tabelle in einem Dataflow zu haben, die vollständig in ein Dataset geladen wird, oder eine vollständig geladene Tabelle in einem Dataflow, die inkrementell in ein Dataset geladen wird.

Beide Ansätze funktionieren entsprechend den von Ihnen in den Aktualisierungseinstellungen festgelegten Definitionen. Weitere Informationen: Inkrementelle Aktualisierung in Power BI Premium

Weitere Informationen

Dieser Artikel beschreibt die inkrementelle Aktualisierung von Dataflows. Hier sind einige weitere Artikel, die nützlich sein könnten:

Weitere Informationen zu Power Query und geplanter Aktualisierung finden Sie in diesen Artikeln:

Weitere Informationen über das Common Data Model finden Sie in seinem Übersichtsartikel: