Kurz: Cestovanie v čase s T-SQL v sklade
V tomto kurze sa dozviete, ako používať príkazy T-SQL na cestovanie v čase v tabuľke skladu. Cesta časom znamená dotazovanie údajov v konkrétnom časovom okamihu, ktoré umožňuje automaticky sklad služby Fabric uchovávanie údajov.
Poznámka
Tento kurz je súčasťou koncového scenára. Ak chcete dokončiť tento kurz, musíte najprv absolvovať tieto kurzy:
- Vytvorenie pracovného priestoru
- vytvorenie v sklade
- údajov Ingestu do skladu
Práca s dotazmi na cestovanie v čase
V tejto úlohe sa naučíte vytvoriť zobrazenie 10 najlepších zákazníkov podľa predaja. Zobrazenie sa použije v ďalšej úlohe na spustenie dotazov času a cestovania.
Uistite sa, že pracovný priestor, ktorý ste vytvorili v prvom kurze , je otvorený.
Na páse s nástrojmi Domov vyberte položky Nový dotaz SQL.
Do editora dotazov prilepte nasledujúci kód. Kód vytvorí zobrazenie s názvom
Top10Customers
. Zobrazenie používa dotaz na načítanie 10 najlepších zákazníkov na základe predaja.--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;
Spustite dotaz.
Po dokončení premenujte dotaz na
Create Top 10 Customer View
.Na table prieskumníka
v priečinku zobrazenia časti Zobrazenia pre schému overte, či existuje zobrazenie. Vytvorte nový dotaz na prácu s dotazmi na cestovanie v čase.
Do editora dotazov prilepte nasledujúci kód. Kód aktualizuje
TotalIncludingTax
hodnotu pre jeden riadok faktu, aby úmyselne nafúkol svoj celkový predaj. Načíta aj aktuálnu časovú pečiatku.--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 súčasnosti môžete na cestovanie používať iba časové pásmo UTC (koordinovaný svetový čas).
Spustite dotaz.
Po dokončení premenujte dotaz na
Time Travel
.Na table Results si všimnite hodnotu časovej pečiatky (vaša hodnota bude aktuálny dátum a čas utc).
Ak chcete v novom editore dotazov načítať prvých 10 zákazníkov, od tejto, prilepte nasledujúci príkaz. Kód načíta prvých 10 zákazníkov pomocou tipu
FOR TIMESTAMP AS OF
dotazu.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Premenujte dotaz na
Time Travel Now
.Vráťte sa k dotazu
Time Travel
a potom na skopírovanie výsledkov dotazu použite príkaz Kopírovať.Vráťte sa k dotazu
Time Travel Now
a potom nahraďteYOUR_TIMESTAMP
časovou pečiatkou, ktorú ste skopírovali do Schránky.Spustite dotaz a všimnite si, že druhá najvyššia
CustomerKey
hodnota preTailspin Toys (Muir, MI)
je 49.Upravte hodnotu časovej pečiatky na predchádzajúci odčítaním jednej minúty od časovej pečiatky.
Znova spustite dotaz a všimnite si, že druhá najvyššia hodnota
CustomerKey
je 381 preWingtip Toys (Sarversville, PA)
.
Tip
Ďalšie príklady cestovania časom nájdete v Ako: Dotaz používajúci časovú cestu na úrovni príkazu.