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

如何通过Python访问Azure Synapse Analytics管道的SQL脚本节点

实现Python访问Azure Synapse管道的SQL脚本节点

输入图片描述

你当前能连接SQL池运行SQL,但管道活动属于Synapse资源管理范畴,需要用Azure Synapse管理SDK或REST API来操作,以下是具体实现步骤:

核心依赖与身份验证

首先安装必要的Python包:

pip install azure-mgmt-synapse azure-identity

使用服务主体进行身份验证(生产环境推荐):

from azure.identity import ClientSecretCredential
from azure.mgmt.synapse import SynapseManagementClient

# 替换为你的实际参数
tenant_id = "你的租户ID"
client_id = "服务主体ID"
client_secret = "服务主体密钥"
subscription_id = "订阅ID"
resource_group = "资源组名称"
workspace_name = "Synapse工作区名称"
pipeline_name = "目标管道名称"

# 初始化Synapse管理客户端
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
synapse_client = SynapseManagementClient(credential, subscription_id)

获取并修改管道中的SQL脚本活动

先获取目标管道的定义,找到SQL脚本活动并更新其内容:

# 获取现有管道配置
pipeline = synapse_client.pipelines.get(resource_group, workspace_name, pipeline_name)
pipeline_dict = pipeline.as_dict()

# 遍历活动,定位SQL脚本节点并更新脚本
for activity in pipeline_dict["activities"]:
    if activity["type"] == "SqlScript":
        # 替换为你要导入的SQL脚本内容
        activity["typeProperties"]["sqlScript"]["script"] = """
        SELECT * FROM your_table;
        -- 这里是你的SQL脚本内容
        """
        break

# 提交更新后的管道配置
synapse_client.pipelines.create_or_update(
    resource_group,
    workspace_name,
    pipeline_name,
    pipeline_dict
)

关键注意事项

  • 确保服务主体拥有Synapse Contributor角色权限,否则无法修改管道资源。
  • 如果你的SQL脚本存储在ADLS等外部存储中,需在活动的typeProperties里配置对应的链接服务和脚本文件路径,而非直接内嵌脚本内容。

内容的提问来源于stack exchange,提问作者Ahmed Basiouny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:42:43