Opas: Aikamatkailu T-SQL:llä varastossa

Koskee:✅ Microsoft Fabric -varasto

Tässä opetusohjelmassa opi, miten T-SQL-lauseita käytetään aikamatkailuun varastotaulukossa. Aikamatkailu tarkoittaa datan kyselyä sellaisena kuin se oli olemassa tiettynä ajankohtana.

Muistiinpano

Tämä opetusohjelma on osa päästä päähän -skenaariota. Jotta voit suorittaa tämän opetusohjelman, sinun on suoritettava ensin nämä opetusohjelmat:

  1. Luo työtila -
  2. Luo varasto -
  3. Tietojen käyttö Varasto-

Aikamatkustuskyselyiden käsitteleminen

Tässä tehtävässä opit luomaan näkymän kymmenestä suurimmasta asiakkaasta myynnin mukaan. Suoritat aikasijaintikyselyitä seuraavan tehtävän näkymän avulla.

  1. Varmista, että ensimmäisessä opetusohjelmassa luomasi työtila on avoinna.

  2. Valitse Home -valintanauhasta Uusi SQL-kysely.

    Kuvakaappaus New SQL query -vaihtoehdosta nauhalla.

  3. Liitä seuraava koodi kyselyeditoriin. Koodi luo näkymän nimeltä Top10Customers. Näkymä käyttää kyselyä kymmenen parhaan asiakkaan noutamiseen myynnin perusteella.

    --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. Suorita kysely.

  5. Kun suoritus on valmis, nimeä kysely uudelleen nimellä Create Top 10 Customer View.

  6. Varmista Explorerin -ruudun Näkymät -kansiosta dbo rakennetta varten, että Top10Customers -näkymä on olemassa.

    Kuvakaappaus Explorer-paneelista, joka korostaa juuri luotua näkymää.

  7. Luo uusi kysely, joka toimii aikamatkustuskyselyiden kanssa.

  8. Liitä seuraava koodi kyselyeditoriin. Koodi päivittää yksittäisen faktarivin TotalIncludingTax arvon niin, että se tarkoituksella suurentaa sen kokonaismyyntiä. Se myös noutaa nykyisen aikaleiman.

     --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;
    

    Muistiinpano

    Tällä hetkellä voit käyttää aikamatkalle vain UTC-aikavyöhykettä (Coordinated Universal Time).

  9. Suorita kysely.

  10. Kun suoritus on valmis, nimeä kysely uudelleen nimellä Time Travel.

  11. Huomaa Tulokset -ruudussa aikaleima-arvo (arvosi on nykyinen UTC-päivämäärä ja -aika).

    Kuvakaappaus Tulokset-paneelista, jossa korostetaan kopioitavan aikaleiman arvo.

  12. Jos haluat noutaa kymmenen parasta asiakasta tästä alkaen, liitä uuteen kyselyeditoriin seuraava lauseke. Koodi noutaa kymmenen parasta asiakasta FOR TIMESTAMP AS OF kyselyvihjeen avulla.

     --Retrieve the top 10 customers as of now.
     SELECT *
     FROM [dbo].[Top10Customers]
     OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
    
  13. Nimeä kysely uudelleen nimellä Time Travel Now.

  14. Palaa Time Travel-kyselyyn ja kopioi sitten kyselyn tulokset Kopioi -komennolla.

    Kuvakaappaus Kopio-komennosta, jossa korostetaan Copy Query -tuloksia.

  15. Palaa Time Travel Now-kyselyyn ja korvaa YOUR_TIMESTAMP leikepöydälle kopioimasi aikaleiman avulla.

  16. Suorita kysely ja huomaa, että CustomerKeytoiseksi suurin Tailspin Toys (Muir, MI) arvo on 49.

  17. Muokkaa aikaleima-arvoa aiempaan vähentämällä aikaleimasta minuutin.

  18. Suorita kysely uudelleen ja huomaa, että CustomerKeytoiseksi suurin Wingtip Toys (Sarversville, PA) arvo on 381.

Juomaraha

Lisää esimerkkejä aikamatkustusesimerkeistä on kohdassa Toimintatapa: Kysely käyttämällä aikamatkustusta lauseketasolla.

Seuraava vaihe