Azure Data Factory での SQL Server ストアド プロシージャ アクティビティを使用したデータの変換Transform data by using the SQL Server Stored Procedure activity in Azure Data Factory

適用対象: はいAzure Data Factory はいAzure Synapse Analytics (プレビュー) APPLIES TO: yesAzure Data Factory yesAzure Synapse Analytics (Preview)

Data Factory パイプラインのデータ変換アクティビティを使用して、生データを予測や洞察に変換および処理します。You use data transformation activities in a Data Factory pipeline to transform and process raw data into predictions and insights. ストアド プロシージャ アクティビティは、Data Factory でサポートされる変換アクティビティの 1 つです。The Stored Procedure Activity is one of the transformation activities that Data Factory supports. この記事は、データ変換と Data Factory でサポートされている変換アクティビティの概要を説明する、データ変換に関する記事に基づいています。This article builds on the transform data article, which presents a general overview of data transformation and the supported transformation activities in Data Factory.

注意

Azure Data Factory を初めて利用する場合は、この記事を読む前に、「Azure Data Factory の概要」を参照してから、データの変換に関するチュートリアルを実行してください。If you are new to Azure Data Factory, read through Introduction to Azure Data Factory and do the tutorial: Tutorial: transform data before reading this article.

ストアド プロシージャ アクティビティを使用して、社内または Azure 仮想マシン (VM) 上の次のいずれかのデータ ストアでストアド プロシージャを呼び出すことができます。You can use the Stored Procedure Activity to invoke a stored procedure in one of the following data stores in your enterprise or on an Azure virtual machine (VM):

  • Azure SQL データベースAzure SQL Database
  • Azure Synapse Analytics (旧称 Azure SQL Data Warehouse)Azure Synapse Analytics (formerly Azure SQL Data Warehouse)
  • SQL Server データベースSQL Server Database. SQL Server を使用している場合は、データベースをホストしているコンピューター、またはデータベースにアクセスできる別のコンピューターにセルフホステッド統合ランタイムをインストールします。If you are using SQL Server, install Self-hosted integration runtime on the same machine that hosts the database or on a separate machine that has access to the database. セルフホステッド統合ランタイムは、管理された確実な方法でオンプレミスまたは Azure VM 上のデータ ソースをクラウド サービスに接続するコンポーネントです。Self-Hosted integration runtime is a component that connects data sources on-premises/on Azure VM with cloud services in a secure and managed way. 詳細については、セルフホステッド統合ランタイムに関する記事をご覧ください。See Self-hosted integration runtime article for details.

重要

Azure SQL Database または SQL Server にデータをコピーする場合、sqlWriterStoredProcedureName プロパティを使用してストアド プロシージャを呼び出すように、コピー アクティビティで SqlSink を構成できます。When copying data into Azure SQL Database or SQL Server, you can configure the SqlSink in copy activity to invoke a stored procedure by using the sqlWriterStoredProcedureName property. プロパティの詳細については、Azure SQL DatabaseSQL Server の各コネクタに関する記事をご覧ください。For details about the property, see following connector articles: Azure SQL Database, SQL Server. コピー アクティビティを使用して Azure Synapse Analytics (以前の Azure SQL Data Warehouse) にデータをコピーしている間に、ストアド プロシージャを呼び出すことは、サポートされていません。Invoking a stored procedure while copying data into an Azure Synapse Analytics (formerly Azure SQL Data Warehouse) by using a copy activity is not supported. しかし、SQL Data Warehouse のストアド プロシージャを呼び出すためにストアド プロシージャのアクティビティを使用することは可能です。But, you can use the stored procedure activity to invoke a stored procedure in a SQL Data Warehouse.

Azure SQL Database、SQL Server、または Azure Synapse Analytics (以前の Azure SQL Data Warehouse) からデータをコピーする場合、sqlReaderStoredProcedureName プロパティを使用して、ストアド プロシージャを呼び出してソース データベースからデータを読み取るために、コピー アクティビティ内で SqlSource を構成できます。When copying data from Azure SQL Database or SQL Server or Azure Synapse Analytics (formerly Azure SQL Data Warehouse), you can configure SqlSource in copy activity to invoke a stored procedure to read data from the source database by using the sqlReaderStoredProcedureName property. 詳細については、Azure SQL DatabaseSQL ServerAzure Synapse Analytics (以前の Azure SQL Data Warehouse)For more information, see the following connector articles: Azure SQL Database, SQL Server, Azure Synapse Analytics (formerly Azure SQL Data Warehouse)

構文の詳細Syntax details

JSON 形式のストアド プロシージャ アクティビティの定義を次に示します。Here is the JSON format for defining a Stored Procedure Activity:

{
    "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 のプロパティを示します。The following table describes these JSON properties:

プロパティProperty 説明Description 必須Required
namename アクティビティの名前Name of the activity はいYes
descriptiondescription アクティビティの用途を説明するテキストです。Text describing what the activity is used for いいえNo
typetype ストアド プロシージャ アクティビティの場合、アクティビティの種類は SqlServerStoredProcedure ですFor Stored Procedure Activity, the activity type is SqlServerStoredProcedure はいYes
linkedServiceNamelinkedServiceName Data Factory にリンクされたサービスとして登録されている Azure SQL DatabaseAzure Synapse Analytics (以前の Azure SQL Data Warehouse) 、または SQL Server への参照。Reference to the Azure SQL Database or Azure Synapse Analytics (formerly Azure SQL Data Warehouse) or SQL Server registered as a linked service in Data Factory. このリンクされたサービスの詳細については、計算のリンクされたサービスに関する記事をご覧ください。To learn about this linked service, see Compute linked services article. はいYes
storedProcedureNamestoredProcedureName 呼び出すストアド プロシージャの名前を指定します。Specify the name of the stored procedure to invoke. はいYes
storedProcedureParametersstoredProcedureParameters ストアド プロシージャのパラメーター値を指定します。Specify the values for stored procedure parameters. パラメーター値と、データ ソースでサポートされるパラメーター値の型を渡すには、"param1": { "value": "param1Value","type":"param1Type" } を使います。Use "param1": { "value": "param1Value","type":"param1Type" } to pass parameter values and their type supported by the data source. パラメーターで null を渡す必要がある場合は、"param1": { "value": null } (すべて小文字) を使います。If you need to pass null for a parameter, use "param1": { "value": null } (all lower case). いいえNo

パラメーターのデータ型のマッピングParameter data type mapping

パラメーターに指定するデータ型は、使用しているデータ ソースのデータ型にマップされる Azure Data Factory の型です。The data type you specify for the parameter is the Azure Data Factory type that maps to the data type in the data source you are using. データ ソースのデータ型マッピングは、コネクタ領域で確認できます。You can find the data type mappings for your data source in the connectors area. 次に例をいくつか示します。Some examples are

Data SourceData Source データ型のマッピングData Type Mapping
Azure Synapse Analytics (旧称 Azure SQL Data Warehouse)Azure Synapse Analytics (formerly Azure SQL Data Warehouse) https://docs.microsoft.com/azure/data-factory/connector-azure-sql-data-warehouse#data-type-mapping-for-azure-sql-data-warehouse
Azure SQL データベースAzure SQL Database https://docs.microsoft.com/azure/data-factory/connector-azure-sql-database#data-type-mapping-for-azure-sql-database
OracleOracle https://docs.microsoft.com/azure/data-factory/connector-oracle#data-type-mapping-for-oracle
SQL ServerSQL Server https://docs.microsoft.com/azure/data-factory/connector-sql-server#data-type-mapping-for-sql-server

エラー情報Error info

ストアド プロシージャが失敗し、エラー詳細が返されると、アクティビティ出力ではエラー情報を直接キャプチャすることができません。When a stored procedure fails and returns error details, you can't capture the error info directly in the activity output. ただし、データ ファクトリによって、そのアクティビティ実行イベントがすべて Azure Monitor に送り込まれます。However, Data Factory pumps all of its activity run events to Azure Monitor. データ ファクトリによって Azure Monitor にイベントが送り込まれるとき、エラー詳細も送り込まれます。Among the events that Data Factory pumps to Azure Monitor, it pushes error details there. そのようなイベントから、たとえば、メール アラートを設定できます。You can, for example, set up email alerts from those events. 詳細については、「Azure Monitor を使用して、データ ファクトリをアラートおよび監視する」を参照してください。For more info, see Alert and Monitor data factories using Azure Monitor.

次のステップNext steps

別の手段でデータを変換する方法を説明している次の記事を参照してください。See the following articles that explain how to transform data in other ways: