Esercitazione: Viaggio nel tempo con T-SQL in un magazzino
Questa esercitazione illustra come usare istruzioni T-SQL per tempo di viaggio in una tabella warehouse. Viaggio nel tempo significa eseguire query sui dati come esistevano in un momento specifico, il che è reso automaticamente possibile dalla conservazione dei dati di Fabric Warehouse .
Nota
Questa esercitazione fa parte di uno scenario end-to-end . Per completare questa esercitazione, è prima necessario completare queste esercitazioni:
Utilizzare query di viaggio nel tempo
In questa attività viene illustrato come creare una visualizzazione dei primi 10 clienti in base alle vendite. Userai la visualizzazione nell'attività successiva per eseguire query di viaggio nel tempo.
Assicurarsi che l'area di lavoro creata nel prima esercitazione sia aperta.
Nella barra multifunzione Home, selezionare Nuova query SQL.
Incollare il seguente codice nell'editor di query. Il codice crea una vista denominata
Top10Customers
. La vista usa un'interrogazione per recuperare i primi 10 clienti in base alle vendite.--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;
Esegui la query.
Al termine dell'esecuzione, rinominare la query come
Create Top 10 Customer View
.Nel riquadro di Esplora , dalla cartella Visualizzazioni per lo schema
dbo
, verificare che esista la vistaTop10Customers
.Creare una nuova query per lavorare con le query di viaggio nel tempo.
Incollare il seguente codice nell'editor di query. Il codice aggiorna il valore
TotalIncludingTax
per una singola riga di dati per gonfiare deliberatamente il totale delle vendite. Recupera anche il timestamp corrente.--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;
Nota
Attualmente, è possibile usare solo il fuso orario UTC (Coordinated Universal Time) per il viaggio temporale.
Eseguire la query.
Al termine dell'esecuzione, rinominare la query come
Time Travel
.Nel riquadro Risultati, notare il valore del timestamp (il valore sarà la data e l'ora UTC correnti).
Per recuperare i primi 10 clienti ad oggi, in un nuovo editor di query, incolla l'istruzione seguente. Il codice recupera i primi 10 clienti utilizzando il suggerimento di query
FOR TIMESTAMP AS OF
.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Rinominare la query come
Time Travel Now
.Tornare alla query
e quindi usare il comando copia per copiare i risultati della query. Tornare alla query
Time Travel Now
e quindi sostituireYOUR_TIMESTAMP
con il timestamp copiato negli Appunti.Eseguire la query e notare che il secondo valore
CustomerKey
più alto è 49 perTailspin Toys (Muir, MI)
.Modificare il valore del timestamp a un momento precedente sottraendo un minuto dal timestamp.
Eseguire di nuovo la query e notare che il secondo valore più alto di
CustomerKey
è 381 perWingtip Toys (Sarversville, PA)
.
Mancia
Per altri esempi di viaggio nel tempo, vedere Procedura: Eseguire query usando il viaggio nel tempo a livello di istruzione.