Opplæring: Tidsreiser med T-SQL i et lager
I denne opplæringen kan du lære hvordan du bruker T-SQL-setninger til å tidsreiser i en lagertabell. Tidsreiser betyr å spørre etter data slik de fantes på et bestemt tidspunkt, noe som gjøres automatisk mulig av Fabric Warehouse dataoppbevaring.
Merk
Denne opplæringen er en del av et ende-til-ende-scenario. Hvis du vil fullføre denne opplæringen, må du først fullføre disse opplæringene:
Arbeide med tidsreisespørringer
I denne oppgaven kan du lære hvordan du oppretter en visning av de ti beste kundene etter salg. Du bruker visningen i neste oppgave til å kjøre tidsreisespørringer.
Kontroller at arbeidsområdet du opprettet i første opplæringen er åpen.
Velg ny SQL-spørringpå båndet Hjem .
Lim inn følgende kode i redigeringsprogrammet for spørringen. Koden oppretter en visning med navnet
Top10Customers
. Visningen bruker en spørring til å hente de ti beste kundene basert 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;
Kjør spørringen.
Når kjøringen er fullført, gir du spørringen nytt navn som
Create Top 10 Customer View
.Kontroller at
visningen finnes i Explorer -ruteni Explorer- -ruten. Opprett en ny spørring for å arbeide med tidsreisespørringer.
Lim inn følgende kode i redigeringsprogrammet for spørringen. Koden oppdaterer den
TotalIncludingTax
verdien for én enkelt faktarad for bevisst å øke det totale salget. Den henter også gjeldende 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;
Merk
For øyeblikket kan du bare bruke tidssonen Coordinated Universal Time (UTC) for tidsreiser.
Kjør spørringen.
Når kjøringen er fullført, gir du spørringen nytt navn som
Time Travel
.Legg merke til tidsstempelverdien (verdien vil være gjeldende UTC-dato og -klokkeslett i ruten Resultater).
Hvis du vil hente de ti beste kundene per nå, limer du inn følgende setning i et nytt redigeringsprogram for spørring. Koden henter de ti beste kundene ved hjelp av
FOR TIMESTAMP AS OF
spørringstips.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Gi spørringen nytt navn som
Time Travel Now
.Gå tilbake til
Time Travel
spørringen, og bruk deretter kommandoen Kopier til å kopiere spørringsresultatene.Gå tilbake til
Time Travel Now
spørringen, og erstatt deretterYOUR_TIMESTAMP
med tidsstempelet du kopierte til utklippstavlen.Kjør spørringen, og legg merke til at den andre øverste
CustomerKey
verdien er 49 forTailspin Toys (Muir, MI)
.Endre tidsstempelverdien til et tidligere tidspunkt ved å trekke ett minutt fra tidsstempelet.
Kjør spørringen på nytt, og legg merke til at den andre øverste
CustomerKey
verdien er 381 forWingtip Toys (Sarversville, PA)
.
Tips
Hvis du vil ha flere eksempler på tidsreiser, kan du se Slik gjør du det: Spørring ved hjelp av tidsreiser på setningsnivå.