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

Azure Data Factory中Mongo Atlas嵌套JSON到Azure SQL托管实例映射方案咨询

嵌套JSON(Mongo Atlas到Azure SQL托管实例)无键标量子数组映射方案

方案1:源端Mongo聚合查询提前展平(推荐)

直接在Mongo Atlas的源查询阶段使用聚合操作拆分嵌套数组,无需后续额外处理:

[
  // 先拆分父数组
  {"$unwind": "$parentarray"},
  // 拆分无键标量子数组childarray2,生成单值行
  {"$unwind": "$parentarray.childarray2"},
  // 投影输出需要的字段,保留父级关联ID
  {
    "$project": {
      "_id": 1,
      "parent_field1": "$parentarray.field1",
      "childarray2_val": "$parentarray.childarray2"
    }
  }
]

将上述聚合语句填入ADF/Synapse复制活动的Mongo源查询配置中,输出的数据集已经是扁平化结构,可直接映射到SQL表的对应列。

方案2:ADF/Synapse复制活动映射配置

如果不修改源查询,可在复制活动的映射页面完成配置:

  • 先勾选高级编辑器,找到父数组的集合引用路径,设置为交叉应用(Cross Apply)拆分为多行
  • 对于无键标量子数组childarray2,添加新的集合引用,路径填写父数组路径下的childarray2,再次设置交叉应用
  • 将子数组的$(标量值本身)映射到SQL表的对应值列,同时保留父级主键/外键字段完成关联

注:无键标量数组的单个值不需要指定键名,直接引用根路径$即可获取数组元素本身,不会出现整段数组字符串的输出。

方案3:SQL端后置处理

如果已经使用「Map complex values to string」生成了数组格式的字符串列,可直接在Azure SQL托管实例中用OPENJSON拆分:

SELECT 
  t.id,
  t.parent_field1,
  j.value AS childarray2_val
FROM 你的原始表 t
CROSS APPLY OPENJSON(t.childarray2_str) j

执行上述查询即可将["ABC", "PQR"]格式的字符串拆分为多行单个值,直接写入目标表即可匹配预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:24:03