Lernprogramm: Zeitreise mit T-SQL in einem Warehouse
In diesem Tutorial erfahren Sie, wie Sie T-SQL-Anweisungen verwenden für Zeitreisen in einer Warehouse-Tabelle verwenden. Zeitreise bedeutet, Daten so abzufragen, wie sie zu einem bestimmten Zeitpunkt vorhanden sind, was durch die Datenaufbewahrung in Fabric Warehouse automatisch ermöglicht wird.
Hinweis
Dieses Tutorial ist Teil eines End-to-End-Szenarios. Um dieses Tutorial abzuschließen, müssen Sie zuerst diese Tutorials absolvieren:
Arbeiten mit Zeitreiseabfragen
In dieser Aufgabe erfahren Sie, wie Sie eine Ansicht der top 10 Kunden nach Umsatz erstellen. Sie verwenden die Ansicht in der nächsten Aufgabe, um Zeitreiseabfragen auszuführen.
Stellen Sie sicher, dass der Arbeitsbereich, den Sie im ersten Tutorial erstellt haben, geöffnet ist.
Wählen Sie im Menüband Start Neue SQL-Abfrage aus.
Fügen Sie im Abfrage-Editor den folgenden Code ein. Der Code erstellt eine Ansicht mit dem Namen
Top10Customers
. Die Ansicht verwendet eine Abfrage, um die 10 wichtigsten Kunden basierend auf dem Umsatz abzurufen.--Create the Top10Customers view. CREATE VIEW [dbo].[Top10Customers] AS SELECT TOP(10) FS.[CustomerKey], DC.[Customer], SUM(FS.[TotalIncludingTax]) AS [TotalSalesAmount] FROM [dbo].[dimension_customer] AS DC INNER JOIN [dbo].[fact_sale] AS FS ON DC.[CustomerKey] = FS.[CustomerKey] GROUP BY FS.[CustomerKey], DC.[Customer] ORDER BY [TotalSalesAmount] DESC;
Führen Sie die Abfrage aus.
Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in
Create Top 10 Customer View
um.Überprüfen Sie im Bereich Explorer im Ordner Ansichten des Schemas
dbo
, ob die AnsichtTop10Customers
vorhanden ist.Erstellen Sie eine neue Abfrage, um mit Zeitreiseabfragen auszuführen.
Fügen Sie im Abfrage-Editor den folgenden Code ein. Der Code aktualisiert den Wert
TotalIncludingTax
für eine einzelne Faktenzeile, um den Gesamtumsatz absichtlich zu erhöhen. Außerdem wird der aktuelle Zeitstempel abgerufen.--Update the TotalIncludingTax for a single fact row to deliberately inflate its total sales. UPDATE [dbo].[fact_sale] SET [TotalIncludingTax] = 200000000 WHERE [SaleKey] = 22632918; --For customer 'Tailspin Toys (Muir, MI)' GO --Retrieve the current (UTC) timestamp. SELECT CURRENT_TIMESTAMP;
Hinweis
Derzeit können Sie die Utc-Zeitzone (Coordinated Universal Time) nur für Zeitreisen verwenden.
Führen Sie die Abfrage aus.
Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in
Time Travel
um.Beachten Sie im Bereich Ergebnisse den Zeitstempelwert (Ihr Wert ist das aktuelle UTC-Datum und Uhrzeit).
Um die 10 derzeit wichtigsten Kund*innen abzurufen, fügen Sie die folgende Anweisung in einen neuen Abfrage-Editor ein. Der Code ruft die 10 wichtigsten Kund*innen mithilfe des Abfragehinweises
FOR TIMESTAMP AS OF
ab.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Benennen Sie die Abfrage in
Time Travel Now
um.Kehren Sie zur
Time Travel
Abfrage zurück, und verwenden Sie dann den Befehl Kopieren, um die Abfrageergebnisse zu kopieren.Kehren Sie zur Abfrage
Time Travel Now
zurück, und ersetzen Sie dannYOUR_TIMESTAMP
durch den Zeitstempel, den Sie in die Zwischenablage kopiert haben.Führen Sie die Abfrage aus, und beachten Sie, dass der zweitgrößte
CustomerKey
-Wert 49 fürTailspin Toys (Muir, MI)
ist.Ändern Sie den Zeitstempelwert auf eine frühere Zeit , indem Sie eine Minute vom Zeitstempel abziehen.
Führen Sie die Abfrage erneut aus, und beachten Sie, dass der zweithöchste
CustomerKey
-Wert 381 fürWingtip Toys (Sarversville, PA)
ist.
Tipp
Weitere Beispiele für Zeitreisen finden Sie unter Hilfe & Anleitung: Abfrage mit Ortswechsel in der angegebenen Zeit auf Anweisungsebene.