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

如何在Azure Synapse Analytics管道中为文件添加列?

在Azure Synapse Analytics中为合并后的文件添加列的简便方法

针对你API取数合并后需要补充列的场景,这里有几个实用且简便的方法,适配不同操作习惯:

方法1:用数据流(Data Flow)添加静态/计算列

这是可视化低代码的首选方案,适合批量处理和复杂列生成:

  • 新建数据流,添加源数据集指向合并后的大文件(比如ADLS Gen2存储路径)
  • 添加派生列转换:
    • 静态列:直接输入新列名,表达式填写固定值(字符串用单引号包裹),比如 'API_DATA_SOURCE'
    • 计算列:用Synapse表达式语言生成动态值,比如 currentTimestamp() 生成当前加载时间,uuid() 生成唯一标识ID
    • 批量添加:可以在编辑器中一次性定义多个列,示例:
      SourceTag = 'USER_API'
      LoadDateTime = currentTimestamp()
      BatchNumber = @pipeline().parameters.BatchId
      
  • 添加接收器数据集,设置输出路径和文件格式,最后在管道中调用该数据流活动即可

方法2:用Synapse SQL池的SQL语句处理

如果熟悉SQL操作,用外部表+SQL能快速生成带新列的文件:

  • 在Synapse SQL池(无服务器/专用池)中创建外部表,关联到合并后的文件(需提前配置数据源和文件格式)
  • 执行SELECT语句添加列并导出到目标位置,示例(导出为Parquet):
    COPY INTO '/storage/output/unified_data.parquet'
    FROM (
        SELECT 
            Prop_0, Prop_1, Prop_2,
            'API' AS SourceType,
            GETDATE() AS LoadDate
        FROM '/storage/input/merged_files/*.csv'
    )
    WITH (
        FILE_TYPE = 'PARQUET',
        COMPRESSION = 'SNAPPY'
    );
    
    也可以先创建带新列的内部表,再导出到存储。

方法3:复制活动(Copy Activity)中直接扩展映射

如果你的管道已经在用Copy Activity处理合并,可直接在映射环节补充列:

  • 打开Copy Activity的映射选项卡
  • 点击添加列,输入新列名后选择值类型:
    • 静态值:直接填入固定内容
    • 动态值:用管道表达式生成,比如 @utcNow() 取当前UTC时间,@pipeline().RunId 用管道运行ID做批次标识
  • 这种方法适合快速添加简单列,无需额外数据流或SQL操作

额外提示

  • 建议把默认列名(Prop_0、Prop_1)重命名为有业务意义的名称,可在数据流源转换或SQL表定义中完成,后续维护更便捷
  • 如果需要统一匹配其他数据源的列集,先整理出目标列清单,再针对性添加缺失列,避免遗漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:20:03