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

Azure Synapse中REST API取数分页导致JSON结构不符合预期

解决Azure Synapse Copy Data活动从SAP SuccessFactors取数的分页合并问题

问题分析

你遇到的核心矛盾是:用['d']['__next']能拉全量但结果是多个JSON拼接,用官方的$['d']['__next']/$.d.__next却只能取前1000行。本质是Copy Data活动对分页路径的解析逻辑差异,以及默认结果拼接方式没做数组合并。下面是不用foreach循环的直接解决方案:


方案1:设置JSON根路径+保留['d']['__next']分页规则

这是最直接的解决方法,让系统自动提取并合并每个分页的results数组:

  • 打开你的SAP SuccessFactors REST源数据集,找到JSON格式设置
  • 设置Root path为$['d']['results'],这个配置会告诉Copy Data活动:只把每个分页返回的d.results数组里的元素作为数据行,而非保留整个JSON结构
  • 保持分页规则为['d']['__next'],确保能正确触发后续分页请求
  • 运行Copy Data活动,此时所有分页的results元素会自动合并成一个完整的数据集,不再是多个JSON拼接

方案2:修复官方分页路径的解析问题

如果必须用官方推荐的$开头的分页路径,可能是SAP返回的__next格式有特殊处理需求:

  • 检查SAP返回的__next值是否是完整URL,如果是相对路径,需要在分页设置里补全Base URL:
    1. 分页规则选择Custom
    2. 分页Token来源填@activity('Copy Data').output.response.d.__next
    3. 下一页请求URL用表达式拼接:@concat('https://你的SAP SuccessFactors API域名/', activity('Copy Data').output.response.d.__next)
  • 同时同样设置JSON根路径为$['d']['results'],确保数据合并

方案3:调整Copy Data活动的输出设置

如果上述方法仍有问题,检查活动的输出数据集配置:

  • 确保输出数据集的格式设置里,选择Array of objects作为JSON结构,而非Single object
  • 若输出到ADLS等存储,设置File pattern为Single file,避免生成多个文件,同时自动合并所有分页数据

验证步骤

  1. 先在源数据集里做数据预览,确认单页数据能正确提取results里的元素
  2. 运行一次Copy Data活动,查看输出的数据集,确认是合并后的完整数组,而非多个JSON拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:05:30