次の方法で共有


チュートリアル: T-SQL を使用したステートメント レベルでのタイム トラベル

この記事では、T-SQL を使用して、ステートメント レベルでウェアハウスでのタイム トラベルを行う方法について説明します。 この機能を使用すると、保持期間内であり過去に表示されたデータに対してクエリを実行できます。

Note

現在、タイム トラベルには協定世界時 (UTC) タイム ゾーンのみが使用されています。

タイム トラベル

この例では、行を更新し、FOR TIMESTAMP AS OF クエリ ヒントを使用して前の値に簡単にクエリを実行する方法を示します。

  1. リボンの [ホーム] タブで、[新規 SQL クエリ] を選択します。

    [新しい SQL クエリ] ボタンの Fabric ポータルのスクリーンショット。

  2. クエリ エディターで、ビュー Top10CustomerView を作成するための次のコードを貼り付けます。 [実行] を選択して、クエリを実行します。

    CREATE VIEW dbo.Top10CustomersView
    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;
    
  3. エクスプローラーで、dboスキーマの下にある [ビュー] ノードを展開して、新しく作成されたビュー Top10CustomersView を表示できることを確認します。

    ユーザーの画像のスクリーンショット。

  4. 手順 1 と同様に、別の新しいクエリを作成します。 リボンの [ホーム] タブで、[新規 SQL クエリ] を選択します。

  5. クエリ エディターで、以下のコードを貼り付けます。 これにより、SaleKey 値が 22632918 のレコードの TotalIncludingTax 列の値が 200000000 に更新されます。 [実行] を選択して、クエリを実行します。

    /*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/
    UPDATE [dbo].[fact_sale]
    SET TotalIncludingTax = 200000000
    WHERE SaleKey = 22632918;
    
  6. クエリ エディターで、次のコードを貼り付けます。 CURRENT_TIMESTAMP T-SQL 関数は、現在の UTC タイムスタンプを datetime として返します。 [実行] を選択して、クエリを実行します。

    SELECT CURRENT_TIMESTAMP;
    
  7. クリップボードに返されたタイムスタンプ値をコピーします。

  8. クエリ エディターに次のコードを貼り付け、タイムスタンプ値を前の手順で取得した現在のタイムスタンプ値に置き換えます。 タイムスタンプ構文の形式は YYYY-MM-DDTHH:MM:SS[.FFF] です。

  9. 末尾のゼロを削除します。例: 2024-04-24T20:59:06.097

  10. 次の例では、 SaleKey 22632918 の新しい値を含め、TotalIncludingTax ごとに上位 10 人の顧客の一覧を返します。 [実行] を選択して、クエリを実行します。

    /*View of Top10 Customers as of today after record updates*/
    SELECT *
    FROM [WideWorldImporters].[dbo].[Top10CustomersView]
    OPTION (FOR TIMESTAMP AS OF '2024-04-24T20:59:06.097');
    
  11. クエリ エディターに次のコードを貼り付け、タイムスタンプ値を、TotalIncludingTax を更新するために更新スクリプトを実行する前の時刻に置き換えます。 これにより、SaleKey 22632918 の TotalIncludingTax が更新されるの上位 10 人の顧客の一覧が返されます。 [実行] を選択して、クエリを実行します。

    /*View of Top10 Customers as of today before record updates*/
    SELECT *
    FROM [WideWorldImporters].[dbo].[Top10CustomersView]
    OPTION (FOR TIMESTAMP AS OF '2024-04-24T20:49:06.097');
    

その他の例については、「使い方: ステートメント レベルでタイム トラベルを使用してクエリを実行する」を参照してください。

次のステップ