你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

参数化Azure 数据工厂和Azure Synapse Analytics中的链接服务

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

提示

Microsoft Fabric 中的 Data Factory 是下一代 Azure 数据工厂,具有更加简化的架构、内置人工智能和新功能。 如果不熟悉数据集成,请从Fabric数据工厂开始。 现有 ADF 工作负载可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。

现在可以参数化链接服务并在运行时传递动态值。 例如,如果要连接到同一逻辑 SQL Server 上的不同数据库,则现在可以在链接服务定义中参数化数据库名称。 这样就不需为逻辑 SQL Server 上的每个数据库创建链接服务。 也可以参数化链接服务定义中的其他属性 - 例如,用户名。

可以使用 Azure 门户中的 UI 或编程接口参数化链接服务。

提示

我们建议不要参数化密码或机密。 请改为将所有机密存储在 Azure 密钥保管库 中,并参数化 Secret Name。

注意

  1. 存在导致在参数名中使用“-”的待解决的 bug,在该 bug 被解决之前,建议使用不带“-”的名称。
  2. 存在一个影响带参数数据流的活跃 bug。 为避免问题,建议在 bug 修复前使用不含空格的数据流名称。

有关此功能的 7 分钟介绍和演示,请观看以下视频:

支持的链接服务类型

所有链接服务类型都支持参数化。

UI 原生支持:在 UI 上创作链接服务时,服务为以下类型的链接服务提供内置参数化体验。 在“链接服务创建/编辑”边栏选项卡中,可以找到新参数的选项并添加动态内容。 请参阅 UI 体验。

  • Amazon Redshift
  • 亚马逊S3
  • Amazon S3 兼容存储
  • Azure Blob 存储
  • Azure Cosmos DB for NoSQL
  • Azure Databricks Delta Lake
  • Azure 数据资源管理器
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure Database for MySQL
  • Azure Database for PostgreSQL
  • Azure Databricks
  • Azure文件存储
  • Azure 函数
  • Azure 密钥保管库
  • Azure SQL 数据库
  • Azure SQL 托管实例
  • Azure Synapse Analytics
  • Azure 表存储
  • Dataverse
  • DB2
  • Dynamics 365
  • Dynamics AX
  • Dynamics CRM
  • 文件系统
  • FTP
  • 泛型 HTTP
  • 泛型 REST
  • 谷歌广告
  • 谷歌BigQuery
  • Informix
  • MariaDB
  • Microsoft Access
  • MySQL
  • OData
  • ODBC
  • Oracle
  • Oracle 云存储
  • PostgreSQL
  • Salesforce
  • Salesforce 服务云
  • SAP CDC
  • SAP HANA
  • SAP 表
  • ServiceNow(在 ServiceNow 旧版中不受支持)
  • SFTP
  • SharePoint联机列表
  • Snowflake
  • SQL Server
  • Vertica

高级创作:对于不在上述列表中的其他链接服务类型,你可以通过在 UI 上编辑 JSON 来参数化链接服务:

  • 在“链接服务创建/编辑”边栏选项卡中 -> 展开底部的“高级”-> 选中“以 JSON 格式指定动态内容”复选框 -> 指定链接服务 JSON 有效负载。
  • 或者,在创建不带参数化的链接服务后,在 管理中心 -> 链接服务 -> 找到特定的链接服务 -> 选择“代码”(按钮“{}”)以编辑 JSON。

请参考 JSON 示例来添加 parameters 节,以定义参数并使用 @{linkedService().paramName} 来引用参数。

UI 体验

JSON

{
	"name": "AzureSqlDatabase",
	"properties": {
		"type": "AzureSqlDatabase",
		"typeProperties": {
			"connectionString": "Server=tcp:myserver.database.windows.net,1433;Database=@{linkedService().DBName};User ID=user;Password=fake;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
		},
		"connectVia": null,
		"parameters": {
			"DBName": {
				"type": "String"
			}
		}
	}
}

在 Azure 密钥保管库 中存储凭据