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

如何用Azure Copy Activity无显式映射复制层级JSON至ADLS Gen2并批量生成文件

解决方案:用Copy Activity处理多REST请求并生成独立Parquet文件

一、单个Copy Activity+ForEach实现多请求生成独立文件

单个Copy Activity无法直接发起多个REST请求,但结合ForEach活动循环处理请求集合,就能实现每个请求生成独立文件。以下是源端的关键配置项:

源端参数化设置

  • Base URL:填写API的固定基础地址,例如 https://api.yourdomain.com/v1
  • Relative URL:用动态参数指定每个请求的路径,例如 @item().requestPath(item() 来自ForEach迭代的请求配置列表)
  • Query Parameters:如果每个请求有不同的查询参数,同样用参数化配置,比如 @item().queryParams
  • JSON格式配置:
    • 若API返回数组结构,设置File pattern为Array of objects;若返回单个对象,选Single object
    • 开启Flatten nested structures选项,自动展平JSON嵌套层级,无需额外Data Flow处理

Sink端独立文件配置

在ADLS Gen2的Parquet sink中,设置动态文件名确保每个请求生成独立文件:

  • File name:使用表达式生成唯一名称,例如 @concat('data_', item().requestId, '.parquet')
  • 取消勾选Merge files,保证每个Copy Activity运行生成单个文件

二、关于JSON层级展平的说明

无需强制使用Data Flow,Copy Activity自带的Flatten nested structures功能可自动将嵌套的JSON对象/数组展平为顶级列(例如嵌套字段user.info.email会被转换为user_info_email)。如果需要自定义展平规则(比如保留特定层级、处理复杂数组),再考虑使用Data Flow的Flatten转换。

三、完整流程步骤

  1. 定义请求配置列表:创建管道变量或参数,存储所有需要发起的REST请求信息,示例:
    [
      {"requestPath": "/customers/1001", "requestId": "customer_1001"},
      {"requestPath": "/orders/202405", "requestId": "orders_202405"}
    ]
    
  2. 添加ForEach活动:将上述列表作为迭代项,可根据需求设置并行/串行执行
  3. ForEach内部添加Copy Activity:
    • 源:配置REST数据集,绑定动态路径和参数,开启层级展平
    • 映射:选择默认映射,Copy Activity会自动识别所有列并完成映射
    • Sink:配置ADLS Gen2的Parquet数据集,绑定动态文件名
  4. 运行管道:每个迭代会独立发起REST请求,将结果保存为单独的Parquet文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:12:14