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

Azure Data Factory对接REST API及转Parquet最佳方案咨询

在Azure Data Factory中对接REST API的实现方案

一、使用Web Activity获取OAuth授权令牌

以常用的Client Credentials授权模式为例,操作步骤如下:

  • 1. 配置Web Activity请求参数
    新建Web Activity,按以下规则配置:

    • 请求方法:选择POST
    • URL:填写OAuth令牌端点(示例:https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token)
    • 请求头:添加Content-Type: application/x-www-form-urlencoded
    • 请求体:用表单格式传入授权参数,替换占位符为实际值:
      grant_type=client_credentials&client_id={你的客户端ID}&client_secret={你的客户端密钥}&scope={目标API的权限范围}
      

    注意:客户端密钥等敏感信息必须通过Azure Key Vault或ADF的Secure String类型变量存储,禁止硬编码。

  • 2. 提取并复用令牌
    调用成功后,通过动态内容从响应中提取access_token,赋值给Pipeline变量以便后续使用:

    @activity('WebActivity_GetToken').output.access_token
    

    后续调用目标API时,将此令牌放入请求头的Authorization字段(格式:Bearer {token})即可。

二、将API响应转换为Parquet存储至Blob Storage

方案1:Copy Activity直接完成(适合简单JSON响应)

  • 1. 配置Web源数据集
    新建Web类型Dataset,配置:

    • 链接服务:选择/新建Web链接服务,在请求头中添加Authorization: Bearer @variables('accessToken')
    • 请求方法:匹配目标API要求(GET/POST等)
    • URL:填写目标API地址,按需添加查询参数
  • 2. 配置Parquet目标数据集
    新建Blob Storage类型Dataset,格式选择Parquet,关联你的存储账户链接服务,设置文件路径(可通过动态内容生成带时间戳的文件名,示例:@concat('api-exports/', utcnow('yyyyMMddHHmmss'), '.parquet'))

  • 3. 配置Copy Activity
    源选择上述Web Dataset,目标选择Parquet Dataset,运行管道即可完成数据提取、转换和存储。

方案2:Data Flow处理复杂响应(需数据清洗/转换场景)

  • 1. 调用API获取响应
    用Web Activity调用目标API,确保响应为JSON格式(若为XML,需先通过Web Activity或Copy Activity转换为JSON)

  • 2. 配置Data Flow

    • 源:选择Inline类型,输入动态内容@activity('WebActivity_CallAPI').output,将API响应作为数据源
    • 转换:按需添加过滤、映射、派生列等转换步骤
    • 接收器:选择Blob Storage,格式设为Parquet,关联对应的存储链接服务和文件路径

三、关键注意事项

  • 分页处理:若API返回分页数据,需用Until Activity循环调用,每次传入分页参数,直到获取全部数据
  • 错误处理:添加Failure分支或Try-Catch活动,捕获令牌过期、API调用失败等异常
  • 性能优化:对于大数据量响应,建议启用Copy Activity的分块读取或Data Flow的分区处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:23:10