次の方法で共有


レイクハウスに読み込む前にストアド プロシージャを使用してデータを前処理する

このチュートリアルでは、パイプラインの Script アクティビティを使用してストアド プロシージャを実行し、テーブルを作成して Azure Synapse データ ウェアハウスでデータを前処理する方法について説明します。 その後、前処理されたテーブルをレイクハウスに読み込みます。

前提条件

  • Microsoft Fabric 対応ワークスペース。 まだお持ちでない場合は、「ワークスペースの作成」の記事を参照してください。

  • Azure Synapse Data Warehouse でストアド プロシージャを準備します。 次のストアド プロシージャを事前に作成します。

    CREATE PROCEDURE spM_add_names
    AS
    --Create initial table
    IF EXISTS (SELECT * FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[names]') AND TYPE IN (N'U'))
    BEGIN
    DROP TABLE names
    END;
    
    CREATE TABLE names
    (id INT,fullname VARCHAR(50));
    
    --Populate data
    INSERT INTO names VALUES (1,'John Smith');
    INSERT INTO names VALUES (2,'James Dean');
    
    --Alter table for new columns
    ALTER TABLE names
    ADD first_name VARCHAR(50) NULL;
    
    ALTER TABLE names
    ADD last_name VARCHAR(50) NULL;
    
    --Update table
    UPDATE names
    SET first_name = SUBSTRING(fullname, 1, CHARINDEX(' ', fullname)-1);
    
    UPDATE names
    SET last_name = SUBSTRING(fullname, CHARINDEX(' ', fullname)+1, LEN(fullname)-CHARINDEX(' ', fullname));
    
    --View Result
    SELECT * FROM names;
    

    ストアド プロシージャを実行してサンプル テーブルを生成した結果を示すスクリーンショット。

ストアド プロシージャを実行するパイプライン スクリプト アクティビティを作成する

このセクションでは、スクリプト アクティビティを使用して、前提条件で作成したストアド プロシージャを実行します。

  1. [アクティビティ] ツール バーから [Script] アクティビティを選択し、プロパティ ペインの [設定] タブを選択して接続の詳細を選択します。 [接続] ドロップダウンを選択して [その他] を選択します。 その後、Azure Synapse Data Warehouse に接続できます。

    新しいスクリプト アクティビティを作成し、Azure Synapse Data Warehouse に接続するためのパイプライン インターフェイスを示すスクリーンショット。

  2. [新しいソース] セクションで、[Azure Synapse Analytics (SQL DW)] を選択します。

    [Azure Synapse Analytics] (SQL DW) が選択された [データの取得] ダイアログを示すスクリーンショット。

  3. [基本認証][サーバー][データベース][ユーザー名][パスワード] の各フィールドを指定し、[接続名] に「SynapseConnection」と入力します。 次に、[作成] を選択して、新しい接続を作成します。

    新しい接続の作成ダイアログを示すスクリーンショット。

  4. EXEC spM_add_names」と入力してストアド プロシージャを実行します。 これにより新しいテーブル dbo.name が作成され、単純な変換でデータが前処理され、[fullname] フィールドが [first_name][last_name] の 2 つのフィールドに変更されます。

    spM_add_names ストアド プロシージャを実行するように構成されたスクリプト アクティビティの [設定] タブを示すスクリーンショット。

パイプライン アクティビティを使用して前処理されたテーブル データをレイクハウスに読み込む

  1. [アクティビティ] ツール バーから [データのコピー] を選択し、[コピー アシスタントを使用] を選択するか、パイプライン ランディング ページの [コピー データ アシスタント] カードを使用して、[コピー データ アシスタント]を開始します。

    [データのコピー] の [コピー アシスタントを使用する] ボタンを示すスクリーンショット。

  2. 検索フィルターに「Synapse」と入力し、データ ソースの [Azure Synapse Analytics (SQL DW)] を選択し、[次へ] を選択します。

    コピー アシスタントの [データ ソースの選択] ページを示すスクリーンショット。[Azure Synapse Analytics] が選択されています。

  3. 前に作成した既存の接続 [SynapseConnection] を選びます。

    コピー アシスタントの [データ ソースの選択] ページのスクリーンショット。以前に作成した [SynapseConnection] が選択されています。

  4. ストアド プロシージャによって作成および前処理されたテーブル dbo.names を選びます。 [次へ] を選択します。

    前の手順でストアド プロシージャによって作成および前処理された dbo.names テーブルが選択されていることを示すスクリーンショット。

  5. [レイクハウス] を選択します。

    コピー先のレイクハウスが選択されている、コピー アシスタントのスクリーンショット。

  6. 名前を入力し、作成して接続を選択します。

    [新規のレイクハウス] ダイアログを示すスクリーンショット。

  7. データをコピーするコピー先のレイクハウスのテーブル名を入力し、[次へ] を選びます。

    コピー先のレイクハウスで使用されるコピー先のテーブル名を示すスクリーンショット。

  8. コピー アシスタントの最後のページで概要を確認します。 [データ転送をすぐに開始する] ボックスチェックチェックを解除し、[OK] を選択します。

    構成された接続の詳細が示されたコピー アシスタントの概要ページのスクリーンショット。

  9. [OK] を選択すると、新しいコピー アクティビティがパイプライン キャンバスに追加されます。

    コピー アクティビティが追加されたパイプライン キャンバスを示すスクリーンショット。

2 つのパイプライン アクティビティを実行してデータを読み込む

  1. スクリプト アクティビティから成功時に、スクリプトとデータ コピーのアクティビティを接続します。

    スクリプト アクティビティの成功時に 2 つのアクティビティを接続することを示すスクリーンショット。

  2. [実行][保存して実行] の順に選び、パイプラインで 2 つのアクティビティを実行します。

    パイプラインの [実行] ボタンを示すスクリーンショット。

    パイプラインの [保存して実行] ボタンを示すスクリーンショット。

  3. パイプラインが正常に実行されたら、詳細を表示してさらに多くの情報を得られます。 Copy アクティビティ名のリンクを選択すると、実行の詳細が表示されます。

    パイプラインの実行の詳細の表示ボタンを示すスクリーンショット。

    パイプラインの実行の詳細を示すスクリーンショット。

  4. ワークスペースに切り替えて、作成した Lakehouse を見つけます。 その下にある SQL 分析エンドポイントを選択して、結果をチェックします。

    コピー先のレイクハウスが強調表示されたワークスペースを示すスクリーンショット。

  5. テーブル SynapseNamesTable を選び、レイクハウスに読み込まれたデータを表示します。

    レイクハウスの SynapseNamesTable の結果を示すスクリーンショット。

このサンプルでは、結果をレイクハウスに読み込む前に、ストアド プロシージャでデータを前処理する方法を説明しました。 以下の方法を学習しました。

  • ストアド プロシージャを実行するスクリプト アクティビティを含むデータ パイプラインを作成する。
  • パイプライン アクティビティを使用して前処理されたテーブル データをレイクハウスに読み込む。
  • パイプライン アクティビティを実行してデータを読み込む。

次は、パイプライン実行の監視について詳しく説明します。