Compartilhar via

参数化Azure Data Factory和Azure Synapse Analytics中的链接服务

适用于: Azure Data Factory Azure Synapse Analytics

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

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

提示

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

注意事项

  1. 有一个关于在参数名中使用“-”的未解决的 bug。我们建议在此 bug 解决之前,使用不含“-”的名称。
  2. 存在一个影响带参数数据流的活跃 bug。 为避免问题,建议在 bug 修复前使用不含空格的数据流名称。

支持的链接服务类型

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

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

  • Amazon Redshift
  • Amazon S3
  • Amazon S3 兼容存储
  • Azure Blob Storage (Azure对象存储)
  • Azure Cosmos DB 的 NoSQL 版
  • Azure Databricks Delta Lake
  • Azure Data Explorer
  • Azure Data Lake Storage Gen2
  • 适用于 MySQL 的 Azure 数据库
  • Azure Database for PostgreSQL
  • Azure Databricks
  • Azure文件存储
  • Azure 函数
  • Azure Key Vault
  • Azure SQL Database
  • Azure SQL 托管实例
  • Azure Synapse Analytics
  • Azure 表格存储
  • Dataverse
  • DB2
  • Dynamics 365
  • Dynamics AX
  • Dynamics CRM
  • 文件系统
  • FTP
  • 泛型 HTTP
  • 泛型 REST
  • Google AdWords
  • 谷歌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.chinacloudapi.cn,1433;Database=@{linkedService().DBName};User ID=user;Password=fake;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
		},
		"connectVia": null,
		"parameters": {
			"DBName": {
				"type": "String"
			}
		}
	}
}

在 Azure Key Vault 中存储凭据