在 Azure 数据工厂中使用 SQL Server 存储过程活动转换数据

适用于: Azure 数据工厂 Azure Synapse Analytics

可使用数据工厂管道中的数据转换活动将原始数据转换和处理为预测和见解。 存储过程活动是数据工厂支持的转换活动之一。 本文基于转换数据一文编写,它概述了数据转换和数据工厂中支持的转换活动。

备注

如果不熟悉 Azure 数据工厂,请在阅读本文之前,先通读 Azure 数据工厂简介,并学习以下教程:教程:转换数据

可以使用存储过程活动调用企业或 Azure 虚拟机 (VM) 中以下数据存储中的存储过程:

  • Azure SQL 数据库
  • Azure Synapse Analytics
  • SQL Server 数据库。 如果使用 SQL Server,请在托管数据库的同一计算机上或在可以访问数据库的单独计算机上安装自托管集成运行时。 自托管集成运行时是一种以安全托管方式将本地/Azure VM 上的数据源与云服务进行连接的组件。 有关详细信息,请参阅自托管集成运行时一文。

重要

将数据复制到 Azure SQL 数据库或 SQL Server 中时,可以使用 sqlWriterStoredProcedureName 属性将复制活动中的 SqlSink 配置为调用存储过程 。 有关属性的详细信息,请参阅以下连接器文章:Azure SQL 数据库SQL Server。 不支持在使用复制活动将数据复制到 Azure Synapse Analytics 时调用存储过程。 但是,可使用存储过程活动来调用 Azure Synapse Analytics 中的存储过程。

从 Azure SQL 数据库、SQL Server 或 Azure Synapse Analytics 复制数据时,可以使用 sqlReaderStoredProcedureName 属性将复制活动中的 SqlSource 配置为调用存储过程,以便从源数据库读取数据 。 有关详细信息,请参阅以下连接器文章:Azure SQL 数据库SQL ServerAzure Synapse Analytics

语法详细信息

下面是用于定义存储过程活动的 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 引用在数据工厂中注册为链接服务的 Azure SQL 数据库、Azure Synapse Analytics 或 SQL Server。 若要了解此链接服务,请参阅计算链接服务一文。
storedProcedureName 指定要调用的存储过程的名称。
storedProcedureParameters 指定存储过程的参数值。 使用 "param1": { "value": "param1Value","type":"param1Type" } 传递数据源支持的参数值及其类型。 如果需要为参数传递 null,请使用 "param1": { "value": null }(全部小写)。

参数数据类型映射

为参数指定的数据类型是 Azure 数据工厂类型,该类型映射到正在使用的数据源中的数据类型。 可以在连接器区域中找到数据源的数据类型映射。 下面是一些示例

数据源 数据类型映射
Azure Synapse Analytics /data-factory/connector-azure-sql-data-warehouse#data-type-mapping-for-azure-sql-data-warehouse
Azure SQL 数据库 /data-factory/connector-azure-sql-database#data-type-mapping-for-azure-sql-database
Oracle /data-factory/connector-oracle#data-type-mapping-for-oracle
SQL Server /data-factory/connector-sql-server#data-type-mapping-for-sql-server

后续步骤

参阅以下文章了解如何以其他方式转换数据: