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:
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.
Zorg ervoor dat de werkruimte die u hebt gemaakt in de eerste tutorial is geopend.
Selecteer op het lint Startnieuwe SQL-query.
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;
Voer de query uit.
Wanneer de uitvoering is voltooid, wijzigt u de naam van de query als
Create Top 10 Customer View
.Controleer in het deelvenster Explorer of, binnen de map Weergaven voor het
dbo
schema, deTop10Customers
weergave bestaat.Maak een nieuwe query om te werken met query's voor tijdreizen.
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.
Voer de query uit.
Wanneer de uitvoering is voltooid, wijzigt u de naam van de query als
Time Travel
.In het deelvenster Resultaten ziet u de tijdstempelwaarde (uw waarde is de huidige UTC-datum en -tijd).
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');
Wijzig de naam van de query als
Time Travel Now
.Ga terug naar de
Time Travel
-query en gebruik vervolgens de opdracht Kopiëren om de queryresultaten te kopiëren.Ga terug naar de
Time Travel Now
-query en vervangYOUR_TIMESTAMP
door de tijdstempel die u naar het klembord kopieerde.Voer de query uit en u ziet dat de tweede bovenste
CustomerKey
waarde 49 is voorTailspin Toys (Muir, MI)
.Wijzig de tijdstempelwaarde naar een eerder tijdstip door één minuut af te trekken van dezelfde tijdstempel.
Voer de query opnieuw uit en u ziet dat de tweede
CustomerKey
waarde 381 is voorWingtip Toys (Sarversville, PA)
.
Tip
Zie Hoe te: Query's uitvoeren met tijdreizen op het niveau van instructiesvoor meer voorbeelden van tijdreizen.