Selvstudium: Tidsrejse med T-SQL i et lager
I dette selvstudium kan du få mere at vide om, hvordan du bruger T-SQL-sætninger til at tidsrejse i en lagertabel. Tidsrejse betyder at forespørge om data, som de fandtes på et bestemt tidspunkt, hvilket automatisk er muligt af Fabric Warehouse dataopbevaring.
Bemærk
Dette selvstudium er en del af et end-to-end-scenarie. Hvis du vil fuldføre dette selvstudium, skal du først fuldføre disse selvstudier:
Arbejd med tidsrejseforespørgsler
I denne opgave kan du få mere at vide om, hvordan du opretter en visning af de ti mest populære kunder efter salg. Du skal bruge visningen i den næste opgave til at køre tidsrejseforespørgsler.
Sørg for, at det arbejdsområde, du oprettede i første selvstudium, er åbent.
På båndet Hjem skal du vælge Ny SQL-forespørgsel.
Indsæt følgende kode i forespørgselseditoren. Koden opretter en visning med navnet
Top10Customers
. Visningen bruger en forespørgsel til at hente de ti mest populære kunder baseret på salg.--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 forespørgslen.
Når udførelsen er fuldført, skal du omdøbe forespørgslen til
Create Top 10 Customer View
.I ruden
Explorer skal du inde fra mappen Visninger for detskema kontrollere, at den visning findes. Opret en ny forespørgsel for at arbejde med forespørgsler om tidsrejser.
Indsæt følgende kode i forespørgselseditoren. Koden opdaterer den
TotalIncludingTax
værdi for en enkelt faktarække for bevidst at puste det samlede salg op. Det henter også det aktuelle tidsstempel.--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;
Bemærk
I øjeblikket kan du kun bruge UTC-tidszonen (Coordinated Universal Time) til tidsrejser.
Kør forespørgslen.
Når udførelsen er fuldført, skal du omdøbe forespørgslen til
Time Travel
.Bemærk tidsstempelværdien i ruden Resultater (din værdi er den aktuelle UTC-dato og det aktuelle klokkeslæt).
Hvis du vil hente de ti mest populære kunder fra nu, skal du indsætte følgende sætning i en ny forespørgselseditor. Koden henter de ti øverste kunder ved hjælp af forespørgselstip til
FOR TIMESTAMP AS OF
.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Omdøb forespørgslen til
Time Travel Now
.Vend tilbage til forespørgslen
Time Travel
, og brug derefter kommandoen Copy til at kopiere forespørgselsresultaterne.Vend tilbage til forespørgslen
Time Travel Now
, og erstat derefterYOUR_TIMESTAMP
med det tidsstempel, du kopierede til Udklipsholder.Kør forespørgslen, og bemærk, at den anden øverste
CustomerKey
værdi er 49 forTailspin Toys (Muir, MI)
.Rediger tidsstempelværdien til et tidligere tidspunkt ved at trække ét minut fra tidsstemplet.
Kør forespørgslen igen, og bemærk, at den anden øverste
CustomerKey
værdi er 381 forWingtip Toys (Sarversville, PA)
.
Drikkepenge
Du kan få flere eksempler på tidsrejser under Sådan gør du: Forespørg ved hjælp af tidsrejser på sætningsniveau.