Compartir a través de


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:

  1. Crear un área de trabajo
  2. Crear un almacén
  3. Ingesta de datos en un almacén de datos

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.

  1. Asegúrese de que el área de trabajo que creó en el primer tutorial esté abierta.

  2. En la cinta de Inicio, seleccione Nueva consulta SQL.

    Captura de pantalla de la opción Nueva consulta SQL en la cinta de opciones.

  3. 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;
    
  4. Ejecute la consulta.

  5. Cuando se complete la ejecución, cambie el nombre de la consulta como Create Top 10 Customer View.

  6. En el panel Explorador, desde dentro de la carpeta Vistas para el esquema dbo, verifique que la vista Top10Customers existe.

    Captura de pantalla del panel Explorador, resaltando la vista recién creada.

  7. Cree una nueva consulta para trabajar con consultas de viaje en el tiempo.

  8. 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.

  9. Ejecute la consulta.

  10. Cuando se complete la ejecución, cambie el nombre de la consulta como Time Travel.

  11. En el panel Resultados , observe el valor de marca de tiempo (el valor será la fecha y hora UTC actuales).

    Captura de pantalla del panel Resultados, resaltando el valor de marca de tiempo que se va a copiar.

  12. 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');
    
  13. Cambie el nombre de la consulta como Time Travel Now.

  14. Vuelva a la consulta y, a continuación, use el comando copiar para copiar los resultados de la consulta.

    Captura de pantalla del comando Copiar, resaltando los resultados de consulta del Copiar.

  15. Vuelva a la consulta Time Travel Now y reemplace YOUR_TIMESTAMP por la marca de tiempo que copió en el portapapeles.

  16. Ejecute la consulta y observe que el segundo valor de CustomerKey superior es 49 para Tailspin Toys (Muir, MI).

  17. Modifique el valor de marca de tiempo a una hora anterior restando un minuto de la marca de tiempo.

  18. Vuelva a ejecutar la consulta y observe que el segundo valor de CustomerKey superior es 381 para Wingtip 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.

Paso siguiente