Självstudie: Tidsresa med T-SQL i ett lager
I den här handledningen lär du dig hur du använder T-SQL-instruktioner för att tidsresa i en lagertabell. Tidsresa innebär att fråga efter data som existerade vid en viss tidpunkt, vilket möjliggörs automatiskt av Fabric Warehouse :s datalagring.
Kommentar
Den här självstudien är en del av ett heltäckande scenario . För att kunna slutföra den här självstudien måste du först slutföra de här självstudierna:
Arbeta med frågor om tidsresor
I den här uppgiften får du lära dig hur du skapar en vy över de 10 främsta kunderna efter försäljning. Du använder vyn i nästa uppgift för att köra frågor om tidsresor.
Säkerställ att arbetsytan som du skapade i den första handledningen är öppen.
I menyfliksområdet Start väljer du Ny SQL-fråga.
Klistra in följande kod i frågeredigeraren. Koden skapar en vy med namnet
Top10Customers
. Vyn använder en fråga för att hämta de 10 främsta kunderna baserat på försäljning.--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;
Kör sökningen.
När körningen är klar byter du namn på sökfrågan till
Create Top 10 Customer View
.I fönstret Explorer, i mappen för Vy inom
dbo
-schemat, verifiera attTop10Customers
-vyn finns.Skapa en ny fråga för att arbeta med tidsresefrågor.
Klistra in följande kod i frågeredigeraren. Koden uppdaterar
TotalIncludingTax
värdet för en enda faktarad för att avsiktligt blåsa upp den totala försäljningen. Den hämtar också den aktuella tidsstämpeln.--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;
Kommentar
För närvarande kan du bara använda tidszonen Coordinated Universal Time (UTC) för tidsresor.
Kör frågan.
När körningen är klar byter du namn på frågan till
Time Travel
.Observera tidsstämpelvärdet i fönstret Resultat (ditt värde är aktuellt UTC-datum och tid).
Om du vill hämta de 10 främsta kunderna från och med nuklistrar du in följande instruktion i en ny frågeredigerare. Koden hämtar de främsta 10 kunderna med hjälp av
FOR TIMESTAMP AS OF
frågehint.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Byt namn på frågan till
Time Travel Now
.Gå tillbaka till den
Time Travel
frågan och använd sedan kommandot Kopiera för att kopiera frågeresultatet.Gå tillbaka till fråga
Time Travel Now
och ersätt sedanYOUR_TIMESTAMP
med tidsstämpeln som du kopierade till urklipp.Kör frågan och observera att det näst översta
CustomerKey
värdet är 49 förTailspin Toys (Muir, MI)
.Ändra tidsstämpelvärdet till en tidigare tid genom att subtrahera en minut från tidsstämpeln.
Kör frågan igen och observera att det näst översta
CustomerKey
värdet är 381 förWingtip Toys (Sarversville, PA)
.
Tips
Fler exempel på tidsresor finns i Så här kör du frågor med hjälp av tidsresor på instruktionsnivå.