Azure Data Factory分页API复制生成无效JSON文件问题求助
解决Azure Data Factory分页REST API数据合并为有效JSON文件的方案
方案1:使用数据流动(Data Flow)直接合并分页数据
- 配置REST数据源:在数据流动的REST源中设置分页规则(与你现有管道的分页逻辑一致,比如基于页码、偏移量或响应中的next link),确保能拉取所有页面数据
- 解析JSON数组:将REST源的JSON格式设置为数组,如果API返回的是包含数组的嵌套对象(如
{"items": [{}]}),需指定JSON路径表达式(例如$.items)提取数组内容,让ADF将每页数据解析为行 - 写入单一有效JSON:使用Blob存储作为接收器,选择JSON格式,开启输出为单一文件,并设置JSON输出模式为数组,所有分页的行数据会自动合并成一个标准的JSON数组文件
方案2:调整复制活动的格式配置(适用于小数据量场景)
- 源端配置:确保REST复制源的JSON格式设置为数组,并正确提取嵌套数组(如有)
- 接收器配置:选择Blob存储作为接收器,JSON格式下设置文件写入行为为「合并文件」,同时勾选输出为数组,复制活动会自动将所有分页解析后的行数据合并为一个有效JSON数组写入目标文件
方案3:Azure Function合并已有分页文件(适用于已生成多页文件的情况)
- 创建Blob触发的Azure Function:设置触发条件为目标存储容器的Blob创建事件,通过文件名规则(如
page-*.json)识别分页文件 - 合并逻辑:当所有分页文件生成完成(可通过计数或标记文件判断),读取每个文件的JSON数组,将其元素合并到一个大数组中,写入最终的有效JSON文件,之后可删除分页文件释放空间
关键注意事项
- 必须确保REST API返回的每页数据是可解析的JSON结构,如果是嵌套数组需提前在源端配置路径提取,否则ADF无法正确解析成行数据
- 数据流动方案无需中间文件,性能最优,适合大数据量场景;复制活动配置更简单,适合小数据量快速实现
内容的提问来源于stack exchange,提问作者Mmolle
相关产品推荐
相关产品推荐

