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

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

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

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

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

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

提示

我们建议不要参数化密码或机密。 而应将所有机密都存储在 Azure Key Vault 中,并参数化“机密名称”。

注意

存在导致在参数名中使用“-”的待解决的 bug,在该 bug 被解决之前,建议使用不带“-”的名称。

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

支持的链接服务类型

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

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

  • Amazon Redshift
  • Amazon 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 Key Vault
  • Azure SQL 数据库
  • Azure SQL 托管实例
  • Azure Synapse Analytics
  • Azure 表存储
  • Dataverse
  • DB2
  • Dynamics 365
  • Dynamics AX
  • Dynamics CRM
  • 文件系统
  • FTP
  • 泛型 HTTP
  • 泛型 REST
  • Google AdWords
  • Google BigQuery
  • Informix
  • MariaDB
  • Microsoft Access
  • MySQL
  • OData
  • ODBC
  • Oracle
  • Oracle 云存储
  • PostgreSQL
  • Salesforce
  • Salesforce 服务云
  • SAP CDC
  • SAP HANA
  • SAP 表
  • ServiceNow(在 ServiceNow 旧版中不受支持)
  • SFTP
  • SharePoint Online 列表
  • 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 密钥保管库中存储凭据