Azure Data Factory:如何合并文件并设置正确Content-Type?
解决方法
一、解决文件覆盖问题,实现多迭代数据合并
你当前用Copy behavior->Merge files无效,是因为这个选项只针对单次Copy Data活动内的多个源文件合并,而ForEach里每次迭代是独立的Copy Data活动,每次生成的文件会直接覆盖之前的。要实现合并,得先存临时文件再统一合并:
修改ForEach内的Copy Data输出路径
把目标存储的路径设置为带迭代变量的临时路径,比如:container/temp/@{item()}.json这样每个月份的JSON数据会生成独立的临时文件(比如
062022.json、072022.json),不会互相覆盖。添加合并用的Copy Data活动
在ForEach活动执行完成后,新增一个Copy Data活动:- 源:选择存储临时文件的文件夹,用通配符
*.json匹配所有临时文件 - 目标:设置你最终要保存的文件路径(比如
container/final/sales_data.json) - 打开Copy behavior,选择
Merge files,并在下方的Merge settings里选择合并为JSON数组(确保最终文件是合法的JSON格式)
- 源:选择存储临时文件的文件夹,用通配符
可选:清理临时文件
在合并完成后,添加一个Delete活动,删除临时文件夹下的所有*.json文件,避免占用存储。
二、设置Content-Type为application/json
在REST API数据集的配置里直接添加请求头:
- 打开你的REST数据集配置页
- 找到请求头(Headers)配置项
- 添加键值对:
- 键:
Content-Type - 值:
application/json
这样每次调用REST API时,请求头会自动带上这个参数,符合API的要求。
- 键:
内容的提问来源于stack exchange,提问作者paone
相关产品推荐
相关产品推荐

