Tutorial: Viagem no tempo com T-SQL em um Warehouse
Neste tutorial, saiba como usar instruções T-SQL para viagem no tempo em uma tabela de repositório. Viagem no tempo significa consultar dados como eles existiam em um ponto específico no tempo, o que é possibilitado automaticamente pela retenção de dados do Fabric Warehouse.
Observação
Este tutorial faz parte de um cenário de ponta a ponta. Para concluir este tutorial, primeiro você deve concluir estes tutoriais:
Trabalhar com consultas sobre viagem no tempo
Nesta tarefa, saiba como criar uma exibição dos 10 principais clientes por vendas. Você usará a visualização na próxima tarefa para executar consultas de viagem no tempo.
Verifique se o workspace que você criou no primeiro tutorial está aberto.
Na faixa de opções Página Inicial, selecione Nova consulta SQL.
No editor de consultas, cole o código a seguir. O código cria uma exibição chamada
Top10Customers
. A exibição usa uma consulta para recuperar os 10 principais clientes com base nas vendas.--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;
Execute a consulta.
Quando a execução for concluída, renomeie a consulta como
Create Top 10 Customer View
.No painel Explorer, na pasta Exibições para o esquema
dbo
, verifique se o modo de exibiçãoTop10Customers
existe.Crie uma nova consulta para trabalhar com pesquisas de viagem no tempo.
No editor de consultas, cole o código a seguir. O código atualiza o valor
TotalIncludingTax
para uma única linha de fatos para inflar deliberadamente o total de vendas. Ele também recupera a marca temporal atual.--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;
Observação
Atualmente, você só pode usar o fuso horário UTC (Tempo Universal Coordenado) para viagem de tempo.
Execute a consulta.
Quando a execução for concluída, renomeie a consulta como
Time Travel
.No painel Resultados, observe o valor do carimbo de data/hora (seu valor será a data e hora atuais em UTC).
Para recuperar os 10 principais clientes agora, em um novo editor de consultas, cole a instrução a seguir. O código recupera os 10 principais clientes usando a dica 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');
Renomeie a consulta como
Time Travel Now
.Retorne à consulta
Time Travel
e use o comando Copiar para copiar os resultados da consulta.Retorne à consulta
Time Travel Now
e substituaYOUR_TIMESTAMP
pelo carimbo de data/hora que você copiou para a área de transferência.Execute a consulta e observe que o segundo valor de
CustomerKey
superior é 49 paraTailspin Toys (Muir, MI)
.Modifique o valor do timestamp para um horário anterior subtraindo um minuto do timestamp.
Execute a consulta novamente e observe que o segundo valor de
CustomerKey
superior é 381 paraWingtip Toys (Sarversville, PA)
.
Dica
Para obter mais exemplos de viagem no tempo, confira Como consultar usando a viagem no tempo no nível da instrução.