Tutorial: Viaje de tiempo con T-SQL en un almacén
En este tutorial, aprenderá a usar sentencias T-SQL para viajar en el tiempo en una tabla de almacén. Viajar en el tiempo significa consultar los datos tal como existían en un momento específico, lo cual es posible automáticamente gracias a la retención de datos de Fabric Warehouse .
Nota:
Este tutorial forma parte de un escenario de extremo a extremo. Para completar este tutorial, primero debe completar estos tutoriales:
Trabajar con consultas de viaje en el tiempo
En esta tarea, aprenderá a crear una vista de los 10 principales clientes por ventas. Utilizará la vista en la siguiente tarea para ejecutar consultas de viaje en el tiempo.
Asegúrese de que el área de trabajo que creó en el primer tutorial esté abierta.
En la cinta de Inicio, seleccione Nueva consulta SQL.
En el editor de consultas, pegue el siguiente código. El código crea una vista denominada
Top10Customers
. La vista usa una consulta para recuperar los 10 principales clientes en función de las ventas.--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;
Ejecute la consulta.
Cuando se complete la ejecución, cambie el nombre de la consulta como
Create Top 10 Customer View
.En el panel Explorador, desde dentro de la carpeta Vistas para el esquema
dbo
, verifique que la vistaTop10Customers
existe.Cree una nueva consulta para trabajar con consultas de viaje en el tiempo.
En el editor de consultas, pegue el siguiente código. El código actualiza el valor de
TotalIncludingTax
de una sola fila de datos para aumentar deliberadamente su total de ventas. También recupera la marca de tiempo actual.--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:
Actualmente, solo puede usar la zona horaria hora universal coordinada (UTC) para el viaje horario.
Ejecute la consulta.
Cuando se complete la ejecución, cambie el nombre de la consulta como
Time Travel
.En el panel Resultados , observe el valor de marca de tiempo (el valor será la fecha y hora UTC actuales).
Para recuperar los 10 clientes principales hasta el momento, en un nuevo editor de consultas, pegue la siguiente sentencia. El código recupera los 10 clientes principales mediante la sugerencia de consulta
FOR TIMESTAMP AS OF
.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Cambie el nombre de la consulta como
Time Travel Now
.Vuelva a la consulta
y, a continuación, use el comando copiar para copiar los resultados de la consulta. Vuelva a la consulta
Time Travel Now
y reemplaceYOUR_TIMESTAMP
por la marca de tiempo que copió en el portapapeles.Ejecute la consulta y observe que el segundo valor de
CustomerKey
superior es 49 paraTailspin Toys (Muir, MI)
.Modifique el valor de marca de tiempo a una hora anterior restando un minuto de la marca de tiempo.
Vuelva a ejecutar la consulta y observe que el segundo valor de
CustomerKey
superior es 381 paraWingtip Toys (Sarversville, PA)
.
Sugerencia
Para obtener más ejemplos de viajes de tiempo, consulte Procedimiento para realizar consultas con viajes de tiempo en el nivel de instrucción.