Abfragen von Daten, wie sie in der Vergangenheit vorhanden waren

Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric

Microsoft Fabric bietet die Möglichkeit, verlaufsgeschichtliche Daten abzufragen, wie sie in der Vergangenheit in Warehouse- und SQL Analytics-Endpunktelementen (Vorschau) vorhanden waren. Die Möglichkeit, Daten aus einem bestimmten Zeitstempel abzufragen, ist in der Data Warehouse-Branche als Zeitreise bekannt.

  • Zeitreisen ermöglichen eine stabile Berichterstattung, indem sie die Konsistenz und Genauigkeit der Daten im Laufe der Zeit bewahren.
  • Zeitreisen ermöglichen eine historische Trendanalyse, indem sie Abfragen über verschiedene Zeitpunkte in der Vergangenheit durchführen und dazu beitragen, zukünftige Trends vorherzusagen.
  • Zeitreisen vereinfachen kostengünstige Vergleiche zwischen älteren Datenversionen.
  • Zeitreisen helfen bei der Analyse der Leistung im Laufe der Zeit.
  • Zeitreisen ermöglichen es Unternehmen, Datenänderungen im Laufe der Zeit zu prüfen, was häufig aus Gründen der Compliance erforderlich ist.
  • Zeitreisen helfen, die Ergebnisse von maschinellen Lernmodellen zu reproduzieren.
  • Zeitreisen können Tabellen so abfragen, wie sie zu einem bestimmten Zeitpunkt in mehreren Datenbanken im selben Arbeitsbereich vorhanden waren.
  • Zeitreisehinweise können mit sitzungsgebundenen Temp-Tabellen verwendet werden, die von der TIMESTAMP-Syntax nicht betroffen sind.

Was ist Zeitreise?

Die Zeitreise in einem Data Warehouse ist eine kostengünstige und effiziente Fähigkeit, um schnell frühere Versionen von Daten abzufragen.

Microsoft Fabric ermöglicht derzeit das Abrufen vergangener Datenzustände auf folgende Weise:

Zeitreise mit dem T-SQL-Befehl "FOR TIMESTAMP AS OF"

Tabellen können mithilfe der OPTION FOR TIMESTAMP AS OF T-SQL-Syntax abgefragt werden, um Daten zu früheren Zeitpunkten abzurufen. Die FOR TIMESTAMP AS OF-Klausel wirkt sich auf die gesamte Anweisung aus, einschließlich aller verknüpften Warehouse-Tabellen.

Die Ergebnisse der Zeitreiseabfragen sind von Natur aus schreibgeschützt. Schreibvorgänge wie EINFÜGEN, AKTUALISIEREN und LÖSCHEN können nicht ausgeführt werden, während der FOR TIMESTAMP AS OF-Abfragehinweis verwendet wird.

Verwenden Sie die OPTION-Klausel, um den FOR TIMESTAMP AS OF-Abfragehinweis anzugeben. Abfragen geben Daten genau so zurück, wie sie zum Zeitstempel vorhanden sind, angegeben als YYYY-MM-DDTHH:MM:SS[.fff]. Zum Beispiel:

SELECT *
FROM [dbo].[dimension_customer] AS DC
OPTION (FOR TIMESTAMP AS OF '2024-03-13T19:39:35.28'); --March 13, 2024 at 7:39:35.28 PM UTC

Verwenden Sie die CONVERT-Syntax für das erforderliche Datetime-Format mit style 126.

Der Zeitstempel kann nur einmal mithilfe der OPTION-Klausel für Abfragen, gespeicherte Prozeduren, Ansichten usw. angegeben werden. Das OPTION gilt für alles innerhalb der SELECT-Anweisung.

Beispiele finden Sie unter Abfrage mit Zeitreise.

Datenaufbewahrung in Fabric Data Warehouse

  • Für Fabric Data Warehouse ist die Zeitreise durch die konfigurierbare Datenaufbewahrungsdauer warehouse begrenzt, die automatisch erfolgt.
  • Bei einem SQL-Analyseendpunkt in Lakehouse ist die Zeitreise auf Tabellenebene durch Vakuumaufbewahrungseinstellungen begrenzt. Die Lakehouse-Tabellenwartung lässt sich manuell im Fabric-Portal oder als geplanter und orchestrierter Prozess mithilfe von Notebooks, Pipelines oder der REST-API ausführen.

In Microsoft Fabric behält ein Lager verschiedene Versionen der Daten basierend auf dem konfigurierten Aufbewahrungszeitraum automatisch bei. Der Standardmäßige Aufbewahrungszeitraum für Lager ist 30 Kalendertage und kann basierend auf den Anforderungen Ihrer Organisation konfiguriert werden. Dies ermöglicht es, Tabellen innerhalb des Aufbewahrungsfensters ab einem früheren Zeitpunkt abzufragen. Alle Einfügungen, Aktualisierungen und Löschungen, die am Lager vorgenommen werden, werden aufbewahrt.

Die Aufbewahrung beginnt automatisch ab dem Zeitpunkt der Erstellung des Warehouses. Abgelaufene Dateien werden nach Erreichen der Aufbewahrungsfrist automatisch gelöscht.

  • Derzeit gibt eine SELECT Anweisung mit dem FOR TIMESTAMP AS OF Abfragehinweis die neueste Version des Tabellenschemas zurück.
  • Alle in einer Tabelle gelöschten Datensätze können so abgefragt werden, wie sie vor der Löschung vorhanden waren, wenn die Löschung innerhalb des Aufbewahrungszeitraums erfolgt.
  • Eine Zeitreiseabfrage zu einem Zeitpunkt vor der Schemaänderung ist nur dann erfolgreich, wenn sie auf Spalten verweist, die zu diesem Zeitpunkt bereits vorhanden waren, und schlägt fehl, wenn sie auf Spalten verweist, die erst später eingeführt wurden.

Zeitreiseszenarien

Betrachten Sie die Möglichkeit des Zeitreisens zu früheren Datenständen in den folgenden Szenarien:

Stabile Berichterstellung

Die häufige Ausführung von ETL-Aufgaben (Extrahieren, Transformieren und Laden) ist unerlässlich, um mit der sich ständig verändernden Datenlandschaft Schritt zu halten. Die Möglichkeit der Zeitreise unterstützt dieses Ziel, indem sie die Datenintegrität sicherstellt und zugleich die Flexibilität bietet, Berichte basierend auf Abfrageergebnissen zu erstellen, die zu einem früheren Zeitpunkt, wie am Vorabend, zurückgegeben werden, während im Hintergrund weiterverarbeitet wird.

ETL-Aktivitäten können gleichzeitig ausgeführt werden, während die gleiche Tabelle ab einem vorherigen Zeitpunkt abgefragt wird.

Historische Trend- und Vorhersageanalysen

Zeitreisen vereinfachen die Analyse historischer Daten und helfen, wertvolle Trends und Muster zu erkennen, indem Daten über verschiedene vergangene Zeiträume hinweg abgefragt werden. Dies erleichtert die Prädiktive Analyse, indem das Experimentieren mit historischen Datasets und schulungen von Vorhersagemodellen ermöglicht wird. Er unterstützt die Antizipation zukünftiger Trends und hilft dabei, fundierte, datengesteuerte Entscheidungen zu treffen.

Analyse und Vergleich

Die Zeitreise bietet eine effiziente und kostengünstige Fehlerbehebungsfunktion, da sie durch eine historische Perspektive Analysen und Vergleiche ermöglicht und die Identifizierung der Ursache erleichtert.

Leistungsanalyse

Zeitreisen können helfen, die Leistung von Warehouse-Abfragen zu analysieren. Dies hilft dabei, die Leistungsbeeinträchtigungstrends zu identifizieren, basierend auf denen die Abfragen optimiert werden können.

Prüfung und Compliance

Zeitreisen optimieren Prüfungs- und Compliance-Verfahren, indem sie Auditoren dazu befähigen, durch den Datenverlauf zu navigieren. Dies trägt nicht nur dazu bei, dass die Vorschriften eingehalten werden, sondern auch zu mehr Sicherheit und Transparenz.

Machine Learning-Modelle

Zeitreise-Funktionen helfen dabei, die Ergebnisse von Machine-Learning-Modellen zu reproduzieren, indem sie die historische Datenanalyse und die Simulation realer Szenarien erleichtern. Dadurch wird die Gesamtzuverlässigkeit der Modelle erhöht, so dass genaue datengestützte Entscheidungen getroffen werden können.

Überlegungen zum Entwurf

Überlegungen zum Abfragehinweis „OPTION FOR TIMESTAMP AS OF“:

  • Der FOR TIMESTAMP AS OF-Abfragehinweis kann nicht verwendet werden, um die Ansichten innerhalb des Aufbewahrungszeitraums zu einem früheren Zeitpunkt zu erstellen. Er kann verwendet werden, um Ansichten ab dem letzten Zeitpunkt innerhalb des Aufbewahrungszeitraums abzufragen.
  • Der FOR TIMESTAMP AS OF-Abfragehinweis kann nur einmal innerhalb einer SELECT-Anweisung verwendet werden.
  • Der FOR TIMESTAMP AS OF-Abfragehinweis kann innerhalb der SELECT-Anweisung in einer gespeicherten Prozedur definiert werden.
  • Der FOR TIMESTAMP AS OF Abfragehinweis wirkt sich nicht auf temporäre Tabellen mit Sitzungsbereich aus, wie z.B. #temp_table.

Berechtigungen zum Zeitreisen

Jeder Benutzer, der über Administrator-, Mitglieds-, Mitwirkender- oder Viewer-Arbeitsbereichsrollen verfügt, kann die Tabellen ab einem bestimmten Zeitpunkt abfragen. Wenn Benutzer Tabellen abfragen, werden die Einschränkungen, die durch Sicherheit auf Spaltenebene (CLS), Sicherheit auf Zeilenebene (RLS) oder dynamische Datenmaskierung (DDM) auferlegt werden, automatisch auferlegt.

Begrenzungen

  • Änderungen am Schema einer Tabelle, einschließlich, aber nicht beschränkt auf das Hinzufügen oder Entfernen von Spalten, können nur ab dem Zeitpunkt der Änderung abfragt werden. Eine Zeitreiseabfrage zu einem Zeitpunkt vor der Schemaänderung ist nur dann erfolgreich, wenn sie auf Spalten verweist, die zu diesem Zeitpunkt bereits vorhanden waren, und schlägt fehl, wenn sie auf Spalten verweist, die erst später eingeführt wurden. Ebenso entfernt das Löschen und anschließende Neuerstellen einer Tabelle mit denselben Daten den Verlauf.
  • Der Zeitstempel darf höchstens drei Stellen für Sekundenbruchteile enthalten. Wenn Sie eine höhere Genauigkeit angeben, erhalten Sie die Fehlermeldung An error occurred during timestamp conversion. Please provide a timestamp in the format yyyy-MM-ddTHH:mm:ss[.fff]. Msg 22440, Level 16, State 1, Code line 29.
  • Derzeit wird nur die koordinierte Weltzeit (Coordinated Universal Time, UTC) für Zeitreisen verwendet.
  • Derzeit kann die Datenaufbewahrung für Zeitreiseabfragen von 1 bis 120 Kalendertagen konfiguriert werden. Der Standardaufbewahrungszeitraum ist dreißig Kalendertage. Weitere Informationen finden Sie unter Konfigurierbare Datenaufbewahrung.
  • FOR TIMESTAMP AS OF-Werte in der OPTION-Klausel müssen deterministisch sein. Ein Beispiel für die Parametrisierung finden Sie unter Zeitreise in einer gespeicherten Prozedur.
  • Der Abfragehinweis OPTION FOR TIMESTAMP AS OF kann nur in Abfragen verwendet werden, die mit der Anweisung SELECT beginnen.
  • Ansichtsdefinitionen können die OPTION FOR TIMESTAMP AS OF T-SQL-Syntax nicht enthalten. Die Ansicht kann mit der SELECT .. FROM <view> ... OPTION FOR TIMESTAMP AS OF T-SQL-Syntax abgefragt werden. Sie können jedoch keine früheren Daten aus Tabellen in einer Ansicht abfragen, die vor der Erstellung der Ansicht erstellt wurden.
  • Die FOR TIMESTAMP AS OF T-SQL-Syntax für Zeitreisen wird derzeit im DirectQuery-Modus von Power BI Desktop oder bei der Option Diese Daten untersuchen nicht unterstützt.
  • Derzeit ist die Zeitreise für SQL-Analyseendpunkte nur für SQL-Analyseendpunkte aktiviert, die mit aktivierter Synchronisierung neuer Metadaten (Vorschau) erstellt wurden.

Nächster Schritt