如何通过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
相关产品推荐
相关产品推荐

