Inkrementelle Aktualisierung in Power BI PremiumIncremental refresh in Power BI Premium

Ist diese Seite hilfreich?

Die inkrementelle Aktualisierung bietet im Power BI Premium-Dienst für sehr große Datasets die folgenden Vorteile:Incremental refresh enables very large datasets in the Power BI Premium service with the following benefits:

  • Schnellere Aktualisierungen: Nur Daten, die geändert wurden, müssen aktualisiert werden.Refreshes are faster - Only data that has changed needs to be refreshed. Aktualisieren Sie beispielsweise nur die letzten fünf Tage eines zehn Jahre alten Datasets.For example, refresh only the last five days of a ten-year dataset.

  • Zuverlässigere Aktualisierungen: Es ist nicht mehr notwendig, Verbindungen mit langer Ausführungsdauer mit flüchtigen Quellsystemen herzustellen.Refreshes are more reliable - It's no longer necessary to maintain long-running connections to volatile source systems.

  • Reduzierter Ressourcenverbrauch: Dank weniger zu aktualisierender Daten wird der Gesamtbedarf an Arbeitsspeicher und anderen Ressourcen reduziert.Resource consumption is reduced - Less data to refresh reduces overall consumption of memory and other resources.

Konfigurieren inkrementeller AktualisierungenConfigure incremental refresh

Die Richtlinien für die inkrementelle Aktualisierung werden in Power BI Desktop definiert und bei Veröffentlichung auf den Power BI-Dienst angewendet.Incremental refresh policies are defined in Power BI Desktop and applied when published to the Power BI service.

Starten Sie mit dem Aktivieren der inkrementellen Aktualisierung in Vorschaufeatures.To start, enable incremental refresh in Preview features.

Optionen in der Vorschauversion

Filtern großer Datasets in Power BI DesktopFilter large datasets in Power BI Desktop

Große Datasets mit potenziell Milliarden von Zeilen werden möglicherweise von einem Power BI Desktop-Modell nicht unterstützt, da die PBIX-Datei durch die auf dem Desktopcomputer des Benutzers verfügbaren Speicherressourcen begrenzt wird.Large datasets with potentially billions of rows may not fit into a Power BI Desktop model because the PBIX file is limited by the memory resources available on the desktop computer. Daher werden solche Datensätze üblicherweise beim Import gefiltert.Such datasets are therefore commonly filtered upon import. Diese Art der Filterung gilt unabhängig davon, ob die inkrementelle Aktualisierung verwendet wird oder nicht.This type of filtering applies whether using incremental refresh or not. Für die inkrementelle Aktualisierung filtern Sie mithilfe von Datums- und Uhrzeitparametern von Power Query.For incremental refresh, you filter by using Power Query date/time parameters.

Die Parameter „RangeStart“ und „RangeEnd“RangeStart and RangeEnd parameters

Für die inkrementelle Aktualisierung werden Datasets unter Verwendung von Datums- und Uhrzeitparametern von Power Query, mit den reservierten Namen RangeStart und RangeEnd mit Berücksichtigung von Groß- und Kleinschreibung, gefiltert.For incremental refresh, datasets are filtered by using Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd. Diese Parameter werden verwendet, um die in Power BI Desktop importierten Daten zu filtern und die Daten dynamisch in Bereiche zu partitionieren nachdem sie im Power BI-Dienst veröffentlicht wurden.These parameters are used to filter the data imported into Power BI Desktop, and also to dynamically partition the data into ranges once published to the Power BI service. Zum Filtern nach den einzelnen Partitionen werden die Parameterwerte vom Dienst ersetzt.The parameter values are substituted by the service to filter for each partition. Nach Veröffentlichung werden die Parameterwerte vom Power BI-Dienst automatisch überschrieben.Once published, the parameter values are overridden automatically by the Power BI service. Eine Festlegung in den Dataseteinstellungen des Diensts ist nicht erforderlich.There's no need to set them in dataset settings in the service. Nach Veröffentlichung werden die Parameterwerte vom Power BI-Dienst automatisch überschrieben.Once published, the parameter values are overridden automatically by the Power BI service.

Um die Parameter mit Standardwerten zu definieren, wählen Sie im Power Query-Editor Parameter verwalten aus.To define the parameters with default values, in the Power Query Editor, select Manage Parameters.

Parameter verwalten

Nach der Definition der Parameter können Sie den Filter anwenden, indem Sie für eine Spalte den Menüpunkt Benutzerdefinierter Filter auswählen.With the parameters defined, you can then apply the filter by selecting the Custom Filter menu option for a column.

Benutzerdefinierter Filter

Stellen Sie sicher, dass Zeilen gefiltert werden, bei denen der Spaltenwert nach oder gleich RangeStart und vor RangeEnd ist.Ensure rows are filtered where the column value is after or equal to RangeStart and before RangeEnd.

Zeilen filtern

Tipp

Zwar muss der Datentyp der Parameter „Datum/Uhrzeit“ sein, aber es ist möglich, diesen an die Anforderungen der Datenquelle anzupassen.While the data type of the parameters must be date/time, it's possible to convert them to match the requirements of the datasource. Beispielsweise konvertiert die folgende Power Query-Funktion einen Datums-/Uhrzeitwert als ganze Zahl in einen Ersatzschlüssel der Form JJJJMMDD, die für Data Warehouses üblich ist.For example, the following Power Query function converts a date/time value to resemble an integer surrogate key of the form yyyymmdd, which is common for data warehouses. Die Funktion kann vom Filterschritt aufgerufen werden.The function can be called by the filter step.

(x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)

Wählen Sie im Power Query-Editor Schließen und übernehmen aus.Select Close and Apply from the Power Query Editor. Eine Teilmenge des Datasets sollte in Power BI Desktop vorhanden sein.You should have a subset of the dataset in Power BI Desktop.

Filtern von Updates der DatumsspalteFilter date column updates

Der Filter für die Datumsspalte wird verwendet, um die Daten im Power BI-Dienst dynamisch in Bereiche zu partitionieren.The filter on the date column is used to dynamically partition the data into ranges in the Power BI service. Die inkrementelle Aktualisierung ist nicht für die Unterstützung in Fällen vorgesehen, in denen die gefilterte Datenspalte im Quellsystem aktualisiert wird.Incremental refresh isn't designed to support cases where the filtered date column is updated in the source system. Eine Aktualisierung wird als Einfüge- und Löschvorgang interpretiert, nicht als eigentliche Aktualisierung.An update is interpreted as an insertion and a deletion, not an actual update. Wenn der Löschvorgang im historischen Bereich und nicht im inkrementellen Bereich erfolgt, wird er nicht berücksichtigt.If the deletion occurs in the historical range and not the incremental range, it won’t get picked up. Das kann zu Fehlern bei der Datenaktualisierung führen, die durch Konflikte bei Partitionsschlüssel entstehen.This can cause data refresh failures due to partition-key conflicts.

AbfragefaltungQuery folding

Es ist wichtig, dass die Partitionsfilter per Push an das Quellsystem übertragen werden, wenn Abfragen für Aktualisierungsvorgänge übermittelt werden.It's important the partition filters are pushed to the source system when queries are submitted for refresh operations. Dies bedeutet, dass die Datenquelle die Abfragefaltung unterstützen muss.To push filtering down means the datasource should support query folding. Die meisten Datenquellen, die SQL-Abfragen unterstützen, unterstützen auch die Abfragefaltung.Most data sources that support SQL queries support query folding. Datenquellen wie Flatfiles, Blobs, Web- oder OData-Feeds unterstützen die Abfragefaltung normalerweise nicht.However, data sources like flat files, blobs, web, and OData feeds typically do not. Wenn der Filter vom Datenquellen-Back-End nicht unterstützt wird, kann er nicht mithilfe von Push übertragen werden.In cases where the filter is not supported by the datasource back-end, it cannot be pushed down. Diese Fälle werden von der Mashup-Engine ausgeglichen, die den Filter lokal anwendet. Es kann sein, dass dafür das komplette Dataset von der Datenquelle abgerufen werden muss.In such cases, the mashup engine compensates and applies the filter locally, which may require retrieving the full dataset from the data source. Dadurch kann die inkrementelle Aktualisierung verlangsamt werden, und es kann sein, dass dem Prozess im Power BI-Dienst oder im lokalen Datengateway nicht ausreichend Ressourcen zur Verfügung stehen.This can cause incremental refresh to be very slow, and the process can run out of resources either in the Power BI service or in the on-premises data gateway if used.

In Anbetracht der unterschiedlichen Unterstützungsebenen der Abfragefaltung für jede Datenquelle sollte eine Überprüfung durchgeführt werden, um sicherzustellen, dass die Filterlogik in die Quellabfragen eingeschlossen wurde.Given the various levels of query folding support for each datasource, it's recommended that verification is performed to ensure the filter logic is included in the source queries. Um dies einfacher zu gestalten, versucht Power BI Desktop, diese Überprüfung für Sie durchzuführen.To make this easier, Power BI Desktop attempts to perform this verification for you. Falls eine Überprüfung nicht möglich ist, wird eine Warnung im Dialogfeld „Inkrementelle Aktualisierung“ angezeigt, wenn die Richtlinie für die inkrementelle Aktualisierung definiert wird.If unable to verify, a warning is displayed in the incremental refresh dialog when defining the incremental refresh policy. Für SQL-basierte Datenquellen wie SQL, Oracle und Teradata ist diese Warnung verlässlich.SQL based data sources such as SQL, Oracle, and Teradata can rely on this warning. Für die Überprüfung durch andere Datenquellen kann eine Ablaufverfolgung von Abfragen erforderlich sein.Other data sources may be unable to verify without tracing queries. Falls eine Bestätigung durch Power BI Desktop nicht möglich ist, wird die folgende Warnung angezeigt:If Power BI Desktop is unable to confirm, the following warning is displayed.

Abfragefaltung

Definieren der AktualisierungsrichtlinieDefine the refresh policy

Die inkrementelle Aktualisierung ist mit Ausnahme von Liveverbindungsmodellen im Kontextmenü für Tabellen verfügbar.Incremental refresh is available on the context menu for tables, except for Live Connection models.

Aktualisierungsrichtlinie

Dialogfeld „Inkrementelle Aktualisierung“Incremental refresh dialog

Das Dialogfeld „Inkrementelle Aktualisierung“ wird angezeigt.The incremental refresh dialog is displayed. Aktivieren Sie das Dialogfeld mithilfe der Umschaltfläche.Use the toggle to enable the dialog.

Details zur Aktualisierung

Hinweis

Wenn sich der Power Query-Ausdruck für die Tabelle nicht auf die Parameter mit reservierten Namen bezieht, ist die Umschaltmöglichkeit deaktiviert.If the Power Query expression for the table doesn't refer to the parameters with reserved names, the toggle is disabled.

Im Text der Kopfzeile wird Folgendes erläutert:The header text explains the following:

  • Die inkrementelle Aktualisierung wird nur für Arbeitsbereiche mit Premium-Kapazitäten unterstützt.Incremental refresh is supported only for workspaces on Premium capacities. Aktualisierungsrichtlinien werden in Power BI Desktop definiert und über Aktualisierungsvorgänge im Dienst angewendet.Refresh policies are defined in Power BI Desktop, and they are applied by refresh operations in the service.

  • Wenn Sie die PBIX-Datei mit einer enthaltenen inkrementellen Aktualisierungsrichtlinie aus dem Power BI-Dienst herunterladen können, kann sie nicht in Power BI Desktop geöffnet werden.If you're able to download the PBIX file containing an incremental-refresh policy from the Power BI service, it cannot be opened in Power BI Desktop. Auch wenn dies in Zukunft möglicherweise unterstützt wird, denken Sie daran, dass diese Datasets so groß werden können, dass sie nicht mehr heruntergeladen und auf einem typischen Desktopcomputer geöffnet werden können.While this may be supported in the future, keep in mind these datasets can grow to be so large that they are impractical to download and open on a typical desktop computer.

AktualisierungsbereicheRefresh ranges

Im folgenden Beispiel werden Aktualisierungsrichtlinien zum Speichern der Daten für fünf gesamte Kalenderjahre sowie Daten des laufenden Jahres bis zum aktuellen Datum und zum inkrementellen Aktualisieren der Daten von zehn Tagen definiert.The following example defines a refresh policy to store data for five full calendar years plus data for the current year up to the current date, and incrementally refresh ten days of data. Der erste Aktualisierungsvorgang lädt Verlaufsdaten.The first refresh operation loads historical data. Die folgenden Aktualisierungen sind inkrementell, und sie führen die folgenden Vorgänge aus, wenn sie täglich ausgeführt werden:Subsequent refreshes are incremental, and (if scheduled to run daily) perform the following operations:

  • Die Daten eines neuen Tages werden hinzugefügt.Add a new day of data.

  • Daten der letzten zehn Tage bis zum aktuellen Datum werden aktualisiert.Refresh ten days up to the current date.

  • Kalenderjahre, die bezogen auf das aktuelle Datum älter als fünf Jahre sind, werden entfernt.Remove calendar years that are older than five years prior to the current date. Wenn das aktuelle Datum der 1. Januar 2019 ist, wird z.B. das Jahr 2013 entfernt.For example, if the current date is January 1 2019, the year 2013 is removed.

Die erste Aktualisierung im Power BI-Dienst kann länger dauern, da fünf gesamte Kalenderjahre importiert werden.The first refresh in the Power BI service may take longer to import all five full calendar years. Nachfolgende Aktualisierungen werden möglicherweise in einem Bruchteil der Zeit abgeschlossen.Subsequent refreshes may be finished in a fraction of the time.

Aktualisierungsbereiche

Hinweis

Die Definition dieser Bereiche reicht ggf. schon aus. In diesem Fall können Sie direkt zum folgenden Veröffentlichungsschritt übergehen.Definition of these ranges might be all you need, in which case you can go straight to the publishing step below. Die zusätzlichen Dropdownlisten sind für erweiterte Funktionen vorgesehen.The additional dropdowns are for advanced features.

Erweiterte RichtlinienoptionenAdvanced policy options

Datenänderungen erkennenDetect data changes

Eine inkrementelle Aktualisierung der Daten von zehn Tagen ist effizienter als eine vollständige Aktualisierung von fünf Jahren.Incremental refresh of ten days is more efficient than full refresh of five years. Es geht jedoch noch etwas besser.However, it's possible to do even better. Wenn Sie das Kontrollkästchen Datenänderungen erkennen aktivieren, können Sie eine Datum-/Uhrzeit-Spalte auswählen, um nur die Tage zu bestimmen und zu aktualisieren, an denen sich die Daten geändert haben.If you select the Detect data changes checkbox, you can select a date/time column used to identify and refresh only the days where the data has changed. Dies setzt voraus, dass eine solche Spalte im Quellsystem vorhanden ist, die typischerweise zu Prüfzwecken dient.This assumes such a column exists in the source system, which is typically for auditing purposes. Hierbei darf es sich nicht um dieselbe Spalte handeln, die zum Partitionieren der Daten mit den RangeStart/RangeEnd-Parametern verwendet wird.This should not be the same column used to partition the data with the RangeStart/RangeEnd parameters. Der Maximalwert dieser Spalte wird für jeden der Zeiträume im Inkrementbereich ausgewertet.The maximum value of this column is evaluated for each of the periods in the incremental range. Wenn sie sich seit der letzten Aktualisierung nicht geändert hat, muss der Zeitraum nicht aktualisiert werden.If it has not changed since the last refresh, there is no need to refresh the period. Im Beispiel kann dies die Anzahl der Tage, die inkrementell aktualisiert werden, von zehn auf etwa zwei weitere verringern.In the example, this could further reduce the days incrementally refreshed from ten to around two.

Änderungen erkennen

Tipp

Das aktuelle Design erfordert, dass die Spalte zur Erkennung von Datenänderungen beibehalten und im Arbeitsspeicher zwischengespeichert wird.The current design requires that the column to detect data changes is persisted and cached into memory. Sie können eine der folgenden Techniken in Betracht ziehen, um die Kardinalität und den Arbeitsspeicherbedarf zu reduzieren.You may want to consider one of the following techniques to reduce cardinality and memory consumption.

Behalten Sie nur den Maximalwert dieser Spalte zum Zeitpunkt der Aktualisierung bei, eventuell mithilfe einer Power Query-Funktion.Persist only the maximum value of this column at time of refresh, perhaps using a Power Query function.

Reduzieren Sie die Genauigkeit auf ein Niveau, das angesichts Ihrer Anforderungen an die Aktualisierungsfrequenz vertretbar ist.Reduce the precision to a level that is acceptable given your refresh-frequency requirements.

Wir planen, die Definition benutzerdefinierter Abfragen zur Erkennung von Datenänderungen zu einem späteren Zeitpunkt zu ermöglichen.We plan to allow the definition of custom queries for data-change detection at a later date. Dies könnte dazu dienen, das Beibehalten des Spaltenwerts ganz zu vermeiden.This could be used to avoid persisting the column value altogether.

Nur vollständige Zeiträume aktualisierenOnly refresh complete periods

Angenommen, Ihre Aktualisierung ist für 4:00 Uhr morgens geplant.Let's say your refresh is scheduled to run at 4:00 AM every morning. Wenn während dieser 4 Stunden Daten im Quellsystem auftauchen, möchten Sie diese möglicherweise nicht berücksichtigen.If data appears in the source system during those 4 hours, you may not want to account for it. Einige betriebswirtschaftliche Metriken – wie Fässer pro Tag in der Öl- und Gasindustrie – ergeben bei Teiltagen keinen Sinn.Some business metrics -- such as barrels per day in the oil and gas industry -- make no sense with partial days.

Ein weiteres Beispiel ist das Aktualisieren von Daten in einem Finanzsystem, bei dem die Daten des Vormonats am 12. Kalendertag des Monats freigegeben werden.Another example is refreshing data from a financial system where data for the previous month is approved on the 12th calendar day of the month. Legen Sie in diesem Fall den Inkrementbereich auf 1 Monat fest, und planen Sie die Aktualisierung für den 12. Tag des Monats.You could set the incremental range to 1 month and schedule the refresh to run on the 12th day of the month. Wenn diese Option aktiviert ist, werden z.B. die Daten vom Januar am 12. Februar aktualisiert.With this option checked, it would for example refresh January data on February 12th.

Vollständige Zeiträume

Hinweis

Aktualisierungsvorgänge im Dienst erfolgen gemäß der UTC-Zeit.Refresh operations in the service run under UTC time. Dies kann den Stichtag bestimmen und sich auf ganze Zeiträume auswirken.This can determine the effective date and affect complete periods. Wir planen, die Möglichkeit hinzuzufügen, den Stichtag für eine Aktualisierung zu überschreiben.We plan to add the ability to override the effective date for a refresh operation.

Veröffentlichen im DienstPublish to the service

Da die inkrementelle Aktualisierung eine ausschließliche Premium-Funktion ist, ermöglicht das Dialogfeld „Veröffentlichen“ nur die Auswahl eines Arbeitsbereichs mit Premium-Kapazität.Since incremental refresh is a Premium only feature, the publish dialog only allows selection of a workspace on Premium capacity.

Veröffentlichen im Dienst

Sie können das Modell nun aktualisieren.You can now refresh the model. Die erste Aktualisierung kann aufgrund des Imports der Verlaufsdaten länger dauern.The first refresh may take longer to import the historical data. Nachfolgende Aktualisierungen sind wesentlich schneller, da sie inkrementell erfolgen.Subsequent refreshes can be much quicker because they use incremental refresh.

Zeitüberschreitungen bei AbfragenQuery timeouts

Im Artikel Problembehandlung bei Aktualisierungsszenarios wird erklärt, dass es bei Aktualisierungsvorgängen im Power BI-Dienst zu Zeitüberschreitungen kommt.The troubleshooting refresh article explains that refresh operations in the Power BI service are subject to timeouts. Abfragen können auch durch die standardmäßige Zeitüberschreitung für die Datenquelle eingeschränkt werden.Queries can also be limited by the default timeout for the data source. Die meisten relationalen Datenquellen erlauben das Überschreiben von Zeitüberschreitungen im Ausdruck „M“.Most relational sources allow overriding timeouts in the M expression. Zum Beispiel wird im folgenden Ausdruck die SQL Server-Datenzugriffsfunktion verwendet, um sie auf 2 Stunden festzulegen.For example, the expression below uses the SQL Server data-access function to set it to 2 hours. Jeder durch die Richtlinienbereiche definierte Zeitraum sendet eine Abfrage unter Einhaltung der Einstellung für die Befehlszeitüberschreitung.Each period defined by the policy ranges submits a query observing the command timeout setting.

let
    Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2, 0, 0)]),
    dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
    #"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
    #"Filtered Rows"

EinschränkungenLimitations

Für die derzeit zusammengesetzten Modelle, inkrementeller Aktualisierung wird für SQL, Oracle, unterstützt und Datenquellen nur Teradata.Currently, for composite models, incremental refresh is supported for SQL, Oracle, and Teradata data sources only.