如何将3个Web Activity获取的API数据写入数据湖Raw Zone?
将API响应写入数据湖Raw Zone的实现方案(Azure Data Factory)
核心思路
利用Copy Activity将Web Activity返回的原始响应直接写入数据湖,全程保留数据原始格式,适配Raw Zone的存储需求。
具体步骤
1. 捕获Web Activity的响应数据
每个Get请求Web Activity的响应会自动存入活动输出,可通过以下表达式引用:
@activity('<你的Web Activity名称>').output
例:若第一个API请求的Web Activity名为Get_User_API,则引用表达式为@activity('Get_User_API').output。
2. 为每个Web Activity配置对应的Copy Activity
在每个Get请求的Web Activity后添加一个Copy Activity,用于将响应写入数据湖:
- 源(Source)配置:
- 源类型选择
Inline,格式匹配API响应类型(通常为JSON) - 在「Content」字段中填入上述引用Web Activity输出的表达式
- 若API返回单个对象而非数组,可包装为数组方便后续处理:
@array(activity('Get_User_API').output)
- 源类型选择
- 目标(Sink)配置:
- 目标类型选择
Azure Data Lake Storage Gen2,关联已配置好的Raw Zone存储Linked Service - 数据集格式选择
JSON(或API返回的原始格式) - 设置文件路径,建议按API分类+时间戳命名,避免文件冲突:
raw/user_api/@{formatDateTime(utcNow(), 'yyyyMMddHHmmss')}.json - 「Sink Behavior」选择
Create new file(Raw Zone优先保留原始版本,不覆盖)
- 目标类型选择
3. 配置活动依赖与并行执行
- 确保认证Web Activity完成后,才触发三个Get请求的Web Activity(通过「Success」依赖关系)
- 三个Get请求+Copy Activity的组合可并行执行,提升Pipeline效率:
- 选中三个Web Activity,右键选择「Set Parallel」
- 对应每个Web Activity的Copy Activity,设置依赖为其前置Web Activity的「Success」状态
4. 权限与验证
- 确保数据湖Linked Service的身份(如MSI、Service Principal)拥有
Storage Blob Data Contributor权限,可读写Raw Zone目录 - 测试Pipeline时,查看Copy Activity的输出日志,确认文件已成功写入数据湖,且内容与API响应一致
内容的提问来源于stack exchange,提问作者Brett
相关产品推荐
相关产品推荐

