Azure Data Factory または Synapse Analytics での SQL Server ストアド プロシージャ アクティビティを使用してデータを変換する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

Data Factory または Synapse パイプラインでデータ変換アクティビティを使用して、生データを予測や分析情報に変換して処理します。 ストアド プロシージャ アクティビティは、パイプラインでサポートされる変換アクティビティの 1 つです。 この記事は、データ変換とサポートされている変換アクティビティの概要を説明する、データ変換に関する記事に基づいています。

Note

Azure Data Factory を初めて利用する場合は、この記事を読む前に、「Azure Data Factory の概要」を参照してから、データの変換に関するチュートリアルを実行してください。 Synapse Analytics の詳細については、「Azure Synapse Analytics とは」を参照してください。

ストアド プロシージャ アクティビティを使用して、社内または Azure 仮想マシン (VM) 上の次のいずれかのデータ ストアでストアド プロシージャを呼び出すことができます。

  • Azure SQL データベース
  • Azure Synapse Analytics
  • SQL Server データベース SQL Server を使用している場合は、データベースをホストしているコンピューター、またはデータベースにアクセスできる別のコンピューターにセルフホステッド統合ランタイムをインストールします。 セルフホステッド統合ランタイムは、管理された確実な方法でオンプレミスまたは Azure VM 上のデータ ソースをクラウド サービスに接続するコンポーネントです。 詳細については、セルフホステッド統合ランタイムに関する記事をご覧ください。

重要

Azure SQL Database または SQL Server にデータをコピーする場合、sqlWriterStoredProcedureName プロパティを使用してストアド プロシージャを呼び出すように、コピー アクティビティで SqlSink を構成できます。 プロパティの詳細については、Azure SQL DatabaseSQL Server の各コネクタに関する記事をご覧ください。 コピー アクティビティを使用して Azure Synapse Analytics にデータをコピー中に、ストアド プロシージャを呼び出すことはできません。 しかし、Azure Synapse Analytics のストアド プロシージャを呼び出すためにストアド プロシージャのアクティビティを使用することは可能です。

Azure SQL Database、SQL Server、または Azure Synapse Analytics からデータをコピーする場合、sqlReaderStoredProcedureName プロパティを使用して、ソース データベースからデータを読み取るストアド プロシージャを呼び出すように、コピー アクティビティで SqlSource を構成できます。 詳細については、Azure SQL DatabaseSQL ServerAzure Synapse Analytics

ストアド プロシージャに出力パラメーターがある場合は、ストアド プロシージャ アクティビティを使う代わりに、検索アクティビティとスクリプト アクティビティを使います。 ストアド プロシージャ アクティビティでは、出力パラメーターがある SP の呼び出しはまだサポートされていません。

ストアド プロシージャ アクティビティを使って出力パラメーターがあるストアド プロシージャを呼び出すと、次のエラーが発生します。

Execution fail against sql server. (SQL Server に対する実行が失敗します。) Please contact SQL Server team if you need further support. (さらにサポートが必要な場合は、SQL Server チームにお問い合わせください。) SQL エラー番号: 201。 エラー メッセージ: プロシージャまたは関数 'sp_name' にはパラメーター '@output_param_name' が必要ですが、指定されませんでした。

UI を使用してストアド プロシージャ アクティビティを作成する

パイプライン内でストアド プロシージャア クティビティを使用するには、次の手順を行います。

  1. パイプラインのアクティビティ ペイン内で ストアド プロシージャ を検索し、ストアド プロシージャ アクティビティをパイプライン キャンバスにドラッグします。

  2. キャンバス上で新しい ストアド プロシージャ アクティビティ (まだ選択されていない場合)、その [設定] タブの順に選択して、その詳細を編集します。

    Shows the UI for a Stored Procedure activity.

  3. Azure SQL Database、Azure Synapse Analytics、または SQL Server への既存のリンクサービスを選択するか、新しいリンクサービスを作成します。

  4. ストアド プロシージャを選択し、その実行にパラメーターを指定します。

構文の詳細

JSON 形式のストアド プロシージャ アクティビティの定義を次に示します。

{
    "name": "Stored Procedure Activity",
    "description":"Description",
    "type": "SqlServerStoredProcedure",
    "linkedServiceName": {
        "referenceName": "AzureSqlLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "storedProcedureName": "usp_sample",
        "storedProcedureParameters": {
            "identifier": { "value": "1", "type": "Int" },
            "stringData": { "value": "str1" }

        }
    }
}

次の表に、JSON のプロパティを示します。

プロパティ 内容 必須
name アクティビティの名前 はい
description アクティビティの用途を説明するテキストです。 いいえ
type ストアド プロシージャ アクティビティの場合、アクティビティの種類は SqlServerStoredProcedure です はい
linkedServiceName Data Factory のリンクされたサービスとして登録されている Azure SQL DatabaseAzure Synapse Analytics、または SQL Server への参照。 このリンクされたサービスの詳細については、計算のリンクされたサービスに関する記事をご覧ください。 はい
storedProcedureName 呼び出すストアド プロシージャの名前を指定します。 はい
storedProcedureParameters ストアド プロシージャのパラメーター値を指定します。 パラメーター値と、データ ソースでサポートされるパラメーター値の型を渡すには、"param1": { "value": "param1Value","type":"param1Type" } を使います。 パラメーターで null を渡す必要がある場合は、"param1": { "value": null } (すべて小文字) を使います。 いいえ

パラメーターのデータ型のマッピング

パラメーターに指定するデータ型は、使用しているデータ ソースのデータ型にマップされる内部サービス型です。 データ ソースのデータ型マッピングは、コネクタのドキュメントで説明されています。 次に例を示します。

別の手段でデータを変換する方法を説明している次の記事を参照してください。