Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Semantische Modelle in einer Premium-Kapazität mit aktiviertem XMLA-Endpunkt für Lese-/Schreibvorgänge ermöglichen erweiterte Aktualisierungs-, Partitionsverwaltungs- und Metadatenbereitstellungen nur über Tools, Skripts und API-Unterstützung. Darüber hinaus sind Aktualisierungsvorgänge über den XMLA-Endpunkt nicht auf 48 Aktualisierungen pro Tag beschränkt, und das geplante Aktualisierungszeitlimit wird nicht auferlegt.
Partitionen
Semantische Modelltabellenpartitionen sind nicht sichtbar und können nicht mithilfe von Power BI Desktop oder dem Power BI-Dienst verwaltet werden. Bei Modellen in einem Arbeitsbereich, der einer Premium-Kapazität zugewiesen ist, können Partitionen über den XMLA-Endpunkt verwaltet werden. Sie können Tools wie SQL Server Management Studio (SSMS) oder den Open-Source-Tabellarischen Editor verwenden, um Partitionen über Skripting mit Tabular Model Scripting Language (TMSL) und programmgesteuert mit dem Tabellarischen Objektmodell (TOM) zu verwalten.
Wenn Sie ein Modell zum ersten Mal im Power BI-Dienst veröffentlichen, verfügt jede Tabelle im neuen Modell über eine Partition. Bei Tabellen ohne inkrementelle Aktualisierungsrichtlinie enthält diese Partition alle Datenzeilen für diese Tabelle, es sei denn, Filter werden angewendet. Bei Tabellen mit einer inkrementellen Aktualisierungsrichtlinie ist nur eine anfängliche Partition vorhanden, da Power BI die Richtlinie noch nicht angewendet hat. Sie konfigurieren die anfängliche Partition in Power BI Desktop, wenn Sie den Datums-/Uhrzeitbereichsfilter für Ihre Tabelle basierend auf den RangeStart Parametern und RangeEnd anderen Filtern definieren, die im Power Query-Editor angewendet werden. Diese anfängliche Partition enthält nur die Datenzeilen, die Ihren Filterkriterien entsprechen.
Wenn Sie den ersten Aktualisierungsvorgang ausführen, aktualisieren Tabellen ohne inkrementelle Aktualisierungsrichtlinie alle Zeilen, die in der Standard-Einzelpartition dieser Tabelle enthalten sind. Bei Tabellen mit einer inkrementellen Aktualisierungsrichtlinie werden Aktualisierungs- und Verlaufspartitionen automatisch erstellt, und Zeilen werden entsprechend dem Datum/der Uhrzeit für jede Zeile in sie geladen. Wenn die inkrementelle Aktualisierungsrichtlinie das Abrufen von Daten in Echtzeit umfasst, fügt Power BI der Tabelle auch eine DirectQuery-Partition hinzu.
Von Bedeutung
Wenn Sie die inkrementelle Aktualisierung mit Echtzeitdaten (Hybridmodus) verwenden, sollten Tabellen im Zusammenhang mit der Hybridtabelle den Dualspeichermodus verwenden, um Leistungseinbußen zu vermeiden. Darüber hinaus kann die visuelle Zwischenspeicherung Liveupdates verzögern, bis die Visualisierungen die Daten erneut abfragen. Weitere Informationen finden Sie unter Fehlerbehebung bei der inkrementellen Aktualisierung und Echtzeitdaten.
Dieser erste Aktualisierungsvorgang kann einige Zeit in Anspruch nehmen, abhängig von der Datenmenge, die aus der Datenquelle geladen werden muss. Die Komplexität des Modells kann auch ein wichtiger Faktor sein, da Aktualisierungsvorgänge mehr Verarbeitung und Neuberechnung ausführen müssen. Dieser Vorgang kann initialisiert werden. Weitere Informationen finden Sie unter "Verhindern von Timeouts bei der ersten vollständigen Aktualisierung".
Partitionen werden nach Periodengranularität angelegt und bezeichnet: Jahre, Quartale, Monate und Tage. Die neuesten Partitionen, die Aktualisierungspartitionen , enthalten Zeilen im Aktualisierungszeitraum, den Sie in der Richtlinie angeben. Historische Partitionen enthalten Zeilen je nach vollständiger Periode bis zum Aktualisierungszeitraum. Wenn Echtzeit aktiviert ist, erfasst eine DirectQuery-Partition alle Datenänderungen, die nach dem Enddatum des Aktualisierungszeitraums aufgetreten sind. Die Granularität für Aktualisierungs- und Verlaufspartitionen hängt von den Aktualisierungs- und Verlaufszeiträumen (Speicher) ab, die Sie beim Definieren der Richtlinie auswählen.
Wenn z. B. das heutige Datum der 2. Februar 2021 ist und unsere Tabelle "FactInternetSales" in der Datenquelle Zeilen bis heute enthält, und unsere Richtlinie angibt, dass Echtzeitänderungen einbezogen werden, sollen Zeilen, die im letzten 24 Stunden Zeitraum aktualisiert wurden, berücksichtigt werden und Zeilen aus den letzten drei Jahren für den historischen Zeitraum gespeichert werden. Anschließend wird mit dem ersten Aktualisierungsvorgang eine DirectQuery-Partition für Änderungen in der Zukunft erstellt. Für die heutigen Zeilen wird eine neue Importpartition erstellt, und für gestern, einen ganzen Tag, den 1. Februar 2021, wird eine historische Partition erstellt. Eine historische Partition wird für den vorherigen gesamten Monatszeitraum (Januar 2021) erstellt. Eine historische Partition wird für den vorangegangenen gesamten Jahreszeitraum (2020) erstellt. Historische Partitionen für die gesamten Jahre 2019 und 2018 werden erstellt. Es werden keine ganzen Quartalspartitionen erstellt, da am 2. Februar das erste vollständige Quartal 2021 noch nicht abgeschlossen ist.
Bei jedem Aktualisierungsvorgang werden nur die Partitionen für den Aktualisierungszeitraum aktualisiert. Der Datumsfilter der DirectQuery-Partition wird aktualisiert, um nur die Änderungen einzuschließen, die nach dem aktuellen Aktualisierungszeitraum auftreten. Für neue Zeilen mit einem neuen Datum/einer neuen Uhrzeit innerhalb des aktualisierten Aktualisierungszeitraums wird eine neue Aktualisierungspartition erstellt. Vorhandene Zeilen mit einem Datum/einer Uhrzeit, die sich bereits innerhalb vorhandener Partitionen im Aktualisierungszeitraum befinden, werden mit Updates aktualisiert. Zeilen mit einem Datum/einer Uhrzeit, die älter als der Aktualisierungszeitraum sind, werden nicht mehr aktualisiert.
Wenn ganze Zeiträume geschlossen werden, werden Partitionen zusammengeführt. Wenn z. B. ein 1-Tage-Aktualisierungszeitraum und der verlaufsbezogene Speicherzeitraum für drei Jahre in der Richtlinie angegeben ist, werden am ersten Tag des Monats alle Tagespartitionen für den vorherigen Monat in eine Monatspartition zusammengeführt. Am ersten Tag eines neuen Quartals werden alle drei vorherigen Monatspartitionen in eine Viertelpartition zusammengeführt. Am ersten Tag eines neuen Jahres werden alle vier vorherigen Quartalspartitionen in eine Jahrespartition zusammengeführt.
Ein Modell behält immer Partitionen für den gesamten verlaufsgeschichtlichen Speicherzeitraum sowie ganze Periodenpartitionen bis zum aktuellen Aktualisierungszeitraum bei. Im Beispiel werden volle drei Jahre historischer Daten in Partitionen für 2018, 2019, 2020 sowie Partitionen für den Monatsabschnitt 2021Q101, den Tagesabschnitt 2021Q10201 und die Partition der aktuellen Tagesaktualisierungsperiode aufbewahrt. Da das Beispiel historische Daten für drei Jahre aufbewahrt, wird die Partition 2018 bis zur ersten Aktualisierung am 1. Januar 2022 beibehalten.
Mit dem inkrementellen Aktualisieren und den Echtzeitdaten von Power BI übernimmt der Dienst die Verwaltung der Partitionen für Sie basierend auf der Richtlinie. Während der Dienst die gesamte Partitionsverwaltung für Sie verarbeiten kann, können Sie mithilfe von Tools über den XMLA-Endpunkt Partitionen selektiv einzeln, sequenziell oder parallel aktualisieren.
Allgemeine Partitionsaktualisierungsmuster
Berücksichtigen Sie beim Arbeiten mit XMLA-Endpunktvorgängen die folgenden allgemeinen Muster für die Verwaltung von Aktualisierungsvorgängen:
- Häufige kleine Aktualisierungen: Führen Sie mehrere kleine, gezielte Aktualisierungsvorgänge während der Geschäftszeiten mithilfe von XMLA-Partitionsbefehlen oder der erweiterten REST-API aus, um die aktuellen Daten aktuell zu halten, ohne die gesamte Tabelle zu verarbeiten.
-
Selektive historische Rückfüllungen: Führen Sie größere historische Partitionsaktualisierungen oder einmalige Datenkorrekturen während der Abwesenheitszeit mithilfe von TMSL durch
applyRefreshPolicy: false, um bestimmte historische Zeiträume neu zu erstellen, ohne das automatische Richtlinienverhalten zu beeinträchtigen. - Mehrstufige Anfangslasten: Unterbrechen Sie die anfängliche Aktualisierung in kleinere Batches, indem Sie Partitionen inkrementell verarbeiten, um Timeouts zu vermeiden und den Ressourcenverbrauch zu verwalten.
Mit diesen Mustern können Sie die Aktualität von Echtzeitdaten mit Systemleistung und Ressourceneinschränkungen in Einklang bringen.
Aktualisieren der Verwaltung mit SQL Server Management Studio
SQL Server Management Studio (SSMS) kann zum Anzeigen und Verwalten von Partitionen verwendet werden, die von der Anwendung inkrementeller Aktualisierungsrichtlinien erstellt wurden. Mithilfe von SSMS können Sie beispielsweise eine bestimmte historische Partition aktualisieren, die nicht im inkrementellen Aktualisierungszeitraum liegt, um ein veraltetes Update durchzuführen, ohne alle historischen Daten aktualisieren zu müssen. SSMS kann auch beim Bootstrapping zum Laden von Verlaufsdaten für große Modelle verwendet werden, indem historische Partitionen in Batches inkrementell hinzugefügt/aktualisiert werden.
Außerkraftsetzen des inkrementellen Aktualisierungsverhaltens
Mit SSMS haben Sie auch mehr Kontrolle über das Aufrufen von Aktualisierungen mithilfe der Skriptsprache des Tabellarischen Modells und des tabellarischen Objektmodells. Klicken Sie z. B. im SSMS im Objekt-Explorer mit der rechten Maustaste auf eine Tabelle, und wählen Sie dann die Menüoption " Prozesstabelle " aus, und wählen Sie dann die Schaltfläche "Skript" aus, um einen TMSL-Aktualisierungsbefehl zu generieren.
Diese Parameter können mit dem TMSL-Aktualisierungsbefehl verwendet werden, um das standardmäßige inkrementelle Aktualisierungsverhalten außer Kraft zu setzen:
applyRefreshPolicy. Wenn eine Tabelle eine inkrementelle Aktualisierungsrichtlinie definiert hat, wird ermittelt,
applyRefreshPolicyob die Richtlinie angewendet wird oder nicht. Wenn die Richtlinie nicht angewendet wird, bleiben die Partitionsdefinitionen durch den Vollbetriebsprozess unverändert, und alle Partitionen in der Tabelle werden komplett aktualisiert. Der Standardwert ist wahr.effectiveDate. Wenn eine inkrementelle Aktualisierungsrichtlinie angewendet wird, muss sie das aktuelle Datum kennen, um rollierende Zeitfenster für die inkrementellen Aktualisierungs- und historischen Zeiträume zu ermitteln. Mit dem
effectiveDateParameter können Sie das aktuelle Datum überschreiben. Dieser Parameter ist nützlich für Test-, Demo- und Geschäftsszenarien, in denen Daten inkrementell in der Vergangenheit oder Zukunft aktualisiert werden, z. B. Budgets in der Zukunft. Der Standardwert ist das aktuelle Datum.
{
"refresh": {
"type": "full",
"applyRefreshPolicy": true,
"effectiveDate": "12/31/2013",
"objects": [
{
"database": "IR_AdventureWorks",
"table": "FactInternetSales"
}
]
}
}
Weitere Informationen zum Außer-Kraft-Setzen des inkrementellen und standardmäßigen Aktualisierungsverhaltens mit TMSL finden Sie im Befehl "Aktualisieren".
Verwalten von Richtlinien mit tabellarischem Editor
Zusätzlich zu SSMS können Sie den Tabellarischen Editor verwenden, um inkrementelle Aktualisierungsrichtlinien direkt für semantische Modelle über den XMLA-Endpunkt zu erstellen und zu ändern. Mit dieser Methode können Sie Richtlinieneinstellungen wie Aktualisierungszeiträume, verlaufsbezogene Zeiträume und Quellausdrücke anpassen, ohne das Modell aus Power BI Desktop erneut veröffentlichen zu müssen. Der Tabular Editor kann auch verwendet werden, um Aktualisierungsrichtlinien auf vorhandene Tabellen anzuwenden sowie Ausdrücke und RangeStart Parameterausdrücke zu verwaltenRangeEnd. Weitere Informationen finden Sie in der Dokumentation zum tabellarischen Editor unter inkrementelle Aktualisierung .
Aktualisieren der Orchestrierung und Automatisierung
Über die Verwendung von SSMS, TMSL und TOM für die Verwaltung von Aktualisierungen über den XMLA-Endpunkt hinaus hinaus. Sie können auch Semantikmodellaktualisierungsvorgänge mithilfe der Power BI-REST-API koordinieren. Die erweiterte Aktualisierungs-API bietet weitere Funktionen, einschließlich Aktualisierung auf Tabellenebene und Partitionsebene, Wiederholungslogik, Abbruch und benutzerdefinierter Timeoutverwaltung. Dieser Ansatz ist nützlich, um Aktualisierungsvorgänge in automatisierte Workflows und CI/CD-Pipelines zu integrieren. Ausführliche Anleitungen finden Sie unter "Erweiterte Aktualisierung mit der Power BI REST-API".
Sicherstellen einer optimalen Leistung
Bei jedem Aktualisierungsvorgang sendet der Power BI-Dienst möglicherweise Initialisierungsabfragen für jede inkrementelle Aktualisierungspartition an die Datenquelle. Möglicherweise können Sie die inkrementelle Aktualisierungsleistung verbessern, indem Sie die Anzahl der Initialisierungsabfragen verringern, indem Sie die folgende Konfiguration sicherstellen:
- Die Tabelle, für die Sie die inkrementelle Aktualisierung konfigurieren, sollte Daten aus einer einzelnen Datenquelle abrufen. Wenn die Tabelle Daten aus mehreren Datenquellen abruft, wird die Anzahl der vom Dienst für jeden Aktualisierungsvorgang gesendeten Abfragen mit der Anzahl der Datenquellen multipliziert, wodurch die Aktualisierungsleistung möglicherweise verringert wird. Stellen Sie sicher, dass die Abfrage für die inkrementelle Aktualisierungstabelle für eine einzelne Datenquelle gilt.
- Für Lösungen mit der inkrementellen Aktualisierung von Importpartitionen und Echtzeitdaten mit Direct Query müssen alle Partitionen Daten aus einer einzigen Datenquelle abfragen.
- Wenn Ihre Sicherheitsanforderungen zulassen, legen Sie die Datenschutzstufe "Datenquelle" auf " Organisation " oder "Öffentlich" fest. Standardmäßig ist die Datenschutzstufe "Privat". Diese Ebene kann jedoch verhindern, dass Daten mit anderen Cloudquellen ausgetauscht werden. Um die Datenschutzstufe festzulegen, wählen Sie das Menü Weitere Optionen aus und wählen dann Einstellungen,>Datenquellenanmeldeinformationen,>Anmeldeinformationen bearbeiten und >Datenschutzstufe für diese Datenquelle aus. Wenn die Datenschutzstufe im Power BI Desktop-Modell vor der Veröffentlichung im Dienst festgelegt ist, wird sie beim Veröffentlichen nicht an den Dienst übertragen. Sie müssen sie weiterhin in den Semantikmodelleinstellungen im Dienst festlegen. Weitere Informationen finden Sie unter Datenschutzstufen.
- Wenn Sie ein lokales Datengateway verwenden, stellen Sie sicher, dass Sie Version 3000.77.3 oder höher verwenden.
Verhindern von Timeouts bei der ersten vollständigen Aktualisierung
Nachdem Sie im Power BI-Dienst veröffentlicht haben, führt der anfängliche vollständige Aktualisierungsvorgang für das Modell Partitionen für die Tabelle für inkrementelle Aktualisierung ein, lädt und verarbeitet Verlaufsdaten für den gesamten Zeitraum, der in der inkrementellen Aktualisierungsrichtlinie definiert ist. Bei einigen Modellen, die große Datenmengen laden und verarbeiten, kann die Zeitspanne, die der anfängliche Aktualisierungsvorgang benötigt, das vom Dienst auferlegte Aktualisierungszeitlimit oder eine Abfragezeitbeschränkung überschreiten, die von der Datenquelle auferlegt wird.
Durch das Bootstrapping des anfänglichen Aktualisierungsvorgangs kann der Dienst Partitionsobjekte für die inkrementelle Aktualisierungstabelle erstellen, aber keine historischen Daten in einer der Partitionen laden und verarbeiten. SSMS wird dann zum selektiven Verarbeiten von Partitionen verwendet. Abhängig von der Datenmenge, die für jede Partition geladen werden soll, können Sie jede Partition sequenziell oder in kleinen Batches verarbeiten. Diese Methode reduziert das Potenzial für eine oder mehrere dieser Partitionen, ein Timeout zu verhindern. Die folgenden Methoden funktionieren für jede Datenquelle.
Aktualisierungsrichtlinie anwenden
Das Open Source Tabular Editor 2-Tool bietet eine einfache Möglichkeit, einen anfänglichen Aktualisierungsvorgang zu bootstrapieren. Nachdem Sie ein Modell mit einer inkrementellen Aktualisierungsrichtlinie, die in Power BI Desktop definiert ist, an den Dienst veröffentlicht haben, stellen Sie über den XMLA-Endpunkt im Lese-/Schreibmodus eine Verbindung mit dem Modell her. Führen Sie "Aktualisierungsrichtlinie anwenden" auf der inkrementellen Aktualisierungstabelle aus. Wenn nur die Richtlinie angewendet wird, werden Partitionen erstellt, aber es werden keine Daten in sie geladen. Stellen Sie dann eine Verbindung mit SSMS her, um die Partitionen sequenziell oder in Batches zu aktualisieren, um die Daten zu laden und zu verarbeiten. Weitere Informationen finden Sie in der Dokumentation zum tabellarischen Editor unter inkrementelle Aktualisierung .
Power Query-Filter für leere Partitionen
Fügen Sie vor der Veröffentlichung des Modells im Power Query-Editor der ProductKey-Spalte einen weiteren Filter hinzu, der alle Werte außer 0 herausfiltert, sodass effektiv alle Daten aus der Tabelle "FactInternetSales" entfernt werden.
Nachdem Sie "Schließen und Übernehmen" im Power Query-Editor ausgewählt haben, die inkrementelle Aktualisierungsrichtlinie definiert und das Modell gespeichert haben, wird das Modell an den Dienst veröffentlicht. Vom Dienst wird der anfängliche Aktualisierungsvorgang auf dem Modell ausgeführt. Partitionen für die FactInternetSales-Tabelle werden gemäß der Richtlinie erstellt, es werden jedoch keine Daten geladen und verarbeitet, da alle Daten herausgefiltert werden.
Nach Abschluss des anfänglichen Aktualisierungsvorgangs wird wieder im Power Query-Editor der andere Filter für die ProductKey Spalte entfernt. Nachdem Sie im Power Query-Editor "Schließen und Übernehmen" ausgewählt und das Modell gespeichert haben, wird das Modell nicht erneut veröffentlicht. Wenn das Modell erneut veröffentlicht wird, überschreibt es die inkrementellen Aktualisierungsrichtlinieneinstellungen und erzwingt eine vollständige Aktualisierung des Modells, wenn ein nachfolgender Aktualisierungsvorgang vom Dienst ausgeführt wird. Führen Sie stattdessen eine Nur-Metadatenbereitstellung mithilfe des Application Lifecycle Management (ALM)-Toolkits aus, das den Filter für die ProductKey Spalte aus dem Modell entfernt. SSMS kann dann zum selektiven Verarbeiten von Partitionen verwendet werden. Wenn alle Partitionen vollständig verarbeitet sind, was eine Prozessneuberechnung für alle Partitionen einschließen muss, wird aus SSMS bei nachfolgenden Aktualisierungsvorgängen für das Modell über den Dienst nur die inkrementellen Aktualisierungspartitionen aktualisiert.
Tipp
Schauen Sie sich Videos, Blogs und mehr an, die von der Power BI-Community von BI-Experten bereitgestellt werden.
Weitere Informationen zum Verarbeiten von Tabellen und Partitionen von SSMS finden Sie unter Prozessdatenbank, Tabelle oder Partitionen (Analysis Services). Weitere Informationen zur Verarbeitung von Modellen, Tabellen und Partitionen mithilfe von TMSL finden Sie im Befehl "Aktualisieren" (TMSL).
Benutzerdefinierte Abfragen zum Erkennen von Datenänderungen
TMSL und TOM können verwendet werden, um das Verhalten erkannter Datenänderungen außer Kraft zu setzen. Diese Methode kann verwendet werden, um zu vermeiden, dass die Spalte für die letzte Aktualisierung im Speichercache beibehalten wird. Es kann auch Szenarien ermöglichen, in denen eine Konfigurations- oder Anweisungstabelle durch Extrahieren, Transformieren und Laden (ETL)-Prozesse vorbereitet wird. Sie können nur die Partitionen kennzeichnen, die aktualisiert werden müssen. Diese Methode kann einen effizienteren inkrementellen Aktualisierungsprozess erstellen, bei dem nur die erforderlichen Zeiträume aktualisiert werden, unabhängig davon, wie lange Datenaktualisierungen stattgefunden haben.
Dieses pollingExpression ist als ein einfacher M-Ausdruck oder Name einer anderen M-Abfrage gedacht. Sie muss einen Skalarwert zurückgeben und für jede Partition ausgeführt werden. Wenn sich der zurückgegebene Wert von dem unterscheidet, was bei der letzten inkrementellen Aktualisierung erfolgte, wird die Partition für die vollständige Verarbeitung gekennzeichnet.
Im folgenden Beispiel werden alle 120 Monate im historischen Zeitraum für rückdatierte Änderungen behandelt. Die Angabe von 120 Monaten anstelle von 10 Jahren bedeutet, dass die Datenkomprimierung möglicherweise nicht so effizient ist. Es erspart jedoch, ein ganzes historisches Jahr zu überarbeiten, was kostspieliger wäre, wenn ein Monat für eine rückdatierte Änderung ausreichend wäre.
"refreshPolicy": {
"policyType": "basic",
"rollingWindowGranularity": "month",
"rollingWindowPeriods": 120,
"incrementalGranularity": "month",
"incrementalPeriods": 120,
"pollingExpression": "<M expression or name of custom polling query>",
"sourceExpression": [
"let ..."
]
}
Tipp
Schauen Sie sich Videos, Blogs und mehr an, die von der Power BI-Community von BI-Experten bereitgestellt werden.
Bereitstellung von Nur-Metadaten
Wenn Sie eine neue Version einer PBIX-Datei aus Power BI Desktop in einem Arbeitsbereich veröffentlichen. Es wird die folgende Eingabeaufforderung angezeigt, um das vorhandene Modell zu ersetzen, wenn bereits ein Modell mit demselben Namen vorhanden ist.
In einigen Fällen möchten Sie das Modell möglicherweise nicht ersetzen, insbesondere bei einer inkrementellen Aktualisierung. Das Modell in Power BI Desktop könnte erheblich kleiner sein als das Modell im Power BI-Dienst. Wenn das Modell im Power BI-Dienst eine inkrementelle Aktualisierungsrichtlinie angewendet hat, verlieren Sie möglicherweise mehrere Jahre historische Daten, wenn das Modell ersetzt wird. Das Aktualisieren aller Verlaufsdaten kann Stunden dauern und zu Systemausfallzeiten für Benutzer führen.
Stattdessen ist es besser, eine nur Metadatenbereitstellung durchzuführen, die die Bereitstellung neuer Objekte ermöglicht, ohne dass die historischen Daten verloren gehen. Wenn Sie beispielsweise nur ein paar Measures hinzufügen, können Sie nur die neuen Measures bereitstellen, ohne die Daten zu aktualisieren, was Zeit spart.
Für Arbeitsbereiche, die einer Premium-Kapazität zugewiesen sind, die für XMLA-Endpunkt-Lese-/Schreibzugriff konfiguriert ist, ermöglichen kompatible Tools die Bereitstellung ausschließlich von Metadaten. Das ALM Toolkit ist z. B. ein Schema-Diff-Tool für Power BI-Modelle und kann nur für die Bereitstellung von Metadaten verwendet werden.
Laden Sie die neueste Version des ALM Toolkits aus dem Git-Repository analysis Services herunter, und installieren Sie es. Schritt-für-Schritt-Anleitungen zur Verwendung des ALM Toolkits sind in der Microsoft-Dokumentation nicht enthalten. Links zur ALM Toolkit-Dokumentation und Informationen zur Unterstützung finden Sie im Hilfemenüband . Um nur eine Metadatenbereitstellung auszuführen, führen Sie einen Vergleich aus, und wählen Sie die ausgeführte Power BI Desktop-Instanz als Quelle und das vorhandene Modell im Power BI-Dienst als Ziel aus. Berücksichtigen Sie die angezeigten Unterschiede, und überspringen Sie die Aktualisierung der Tabelle mit inkrementellen Aktualisierungspartitionen, oder verwenden Sie das Dialogfeld "Optionen ", um Partitionen für Tabellenaktualisierungen beizubehalten. Überprüfen Sie die Auswahl, um die Integrität des Zielmodells sicherzustellen und dann zu aktualisieren.
Programmgesteuertes Hinzufügen einer inkrementellen Aktualisierungsrichtlinie und Echtzeitdaten
Sie können auch die TMSL und TOM verwenden, um einem vorhandenen Modell über den XMLA-Endpunkt eine inkrementelle Aktualisierungsrichtlinie hinzuzufügen.
Hinweis
Um Kompatibilitätsprobleme zu vermeiden, stellen Sie sicher, dass Sie die neueste Version der Analysis Services-Clientbibliotheken verwenden. Um beispielsweise mit Hybridrichtlinien zu arbeiten, muss die Version 19.27.1.8 oder höher sein.
Der Prozess umfasst die folgenden Schritte:
Stellen Sie sicher, dass das Zielmodell über die erforderliche Mindestkompatibilitätsstufe verfügt. Klicken Sie in SSMS mit der rechten Maustaste auf dieKompatibilitätsstufe>>. Um die Kompatibilitätsstufe zu erhöhen, verwenden Sie entweder ein createOrReplace TMSL-Skript, oder überprüfen Sie den folgenden TOM-Beispielcode für ein Beispiel.
a. Import policy - 1550 b. Hybrid policy - 1565Fügen Sie den Modellausdrücken die
RangeStartParameter undRangeEndParameter hinzu. Fügen Sie ggf. auch eine Funktion hinzu, um Datums-/Uhrzeitwerte in Datumsschlüssel zu konvertieren.Definieren Sie ein
RefreshPolicyObjekt mit den gewünschten Archivierungszeiträumen (Rollfenster) und inkrementellen Aktualisierungszeiträumen sowie einen Quellausdruck, der die Zieltabelle basierend auf denRangeStartUndRangeEndParametern filtert. Legen Sie den Aktualisierungsrichtlinienmodus auf "Importieren " oder "Hybrid" fest, je nach Ihren Anforderungen an Echtzeitdaten. Hybrid bewirkt, dass Power BI der Tabelle eine DirectQuery-Partition hinzu fügt, um die neuesten Änderungen aus der Datenquelle abzurufen, die nach der letzten Aktualisierungszeit aufgetreten ist.Fügen Sie der Tabelle die Aktualisierungsrichtlinie hinzu, und führen Sie eine vollständige Aktualisierung durch, damit Power BI die Tabelle entsprechend Ihren Anforderungen partitioniert.
Im folgenden Codebeispiel wird veranschaulicht, wie die vorherigen Schritte mithilfe von TOM ausgeführt werden. Wenn Sie dieses Beispiel wie folgt verwenden möchten, müssen Sie über eine Kopie für die AdventureWorksDW-Datenbank verfügen und die FactInternetSales-Tabelle in ein Modell importieren. Im Codebeispiel wird davon ausgegangen, dass die RangeStart Parameter und RangeEnd die DateKey Funktion im Modell nicht vorhanden sind. Importieren Sie einfach die FactInternetSales-Tabelle , und veröffentlichen Sie das Modell in einem Arbeitsbereich in Power BI Premium. Aktualisieren Sie dann das workspaceUrl damit das Codebeispiel eine Verbindung mit Ihrem Modell herstellen kann. Aktualisieren Sie bei Bedarf weitere Codezeilen.
using System;
using TOM = Microsoft.AnalysisServices.Tabular;
namespace Hybrid_Tables
{
class Program
{
static string workspaceUrl = "<Enter your Workspace URL here>";
static string databaseName = "AdventureWorks";
static string tableName = "FactInternetSales";
static void Main(string[] args)
{
using (var server = new TOM.Server())
{
// Connect to the dataset.
server.Connect(workspaceUrl);
TOM.Database database = server.Databases.FindByName(databaseName);
if (database == null)
{
throw new ApplicationException("Database cannot be found!");
}
if(database.CompatibilityLevel < 1565)
{
database.CompatibilityLevel = 1565;
database.Update();
}
TOM.Model model = database.Model;
// Add RangeStart, RangeEnd, and DateKey function.
model.Expressions.Add(new TOM.NamedExpression {
Name = "RangeStart",
Kind = TOM.ExpressionKind.M,
Expression = "#datetime(2021, 12, 30, 0, 0, 0) meta [IsParameterQuery=true, Type=\"DateTime\", IsParameterQueryRequired=true]"
});
model.Expressions.Add(new TOM.NamedExpression
{
Name = "RangeEnd",
Kind = TOM.ExpressionKind.M,
Expression = "#datetime(2021, 12, 31, 0, 0, 0) meta [IsParameterQuery=true, Type=\"DateTime\", IsParameterQueryRequired=true]"
});
model.Expressions.Add(new TOM.NamedExpression
{
Name = "DateKey",
Kind = TOM.ExpressionKind.M,
Expression =
"let\n" +
" Source = (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)\n" +
"in\n" +
" Source"
});
// Apply a RefreshPolicy with Real-Time to the target table.
TOM.Table salesTable = model.Tables[tableName];
TOM.RefreshPolicy hybridPolicy = new TOM.BasicRefreshPolicy
{
Mode = TOM.RefreshPolicyMode.Hybrid,
IncrementalPeriodsOffset = -1,
RollingWindowPeriods = 1,
RollingWindowGranularity = TOM.RefreshGranularityType.Year,
IncrementalPeriods = 1,
IncrementalGranularity = TOM.RefreshGranularityType.Day,
SourceExpression =
"let\n" +
" Source = Sql.Database(\"demopm.database.windows.net\", \"AdventureWorksDW\"),\n" +
" dbo_FactInternetSales = Source{[Schema=\"dbo\",Item=\"FactInternetSales\"]}[Data],\n" +
" #\"Filtered Rows\" = Table.SelectRows(dbo_FactInternetSales, each [OrderDateKey] >= DateKey(RangeStart) and [OrderDateKey] < DateKey(RangeEnd))\n" +
"in\n" +
" #\"Filtered Rows\""
};
salesTable.RefreshPolicy = hybridPolicy;
model.RequestRefresh(TOM.RefreshType.Full);
model.SaveChanges();
}
Console.WriteLine("{0}{1}", Environment.NewLine, "Press [Enter] to exit...");
Console.ReadLine();
}
}
}
Verwandte Inhalte
- Konfigurieren Sie inkrementelle Aktualisierung und Echtzeitdaten
- Problembehebung bei inkrementeller Aktualisierung und Echtzeitdaten
- Erweiterte Aktualisierung mit der Power BI REST-API
- Partitionen in tabellarischen Modellen
- Externe Tools in Power BI Desktop
- Konfigurieren von geplanten Aktualisierungen