Veiledning: Tidsreise med T-SQL i et lager

Gjelder for:✅ Lager i Microsoft Fabric

I denne veiledningen lærer du hvordan du bruker T-SQL-setninger for å reise i tid i en lagertabell. Tidsreise betyr å spørre data slik de eksisterte på et bestemt tidspunkt.

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:

  1. Opprette et arbeidsområde
  2. Opprette et
  3. innta data i et lager

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.

  1. Kontroller at arbeidsområdet du opprettet i første opplæringen er åpen.

  2. Velg ny SQL-spørringpå båndet Hjem .

    Skjermbilde av alternativet Ny SQL-spørring på båndet.

  3. 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;
    
  4. Kjør spørringen.

  5. Når kjøringen er fullført, gir du spørringen nytt navn som Create Top 10 Customer View.

  6. Kontroller at visningen finnes i Explorer-ruten i Explorer-- ruten.

    Skjermbilde av Utforsker-panelet, som markerer den nyopprettede visningen.

  7. Opprett en ny spørring for å arbeide med tidsreisespørringer.

  8. 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.

  9. Kjør spørringen.

  10. Når kjøringen er fullført, gir du spørringen nytt navn som Time Travel.

  11. Legg merke til tidsstempelverdien (verdien vil være gjeldende UTC-dato og -klokkeslett i ruten Resultater).

    Skjermbilde av resultatpanelet, som markerer tidsstempelverdien som skal kopieres.

  12. 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');
    
  13. Gi spørringen nytt navn som Time Travel Now.

  14. Gå tilbake til Time Travel spørringen, og bruk deretter kommandoen Kopier til å kopiere spørringsresultatene.

    Skjermbilde av Kopier-kommandoen, marker resultatene Kopier spørring.

  15. Gå tilbake til Time Travel Now spørringen, og erstatt deretter YOUR_TIMESTAMP med tidsstempelet du kopierte til utklippstavlen.

  16. Kjør spørringen, og legg merke til at den andre øverste CustomerKey verdien er 49 for Tailspin Toys (Muir, MI).

  17. Endre tidsstempelverdien til et tidligere tidspunkt ved å trekke ett minutt fra tidsstempelet.

  18. Kjør spørringen på nytt, og legg merke til at den andre øverste CustomerKey verdien er 381 for Wingtip 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å.

Neste trinn