Поделиться через


Руководство: Управление временем с помощью T-SQL в хранилище

В этом руководстве описано, как использовать инструкции T-SQL для перемещения по времени в таблице хранилища. Перемещение времени означает запрос данных по мере его существования в определенный момент времени, что делается автоматически возможным с помощью хранилища Fabric хранения данных.

Примечание.

Это руководство является частью комплексного сценария . Чтобы завершить это учебное пособие, необходимо сначала пройти следующие учебные курсы.

  1. создание рабочей области
  2. Создать хранилище
  3. загрузка данных в хранилище

Работа с запросами на поездки по времени

В этой задаче вы узнаете, как создать представление лучших клиентов по продажам. Вы будете использовать представление в следующей задаче для выполнения запросов путешествия во времени.

  1. Убедитесь, что рабочая область, созданная в первом руководстве , открыта.

  2. На ленте Главная выберите Новый SQL-запрос.

    снимок экрана параметра

  3. В редакторе запросов вставьте следующий код. Код создает представление с именем 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;
    
  4. Запустите запрос.

  5. После завершения выполнения переименуйте запрос как Create Top 10 Customer View.

  6. В области обозревателя из папки представлений для схемы убедитесь, что представление существует.

    снимок экрана панели обозревателя, в котором выделено только что созданное представление.

  7. Создайте новый запрос для работы с запросами на поездки по времени.

  8. В редакторе запросов вставьте следующий код. Код обновляет значение 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.

  9. Запустите запрос.

  10. После завершения выполнения переименуйте запрос как Time Travel.

  11. В области результатов следует обратить внимание на значение метки времени (ваше значение будет текущей датой и временем в формате UTC).

    снимок экрана области результатов, в котором выделено значение метки времени для копирования.

  12. Чтобы получить первые 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');
    
  13. Переименуйте запрос как Time Travel Now.

  14. Вернитесь к запросу Time Travel, а затем используйте команду Копировать для копирования результатов запроса.

    снимок экрана команды

  15. Вернитесь к запросу Time Travel Now, затем замените YOUR_TIMESTAMP на метку времени, скопированную в буфер обмена.

  16. Запустите запрос и обратите внимание, что значение CustomerKey, второе по величине, равно 49 для Tailspin Toys (Muir, MI).

  17. Измените значение метки времени на более раннее , вычитая одну минуту из метки времени.

  18. Повторно выполните запрос, а затем обратите внимание, что второе наибольшее значение CustomerKey равно 381 для Wingtip Toys (Sarversville, PA).

Совет

Дополнительные примеры путешествия по времени см. в разделе Практическое руководство. Запрос с помощью перемещения по времени на уровне инструкции.

Следующий шаг