Руководство: Управление временем с помощью T-SQL в хранилище
В этом руководстве описано, как использовать инструкции T-SQL для перемещения по времени в таблице хранилища. Перемещение времени означает запрос данных по мере его существования в определенный момент времени, что делается автоматически возможным с помощью хранилища Fabric хранения данных.
Примечание.
Это руководство является частью комплексного сценария . Чтобы завершить это учебное пособие, необходимо сначала пройти следующие учебные курсы.
Работа с запросами на поездки по времени
В этой задаче вы узнаете, как создать представление лучших клиентов по продажам. Вы будете использовать представление в следующей задаче для выполнения запросов путешествия во времени.
Убедитесь, что рабочая область, созданная в первом руководстве , открыта.
На ленте Главная выберите Новый SQL-запрос.
В редакторе запросов вставьте следующий код. Код создает представление с именем
Top10Customers
. В представлении используется запрос для получения топ 10 клиентов на основе продаж.--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;
Запустите запрос.
После завершения выполнения переименуйте запрос как
Create Top 10 Customer View
.В области
обозревателя из папки представленийдля схемы убедитесь, что представление существует. Создайте новый запрос для работы с запросами на поездки по времени.
В редакторе запросов вставьте следующий код. Код обновляет значение
TotalIncludingTax
для одной строки фактов, чтобы намеренно завысить общие продажи. Он также получает текущую метку времени.--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;
Примечание.
В настоящее время для перемещения по времени можно использовать только часовой пояс в формате UTC.
Запустите запрос.
После завершения выполнения переименуйте запрос как
Time Travel
.В области результатов следует обратить внимание на значение метки времени (ваше значение будет текущей датой и временем в формате UTC).
Чтобы получить первые 10 клиентов, по состоянию на, в новом редакторе запросов вставьте следующую инструкцию. Код извлекает 10 лучших клиентов с помощью подсказки запроса
FOR TIMESTAMP AS OF
.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Переименуйте запрос как
Time Travel Now
.Вернитесь к запросу
Time Travel
, а затем используйте команду Копировать для копирования результатов запроса.Вернитесь к запросу
Time Travel Now
, затем заменитеYOUR_TIMESTAMP
на метку времени, скопированную в буфер обмена.Запустите запрос и обратите внимание, что значение
CustomerKey
, второе по величине, равно 49 дляTailspin Toys (Muir, MI)
.Измените значение метки времени на более раннее , вычитая одну минуту из метки времени.
Повторно выполните запрос, а затем обратите внимание, что второе наибольшее значение
CustomerKey
равно 381 дляWingtip Toys (Sarversville, PA)
.
Совет
Дополнительные примеры путешествия по времени см. в разделе Практическое руководство. Запрос с помощью перемещения по времени на уровне инструкции.