Tutorial: Viagem no tempo com T-SQL em um armazém
Neste tutorial, aprenda a usar instruções T-SQL para viagem no tempo numa tabela de armazém. Viagem no tempo significa consultar dados como eles existiam em um ponto específico no tempo, o que é automaticamente possível pelo Fabric Warehouse retenção de dados.
Nota
Este tutorial faz parte de um cenário de ponta a ponta. Para concluir este tutorial, você deve primeiro concluir estes tutoriais:
Trabalhar com consultas sobre viagens no tempo
Nesta tarefa, saiba como criar uma visualização dos 10 principais clientes por vendas. Você usará o modo de exibição na próxima tarefa para executar consultas de viagem no tempo.
Verifique se o espaço de trabalho criado 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 do
Explorer, de dentro da pasta Modos de Exibição do para o esquema , verifique se o modo de exibição existe. Crie uma nova consulta para trabalhar com consultas 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 suas vendas totais. Também recupera a marca de tempo 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;
Nota
Atualmente, você só pode usar o fuso horário UTC (Tempo Universal Coordenado) para viagens no 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 (o seu valor será a data e a hora UTC atuais).
Para recuperar os 10 principais clientes no momento, num 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
.Regresse à consulta
Time Travel
e, em seguida, utilize o comando Copiar para copiar os resultados da consulta.Regresse à consulta
Time Travel Now
e, em seguida, substituaYOUR_TIMESTAMP
pelo timestamp copiado 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 carimbo de data/hora para um de data/hora anterior subtraindo um minuto do carimbo de data/hora.
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, consulte Como consultar usando a viagem no tempo no nível da instrução.