Sdílet prostřednictvím


Kurz: Cestování časem s T-SQL ve službě Warehouse

V tomto kurzu se naučíte používat příkazy T-SQL k cestování v čase v tabulce ve skladu. Cestování v čase znamená dotazování na data, jak existovala v konkrétním časovém okamžiku, které je automaticky umožněno službou Fabric Warehouse uchováváním dat.

Poznámka:

Tento kurz je součástí kompletního scénáře. Abyste mohli absolvovat tento kurz, musíte nejprve dokončit tyto kurzy:

  1. Vytvoření pracovního prostoru
  2. Vytvořit sklad
  3. Vkládání dat do datového skladu

Práce s dotazy na cestování v čase

V tomto úkolu se dozvíte, jak vytvořit zobrazení prvních 10 zákazníků podle prodeje. Pomocí zobrazení v další úloze spustíte dotazy na časovou cestu.

  1. Ujistěte se, že je otevřený pracovní prostor, který jste vytvořili v prvním kurzu .

  2. Na panelu nástrojů Domů vyberte Nový dotaz SQL.

    Snímek obrazovky s možností Nový dotaz SQL ve stuze

  3. V editoru dotazů vložte následující kód. Kód vytvoří zobrazení s názvem Top10Customers. Zobrazení používá dotaz k načtení deseti nejlepších zákazníků na základě prodejů.

    --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. Spusťte dotaz.

  5. Po dokončení provádění přejmenujte dotaz na Create Top 10 Customer View.

  6. V podokně Průzkumník ověřte, že v rámci složky Zobrazení pro schéma dbo existuje zobrazení Top10Customers.

    snímek obrazovky s podoknem Průzkumník a zvýrazněním nově vytvořeného zobrazení

  7. Vytvořte nový dotaz pro práci s časově orientovanými dotazy.

  8. V editoru dotazů vložte následující kód. Kód aktualizuje hodnotu TotalIncludingTax pro jeden řádek faktů, aby záměrně nafoukl celkové prodeje. Načte také aktuální časové razítko.

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

    Poznámka:

    V současné době můžete pro časovou cestu použít pouze časové pásmo UTC (Coordinated Universal Time).

  9. Spusťte dotaz.

  10. Po dokončení provádění přejmenujte dotaz na Time Travel.

  11. V podokně výsledky si všimněte hodnoty časového razítka (vaše hodnota bude aktuálním datem a časem UTC).

    Snímek obrazovky s podoknem Výsledky se zvýrazněnou hodnotou časového razítka, kterou chcete zkopírovat.

  12. Pokud chcete načíst prvních 10 zákazníků odteď, vložte do nového editoru dotazů následující příkaz. Kód načte prvních 10 zákazníků pomocí hintu pro dotaz FOR TIMESTAMP AS OF.

     --Retrieve the top 10 customers as of now.
     SELECT *
     FROM [dbo].[Top10Customers]
     OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
    
  13. Přejmenujte dotaz na Time Travel Now.

  14. Vraťte se do dotazu Time Travel a potom pomocí příkazu Kopírovat zkopírujte výsledky dotazu.

    snímek obrazovky s příkazem Kopírovat a zvýrazněním výsledků kopírování dotazu

  15. Vraťte se do dotazu Time Travel Now a nahraďte YOUR_TIMESTAMP časovým razítkem, které jste zkopírovali do schránky.

  16. Spusťte dotaz a všimněte si, že druhá nejvyšší CustomerKey hodnota je 49 pro Tailspin Toys (Muir, MI).

  17. Upravte hodnotu časového razítka na dřívější čas odečtením jedné minuty z časového razítka.

  18. Spusťte dotaz znovu a všimněte si, že druhá nejvyšší CustomerKey hodnota je 381 pro Wingtip Toys (Sarversville, PA).

Spropitné

Další příklady časových cest najdete v tématu Postupy: Dotazování pomocí časového cestování na úrovni příkazů.

Další krok