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

如何在Azure Synapse Analytics管道中自动化写入无服务器SQL数据库?

在Azure Synapse中实现管道触发的无服务器SQL数据库自动更新

以下是基于Synapse原生功能的几种解决方案,完全不需要依赖ADF:

方案1:管道中添加SQL脚本活动直接执行写入逻辑

无服务器SQL池本身支持直接查询数据湖中的文件(Parquet/CSV等格式),你可以把数据写入逻辑封装成SQL脚本,通过管道的SQL脚本活动自动执行:

  • 在现有管道的末尾添加SQL脚本活动,配置连接到你的无服务器SQL池
  • 写入增量更新的SQL脚本(以MERGE为例,适配你的主键和字段):
MERGE INTO dbo.target_table AS target
USING (
    SELECT *
    FROM OPENROWSET(
        BULK 'abfss://your-container@your-storage.dfs.core.windows.net/merged-data/*.parquet',
        FORMAT = 'PARQUET'
    ) AS source_data
) AS source
ON target.your_primary_key = source.your_primary_key
WHEN MATCHED THEN
    UPDATE SET 
        target.field1 = source.field1,
        target.field2 = source.field2
WHEN NOT MATCHED THEN
    INSERT (your_primary_key, field1, field2)
    VALUES (source.your_primary_key, source.field1, source.field2);
  • 保存管道后,每次管道运行完成数据湖合并后,会自动执行该脚本更新无服务器SQL表

方案2:使用Synapse数据流实现ETL写入

数据流是Synapse原生的可视化ETL工具,适合处理更复杂的数据转换+写入场景:

  1. 在Synapse Studio开发选项卡新建数据流
  2. 添加源数据集:选择数据湖存储,指向合并后的文件路径,配置文件格式
  3. 添加接收器数据集:选择无服务器SQL池的目标表
  4. 在接收器设置中,选择Upsert模式,设置主键匹配规则,指定需要更新/插入的字段
  5. 将该数据流活动添加到现有管道的末尾,管道运行时自动触发数据流完成数据写入

方案3:封装脚本到Synapse脚本库批量执行

如果你的写入逻辑复杂,可以把SQL脚本保存到Synapse工作区的SQL脚本库中:

  • 在开发选项卡的脚本库中创建并保存你的数据写入脚本
  • 在管道中添加执行SQL脚本活动,选择脚本库中的目标脚本,配置无服务器SQL池连接
  • 同样将该活动加入管道末尾,实现自动触发

注意事项

  • 确保无服务器SQL池对数据湖存储有读取权限(可通过托管身份或SAS密钥配置)
  • 增量场景下,建议在数据湖文件路径中加入时间戳分区,或在脚本中筛选最新批次数据,避免重复处理
  • 测试时先手动触发管道验证数据写入结果,再按需配置定时/事件触发器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:32:11