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

如何通过Azure Data Factory将JSON的fields数组动态复制到SQL表

动态将JSON的fields数组数据写入SQL表(无需手动映射)

针对你遇到的问题,核心是利用架构漂移(Schema Drift)特性结合数据转换来处理动态列,以下是具体实现步骤(以Azure Data Factory为例,这是复制活动常用的场景):

1. 改用数据流(Data Flow)替代单纯复制活动

复制活动的静态映射无法适配动态列,数据流的灵活转换和架构漂移支持是解决问题的关键:

  • 创建新的数据流,添加JSON源数据集,指向你的JSON文件/存储路径。
  • 在源设置中,确保正确解析JSON结构:如果JSON是单对象包含fields数组,直接读取整个对象即可;如果是多个对象的数组,设置读取模式为Array of objects。

2. 扁平化fields数组

添加Flatten转换,配置如下:

  • 选择根节点下的fields作为要展开的数组列。
  • 展开模式选择Flatten array into rows,这样数组中的每个元素会转为单独一行,同时保留根节点的name、description等字段。

    注:如果你的fields数组内是键值对结构(比如[{"key":"colName","value":"colValue"}, ...]),需要额外添加Pivot转换:将key设为透视键,value设为透视值,聚合方式选First,把键名转为SQL列名。

3. 配置SQL接收器的动态映射

在SQL接收器的设置中,开启以下关键选项:

  • 勾选Allow schema drift:允许接收器自动识别源数据中的新列。
  • 勾选Infer drifted column types:自动推断新增列的数据类型。
  • 根据需求选择Auto create table(自动创建目标表)或Alter table(已有表自动添加新列),确保SQL服务账号有对应的建表/改表权限。

4. 运行数据流

完成上述配置后,运行数据流即可自动将fields数组中的所有动态列,连同name、description一起写入SQL表,无需手动配置任何列映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:30:57