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

如何使用ADF复制活动导入JSON数组源的所有行至SQL Server

解决ADF复制活动从JSON数组导入全量数据到SQL Server的问题

这个问题我之前帮不少人处理过——你当前的配置里硬编码了value[0].xxx,相当于只告诉ADF取数组的第一个元素,自然只会生成一条记录。要导入所有行,关键是让ADF识别到value是要遍历的数组集合,然后正确映射数组内的字段。

核心修改步骤

  1. 配置源的Collection Reference
    在复制活动的源设置中,找到「Collection Reference」(针对JSON源),输入$['value'](或直接value,取决于你的JSON结构层级)。这个配置会告诉ADF:要把value数组里的每个元素当作单独的一行数据来处理。

  2. 修改TabularTranslator的schemaMapping
    把原来带[0]的索引去掉,直接用数组元素内的字段名映射到SQL Server的列。比如原来的value[0].AssociationFee改成AssociationFee,因为现在ADF已经在遍历value数组的每个元素了,直接引用元素内的字段即可。

修改后的完整配置示例

"enableStaging": false,
"translator": {
  "type": "TabularTranslator",
  "schemaMapping": {
    "AssociationFee": "AssociationFee",
    "AssociationFeeFrequency": "AssociationFeeFrequency",
    "AssociationName": "AssociationName"
  }
}

额外处理:如果需要保留顶级字段(如@odata.context)

如果你想把JSON里顶级的@odata.context和@odata.nextLink字段值复制到每一行对应的SQL列中,需要在translator里添加referenceObject配置,用来引用数组外的顶级字段:

"enableStaging": false,
"translator": {
  "type": "TabularTranslator",
  "schemaMapping": {
    "AssociationFee": "AssociationFee",
    "AssociationFeeFrequency": "AssociationFeeFrequency",
    "AssociationName": "AssociationName",
    "@odata.context": "BuyerFinancing",
    "@odata.nextLink": "PropertyCondition"
  },
  "referenceObject": {
    "@odata.context": "$['@odata.context']",
    "@odata.nextLink": "$['@odata.nextLink']"
  }
}

原理说明

当你设置了Collection Reference后,ADF会自动遍历指定数组的每一个元素,将每个元素的字段与schemaMapping中的配置对应,从而把数组里的所有元素都导入到SQL Server中,而不是只取第一个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:08:03