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:
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.
Ujistěte se, že je otevřený pracovní prostor, který jste vytvořili v prvním kurzu .
Na panelu nástrojů Domů vyberte Nový dotaz SQL.
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;
Spusťte dotaz.
Po dokončení provádění přejmenujte dotaz na
Create Top 10 Customer View
.V podokně Průzkumník ověřte, že v rámci složky Zobrazení pro schéma
dbo
existuje zobrazeníTop10Customers
.Vytvořte nový dotaz pro práci s časově orientovanými dotazy.
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).
Spusťte dotaz.
Po dokončení provádění přejmenujte dotaz na
Time Travel
.V podokně výsledky si všimněte hodnoty časového razítka (vaše hodnota bude aktuálním datem a časem UTC).
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');
Přejmenujte dotaz na
Time Travel Now
.Vraťte se do dotazu
Time Travel
a potom pomocí příkazu Kopírovat zkopírujte výsledky dotazu.Vraťte se do dotazu
Time Travel Now
a nahraďteYOUR_TIMESTAMP
časovým razítkem, které jste zkopírovali do schránky.Spusťte dotaz a všimněte si, že druhá nejvyšší
CustomerKey
hodnota je 49 proTailspin Toys (Muir, MI)
.Upravte hodnotu časového razítka na dřívější čas odečtením jedné minuty z časového razítka.
Spusťte dotaz znovu a všimněte si, že druhá nejvyšší
CustomerKey
hodnota je 381 proWingtip 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ů.