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

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 DatabaseAzure SQL Database
  • Azure SQL Data WarehouseAzure 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 SQL Data Warehouse にデータをコピー中に、ストアド プロシージャを呼び出すことはできません。Invoking a stored procedure while copying data into an 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 SQL Data Warehouse からデータをコピーする場合、sqlReaderStoredProcedureName プロパティを使用して、ソース データベースからデータを読み取るストアド プロシージャを呼び出すように、コピー アクティビティで SqlSource を構成できます。When copying data from Azure SQL Database or SQL Server or 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 SQL Data Warehouse の各コネクタに関する記事をご覧ください。For more information, see the following connector articles: Azure SQL Database, SQL Server, 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
名前name アクティビティの名前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 SQL Data Warehouse、または SQL Server への参照。Reference to the Azure SQL Database or 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 Source データ型のマッピングData Type Mapping
Azure SQL Data WarehouseAzure 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 DatabaseAzure 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: