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

如何通过代码将Synapse已发布SQL文件导出至沙箱或通过Notebook访问?

Synapse已发布SQL文件导出与Notebook访问方案

一、无需管道,通过代码导出已发布SQL文件到沙箱环境

可以直接通过Azure Synapse Management SDK或Synapse REST API实现,无需依赖Synapse管道。以下是Python SDK的实操示例:

  1. 先安装依赖包:
pip install azure-mgmt-synapse azure-identity
  1. 编写代码导出已发布SQL脚本:
from azure.identity import DefaultAzureCredential
from azure.mgmt.synapse import SynapseManagementClient

# 配置参数
subscription_id = "你的订阅ID"
resource_group_name = "资源组名称"
workspace_name = "源Synapse工作区名称"
sql_script_name = "要导出的已发布SQL脚本名称"
sandbox_save_path = "沙箱环境的保存路径(如本地路径或沙箱存储账户路径)"

# 初始化客户端
credential = DefaultAzureCredential()
synapse_client = SynapseManagementClient(credential, subscription_id)

# 获取已发布的SQL脚本内容
sql_script = synapse_client.sql_scripts.get(
    resource_group_name=resource_group_name,
    workspace_name=workspace_name,
    sql_script_name=sql_script_name
)

# 导出到沙箱环境
with open(sandbox_save_path, "w", encoding="utf-8") as f:
    f.write(sql_script.content)

说明:这里的已发布SQL脚本指Synapse工作区中Git关联后已发布分支的SQL脚本文件,通过SDK可直接读取内容并写入沙箱目标位置。

二、通过Notebook直接访问已发布SQL文件

可以在Synapse Notebook中直接访问已发布SQL文件,不同语言的实现方式如下:

1. PySpark/SparkSQL

通过Synapse Management SDK读取脚本内容后执行:

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

# 配置参数
subscription_id = "你的订阅ID"
resource_group_name = "资源组名称"
workspace_name = "当前Synapse工作区名称"
sql_script_name = "目标已发布SQL脚本名称"

# 初始化客户端
credential = DefaultAzureCredential()
synapse_client = SynapseManagementClient(credential, subscription_id)

# 获取SQL脚本内容
sql_script = synapse_client.sql_scripts.get(
    resource_group_name=resource_group_name,
    workspace_name=workspace_name,
    sql_script_name=sql_script_name
)

# 执行SQL内容
spark.sql(sql_script.content).show()

2. Scala

使用Azure SDK for Scala读取并执行脚本:

import com.azure.identity.DefaultAzureCredentialBuilder
import com.azure.resourcemanager.synapse.SynapseManager

// 配置参数
val subscriptionId = "你的订阅ID"
val resourceGroupName = "资源组名称"
val workspaceName = "当前Synapse工作区名称"
val sqlScriptName = "目标已发布SQL脚本名称"

// 初始化客户端
val credential = new DefaultAzureCredentialBuilder().build()
val synapseManager = SynapseManager.authenticate(credential, subscriptionId)

// 获取SQL脚本内容
val sqlScript = synapseManager.sqlScripts().getByWorkspace(resourceGroupName, workspaceName, sqlScriptName)

// 执行SQL内容
spark.sql(sqlScript.content()).show()

3. C# (.NET for Apache Spark)

使用Azure .NET SDK读取并执行脚本:

using Azure.Identity;
using Azure.ResourceManager.Synapse;

// 配置参数
string subscriptionId = "你的订阅ID";
string resourceGroupName = "资源组名称";
string workspaceName = "当前Synapse工作区名称";
string sqlScriptName = "目标已发布SQL脚本名称";

// 初始化客户端
var credential = new DefaultAzureCredential();
var synapseClient = new SynapseManagementClient(credential, subscriptionId);

// 获取SQL脚本内容
var sqlScript = await synapseClient.SqlScripts.GetAsync(resourceGroupName, workspaceName, sqlScriptName);

// 执行SQL内容
spark.Sql(sqlScript.Value.Content).Show();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:12:22