You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python在Data Factory中添加Azure Synapse Analytics链接服务

问题背景

使用Python SDK开发Azure Data Factory配置与管道过程中,已成功完成Azure Blob Storage、Azure Key Vault的链接服务创建,但在添加无服务器版Azure Synapse Analytics链接服务时,无法在azure.mgmt.datafactory.models模块中找到对应类。已知通过ADF UI可正常完成该链接服务添加,确认存在对应的Python SDK实现方式。

解决方案

无服务器Azure Synapse Analytics(无服务器SQL池)在ADF Python SDK中没有单独命名的专属类,直接复用AzureSqlDatabaseLinkedService类即可实现配置,这和UI底层的接口定义完全一致。

  • 前置要求:安装的azure-mgmt-datafactory包版本≥2.0.0,旧版本存在类缺失问题
  • 连接端点填写规则:数据源地址填Synapse工作区的无服务器SQL端点,格式为<工作区名称>-ondemand.sql.azuresynapse.net,初始数据库可填默认的master或自定义库名
  • 密钥存储推荐复用已配置好的Azure Key Vault链接服务,和UI操作逻辑对齐

实现代码示例

from azure.identity import DefaultAzureCredential
from azure.mgmt.datafactory import DataFactoryManagementClient
from azure.mgmt.datafactory.models import (
    AzureSqlDatabaseLinkedService,
    AzureKeyVaultSecretReference,
    LinkedServiceReference
)

# 初始化ADF管理客户端
client = DataFactoryManagementClient(
    credential=DefaultAzureCredential(),
    subscription_id="<你的Azure订阅ID>"
)

# 关联已创建完成的Key Vault链接服务
akv_ref = LinkedServiceReference(reference_name="<已存在的Key Vault链接服务名称>")

# 构造无服务器Synapse链接服务对象
synapse_serverless_ls = AzureSqlDatabaseLinkedService(
    connection_string=AzureKeyVaultSecretReference(
        store=akv_ref,
        secret_name="<Key Vault中存储Synapse无服务器连接串的密钥名称>"
    ),
    encrypt="True",
    trust_server_certificate="False",
    connect_timeout=30
)

# 提交创建请求
client.linked_services.create_or_update(
    resource_group_name="<ADF所在资源组名称>",
    factory_name="<ADF实例名称>",
    linked_service_name="<自定义的Synapse链接服务名称>",
    linked_service=synapse_serverless_ls
)

若测试场景需要直接硬编码连接串,直接给connection_string参数传入完整连接字符串即可,生产环境不推荐该方式。创建完成后可直接在ADF UI中测试连接,功能和手动通过UI创建的链接服务完全一致。

内容的提问来源于stack exchange,提问作者Grzegorz Gabrychowicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:18:20