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

如何无需编程创建Pipeline在Azure Synapse Analytics中执行SQL查询

实现Azure Synapse编程式执行SQL查询的方案

1. 直接调用Synapse SQL端点的REST API

你可以通过专用SQL池或无服务器SQL池的T-SQL执行API直接运行SQL:

  • 专用SQL池(原SQL DW):发送POST请求到https://<工作区名称>.sql.azuresynapse.net/v1/servers/<服务器名称>/databases/<数据库名称>/query,请求体中携带要执行的SQL语句,通过Azure AD令牌完成身份验证。
  • 无服务器SQL池:端点格式为https://<工作区名称>-ondemand.sql.azuresynapse.net/v1/servers/<服务器名称>/databases/<数据库名称>/query,调用逻辑与专用池一致。

2. 使用官方SDK简化开发

推荐用SDK替代直接写REST请求,降低开发复杂度:

  • Python:借助pyodbc或sqlalchemy连接Synapse SQL端点执行SQL,示例代码:
import pyodbc

server = '<工作区名称>.sql.azuresynapse.net'
database = '<数据库名称>'
username = '<账号>'
password = '<密码>'
driver= '{ODBC Driver 18 for SQL Server}'

with pyodbc.connect(f'DRIVER={driver};SERVER={server};PORT=1433;DATABASE={database};UID={username};PWD={password}') as conn:
    with conn.cursor() as cursor:
        # 示例:查询Blob存储中的Parquet数据
        cursor.execute("SELECT * FROM OPENROWSET(BULK 'https://<存储账号>.blob.core.windows.net/<容器>/<文件路径>', FORMAT = 'PARQUET') AS [result]")
        row = cursor.fetchone()
        while row:
            print(row)
            row = cursor.fetchone()
  • .NET:使用System.Data.SqlClient或Microsoft.Azure.Synapse库,通过ADO.NET连接执行SQL。

3. 利用SQL Script API触发执行

你找到的SQL Script API支持脚本创建+执行的完整流程:

  • 先调用Create Sql Script接口创建包含目标SQL的脚本资源,再调用Execute Sql Script接口运行该脚本,适合需要保存查询脚本的场景,直接执行SQL则用第一种方式更高效。

关键注意事项

  • 身份验证:优先使用Azure AD服务主体完成身份验证,避免硬编码敏感信息。
  • 权限配置:确保执行账号/服务主体拥有Synapse SQL池的db_datareader(查询权限)或更高权限,同时对Blob存储具备读取权限(可通过托管身份或SAS令牌实现)。

内容的提问来源于stack exchange,提问作者SNEHAL DANGE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:00:17