Freigeben über


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:

  1. Erstellen eines Arbeitsbereichs
  2. Erstellen eines Lagers
  3. Erfassen von Daten in ein Warehouse

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.

  1. Stellen Sie sicher, dass der Arbeitsbereich, den Sie im ersten Tutorial erstellt haben, geöffnet ist.

  2. Wählen Sie im Menüband Start Neue SQL-Abfrage aus.

    Screenshot: Option „Neue SQL-Abfrage“ im Menüband.

  3. 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;
    
  4. Führen Sie die Abfrage aus.

  5. Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in Create Top 10 Customer View um.

  6. Überprüfen Sie im Bereich Explorer im Ordner Ansichten des Schemas dbo, ob die Ansicht Top10Customers vorhanden ist.

    Screenshot des Explorer-Bereichs, in dem die neu erstellte Ansicht hervorgehoben wird.

  7. Erstellen Sie eine neue Abfrage, um mit Zeitreiseabfragen auszuführen.

  8. 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.

  9. Führen Sie die Abfrage aus.

  10. Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in Time Travel um.

  11. Beachten Sie im Bereich Ergebnisse den Zeitstempelwert (Ihr Wert ist das aktuelle UTC-Datum und Uhrzeit).

    Screenshot: Bereich „Ergebnisse“ mit hervorgehobenem zu kopierenden Zeitstempel.

  12. 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');
    
  13. Benennen Sie die Abfrage in Time Travel Now um.

  14. Kehren Sie zur Time Travel Abfrage zurück, und verwenden Sie dann den Befehl Kopieren, um die Abfrageergebnisse zu kopieren.

    Screenshot: Befehl „Kopieren“ mit hervorgehobenen Ergebnissen der „Kopierabfrage“.

  15. Kehren Sie zur Abfrage Time Travel Now zurück, und ersetzen Sie dann YOUR_TIMESTAMP durch den Zeitstempel, den Sie in die Zwischenablage kopiert haben.

  16. Führen Sie die Abfrage aus, und beachten Sie, dass der zweitgrößte CustomerKey-Wert 49 für Tailspin Toys (Muir, MI)ist.

  17. Ändern Sie den Zeitstempelwert auf eine frühere Zeit , indem Sie eine Minute vom Zeitstempel abziehen.

  18. Führen Sie die Abfrage erneut aus, und beachten Sie, dass der zweithöchste CustomerKey-Wert 381 für Wingtip Toys (Sarversville, PA)ist.

Tipp

Weitere Beispiele für Zeitreisen finden Sie unter Hilfe & Anleitung: Abfrage mit Ortswechsel in der angegebenen Zeit auf Anweisungsebene.

Nächster Schritt