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 podokna Průzkumníka s 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. Chcete-li načíst prvních 10 zákazníků k aktuálnímu datu, 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 k dotazu Time Travel Now a poté 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