Delen via


Zelfstudie: Tijdreizen met T-SQL in een magazijn

In deze zelfstudie leert u hoe u T-SQL-instructies gebruikt om in een magazijntabel te tijdreizen met . Tijdreizen betekent het opvragen van gegevens zoals deze bestaan op een bepaald tijdstip, wat automatisch mogelijk wordt gemaakt door Fabric Warehouse gegevensretentie.

Notitie

Deze handleiding maakt deel uit van een end-to-end scenario. Als u deze zelfstudie wilt voltooien, moet u eerst deze zelfstudies voltooien:

  1. Een werkruimte maken
  2. Een warehouse- maken
  3. gegevens opnemen in een datamagazijn

Werken met vragen over tijdreizen

In deze taak leert u hoe u een weergave maakt van de tien belangrijkste klanten per verkoop. U gebruikt de weergave in de volgende taak om query's voor tijdreizen uit te voeren.

  1. Zorg ervoor dat de werkruimte die u hebt gemaakt in de eerste tutorial is geopend.

  2. Selecteer op het lint Startnieuwe SQL-query.

    Schermopname van de optie Nieuwe SQL-query op het lint.

  3. Plak de volgende code in de query-editor. De code maakt een weergave met de naam Top10Customers. In de weergave wordt een query gebruikt om de tien belangrijkste klanten op te halen op basis van verkoop.

    --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. Voer de query uit.

  5. Wanneer de uitvoering is voltooid, wijzigt u de naam van de query als Create Top 10 Customer View.

  6. Controleer in het deelvenster Explorer of, binnen de map Weergaven voor het dbo schema, de Top10Customers weergave bestaat.

    Schermopname van het deelvenster Explorer, waarin de zojuist gemaakte weergave wordt gemarkeerd.

  7. Maak een nieuwe query om te werken met query's voor tijdreizen.

  8. Plak de volgende code in de query-editor. De code werkt de TotalIncludingTax-waarde voor één feitenregel bij om de totale verkoop opzettelijk te vergroten. Ook wordt de huidige tijdstempel opgehaald.

     --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;
    

    Notitie

    Op dit moment kunt u alleen de UTC-tijdzone (Coordinated Universal Time) gebruiken voor tijdreizen.

  9. Voer de query uit.

  10. Wanneer de uitvoering is voltooid, wijzigt u de naam van de query als Time Travel.

  11. In het deelvenster Resultaten ziet u de tijdstempelwaarde (uw waarde is de huidige UTC-datum en -tijd).

    schermopname van het deelvenster Resultaten, waarin de tijdstempelwaarde wordt gemarkeerd die moet worden gekopieerd.

  12. Als u de tien belangrijkste klanten vanaf nuwilt ophalen, plakt u de volgende instructie in een nieuwe query-editor. De code haalt de tien belangrijkste klanten op met behulp van de FOR TIMESTAMP AS OF queryhint.

     --Retrieve the top 10 customers as of now.
     SELECT *
     FROM [dbo].[Top10Customers]
     OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
    
  13. Wijzig de naam van de query als Time Travel Now.

  14. Ga terug naar de Time Travel-query en gebruik vervolgens de opdracht Kopiëren om de queryresultaten te kopiëren.

    Schermopname van de opdracht Kopiëren, met daarin de gemarkeerde queryresultaten.

  15. Ga terug naar de Time Travel Now-query en vervang YOUR_TIMESTAMP door de tijdstempel die u naar het klembord kopieerde.

  16. Voer de query uit en u ziet dat de tweede bovenste CustomerKey waarde 49 is voor Tailspin Toys (Muir, MI).

  17. Wijzig de tijdstempelwaarde naar een eerder tijdstip door één minuut af te trekken van dezelfde tijdstempel.

  18. Voer de query opnieuw uit en u ziet dat de tweede CustomerKey waarde 381 is voor Wingtip Toys (Sarversville, PA).

Tip

Zie Hoe te: Query's uitvoeren met tijdreizen op het niveau van instructiesvoor meer voorbeelden van tijdreizen.

Volgende stap