次の方法で共有


チュートリアル: ウェアハウス内のストアド プロシージャを使用してデータを変換する

適用対象:✅ Microsoft Fabric の SQL 分析エンドポイントおよびウェアハウス

このチュートリアルでは、Warehouse にストアド プロシージャを作成して、テーブル内のデータを変換する方法について説明します。

手記

このチュートリアルでは、エンド ツー エンドのシナリオの一部を構成します。 このチュートリアルを完了するには、まず次のチュートリアルを完了する必要があります。

  1. ワークスペース を作成する
  2. 倉庫 を作成する
  3. Warehouse にデータを取り込む

ストアド プロシージャを作成する

このタスクでは、ウェアハウス テーブル内のデータを変換するストアド プロシージャを作成する方法について説明します。

  1. 最初のチュートリアル で作成したワークスペースが開かれていることを確認します。

  2. [ホーム] リボンの [新しい SQL クエリ] を選択します。

    [ホーム] リボンの [新しい SQL クエリ] オプションが強調表示されているスクリーンショット。

  3. クエリ エディターで、以下のコードを貼り付けます。 コードはストアド プロシージャを削除し (存在する場合)、populate_aggregate_sale_by_cityという名前のストアド プロシージャを作成します。 ストアド プロシージャ ロジックは、aggregate_sale_by_date_city という名前のテーブルを作成し、fact_sale テーブルと dimension_city テーブルを結合するグループ化クエリを使用してデータを挿入します。

     --Drop the stored procedure if it already exists.
     DROP PROCEDURE IF EXISTS [dbo].[populate_aggregate_sale_by_city];
     GO
    
     --Create the populate_aggregate_sale_by_city stored procedure.
     CREATE PROCEDURE [dbo].[populate_aggregate_sale_by_city]
     AS
     BEGIN
         --Drop the aggregate table if it already exists.
         DROP TABLE IF EXISTS [dbo].[aggregate_sale_by_date_city];
         --Create the aggregate table.
         CREATE TABLE [dbo].[aggregate_sale_by_date_city]
         (
            [Date] [DATETIME2](6),
            [City] [VARCHAR](8000),
            [StateProvince] [VARCHAR](8000),
            [SalesTerritory] [VARCHAR](8000),
            [SumOfTotalExcludingTax] [DECIMAL](38,2),
            [SumOfTaxAmount] [DECIMAL](38,6),
            [SumOfTotalIncludingTax] [DECIMAL](38,6),
            [SumOfProfit] [DECIMAL](38,2)
         );
    
         --Load aggregated data into the table.
         INSERT INTO [dbo].[aggregate_sale_by_date_city]
         SELECT
            FS.[InvoiceDateKey] AS [Date], 
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory], 
            SUM(FS.[TotalExcludingTax]) AS [SumOfTotalExcludingTax], 
            SUM(FS.[TaxAmount]) AS [SumOfTaxAmount], 
            SUM(FS.[TotalIncludingTax]) AS [SumOfTotalIncludingTax], 
            SUM(FS.[Profit]) AS [SumOfProfit]
         FROM [dbo].[fact_sale] AS FS
         INNER JOIN [dbo].[dimension_city] AS DC
            ON FS.[CityKey] = DC.[CityKey]
         GROUP BY
            FS.[InvoiceDateKey],
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory]
         ORDER BY 
            FS.[InvoiceDateKey], 
            DC.[StateProvince], 
            DC.[City];
     END;
    
  4. クエリを実行するには、クエリ デザイナーのリボンで [の実行] 選択します。

  5. 実行が完了したら、クエリの名前を Create Aggregate Procedureに変更します。

  6. エクスプローラーの ペインで、dbo スキーマの ストアド プロシージャ フォルダー内から、aggregate_sale_by_date_city ストアド プロシージャが存在することを確認します。

    エクスプローラー ウィンドウのスクリーンショット。新しく作成されたストアド プロシージャが強調表示されています。

ストアド プロシージャを実行する

このタスクでは、ストアド プロシージャを実行して、ウェアハウス テーブル内のデータを変換する方法について説明します。

  1. 新しいクエリを作成します。

  2. クエリ エディターで、以下のコードを貼り付けます。 このコードは、populate_aggregate_sale_by_city ストアド プロシージャを実行します。

     --Execute the stored procedure to create and load aggregated data.
     EXEC [dbo].[populate_aggregate_sale_by_city];
    
  3. クエリを実行します。

  4. 実行が完了したら、クエリの名前を Run Aggregate Procedureに変更します。

  5. 集計データをプレビューするには、エクスプローラーの ウィンドウで、aggregate_sale_by_date_city テーブルを選択します。

    手記

    テーブルが表示されない場合は、Tables フォルダーの省略記号「…」を選択し、更新を選択します。

    エクスプローラー ウィンドウのスクリーンショット。新しく作成されたテーブルが強調表示されています。

次のステップ

チュートリアル: ウェアハウス での T-SQL を使用したタイム トラベル