Megosztás a következőn keresztül:


Oktatóanyag: Időutazás a T-SQL-lel egy raktárban

Ebben az oktatóanyagban megtudhatja, hogyan használhat T-SQL-utasításokat az időutazási egy raktártáblában. Az időutazás azt jelenti, hogy egy adott időpontban meglévő adatokat kérdez le, amelyet a Fabric Warehouse adatmegőrzésiautomatikusan lehetővé tesz.

Feljegyzés

Ez az oktatóanyag a(z) teljes körű forgatókönyv részét képezi. Az oktatóanyag elvégzéséhez először az alábbi oktatóanyagokat kell elvégeznie:

  1. Munkaterület létrehozása
  2. Raktár létrehozása
  3. Adatok betöltése egy tárházba

Az időutazási lekérdezésekkel való munka

Ebben a feladatban megtudhatja, hogyan hozhat létre nézetet az első 10 ügyfélről értékesítés alapján. A következő feladat nézetét fogja használni az időutazó lekérdezések futtatásához.

  1. Győződjön meg arról, hogy a első bemutatóban létrehozott munkaterület nyitva legyen.

  2. A Kezdőlap menüszalagján válassza Új SQL-lekérdezéslehetőséget.

    Képernyőkép a menüszalag Új SQL-lekérdezés lehetőségéről.

  3. A lekérdezésszerkesztőben illessze be a következő kódot. A kód létrehoz egy Top10Customersnevű nézetet. A nézet lekérdezéssel szerzi be az első 10 ügyfelet az értékesítés alapján.

    --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. Futtassa a lekérdezést.

  5. A végrehajtás befejezésekor nevezze át a lekérdezést Create Top 10 Customer View.

  6. A Explorer panelen, a dbo séma Nézetek mappájában ellenőrizze, hogy létezik-e a Top10Customers nézet.

    Képernyőkép az Explorer panelről, kiemelve az újonnan létrehozott nézetet.

  7. Hozzon létre egy új lekérdezést az időutazási lekérdezések használatához.

  8. A lekérdezésszerkesztőben illessze be a következő kódot. A kód frissíti a TotalIncludingTax értékét egy ténysor esetében, hogy szándékosan megnövelje az összes értékesítésének az összegét. Az aktuális időbélyeget is lekéri.

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

    Feljegyzés

    Az időutazáshoz jelenleg csak az egyezményes világidő (UTC) időzónáját használhatja.

  9. Futtassa a lekérdezést.

  10. A végrehajtás befejezésekor nevezze át a lekérdezést Time Travel.

  11. Az Eredmények panelen figyelje meg az időbélyeg értékét (az érték az aktuális UTC dátum és idő lesz).

    Képernyőkép az Eredmények panelről, kiemelve a másolandó időbélyeg-értéket.

  12. A top 10 jelenlegi ügyfél lekéréséhez egy új lekérdezésszerkesztőbenillessze be az alábbi utasítást. A kód lekéri a 10 vezető ügyfelet a FOR TIMESTAMP AS OF lekérdezési útmutató használatával.

     --Retrieve the top 10 customers as of now.
     SELECT *
     FROM [dbo].[Top10Customers]
     OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
    
  13. Nevezze át a lekérdezést Time Travel Nownéven.

  14. Térjen vissza a Time Travel lekérdezéshez, majd a Másolás paranccsal másolja ki a lekérdezés eredményeit.

    Képernyőkép a Másolás parancsról, kiemelve a Lekérdezés eredményeinek másolása parancsot.

  15. Térjen vissza a Time Travel Now lekérdezéshez, majd cserélje le YOUR_TIMESTAMP a vágólapra másolt időbélyeggel.

  16. Futtassa a lekérdezést, és figyelje meg, hogy a CustomerKey második legmagasabb értéke 49 a Tailspin Toys (Muir, MI)esetén.

  17. Módosítsa az időbélyeg értékét egy korábbi időpontra úgy, hogy kivon egy percet az időbélyegből.

  18. Futtassa újra a lekérdezést, és figyelje meg, hogy a második felső CustomerKey érték 381 Wingtip Toys (Sarversville, PA).

Borravaló

További időutazási példákért lásd How to: Lekérdezés időutazással utasításszinten.

Következő lépés