如何用Azure Data Factory管道批量调用REST API获取多公司数据
Azure Data Factory批量通过HTTP链接服务摄入多家公司数据方案
1. 参数化HTTP链接服务
- 创建HTTP链接服务时,先添加参数:进入链接服务的参数选项卡,新增字符串类型参数
companyId。 - 配置连接URL:在连接选项卡,将原URL中的固定公司ID替换为参数引用,即设置URL为
https://duedil.io/v4/company/gb/@{linkedService().companyId}.json。
2. 准备公司ID列表数据源
- 把需要抓取的公司ID(如06999618、07803944)存储到一个数据源,比如:
- Azure Blob/ADLS中的CSV文件(每行一个ID,或带表头的列如
company_id); - Azure SQL/MySQL中的数据表,专门存储待抓取的公司ID。
- Azure Blob/ADLS中的CSV文件(每行一个ID,或带表头的列如
- 在ADF中创建对应数据集,用来读取这个ID列表。
3. 搭建批量抓取管道
- 添加Lookup活动:选择刚才的ID列表数据集,配置读取所有行(若为CSV需勾选“第一行作为表头”),用来获取所有待处理的公司ID。
- 添加For Each活动:
- 在项的输入框中填写
@activity('Lookup活动名称').output.value,将Lookup得到的ID列表作为迭代源; - 若API有限流要求,勾选顺序执行,否则可保持默认并行执行。
- 在项的输入框中填写
- 在For Each内部添加复制活动:
- 源端:选择参数化的HTTP数据集,在数据集的参数配置中,将
companyId绑定为@item().company_id(替换为你实际的列名,比如CSV表头是id就写@item().id)。 - 目标端:配置你的存储数据集(如Blob、数据库),可以把公司ID嵌入文件名或表分区,避免数据覆盖,比如文件名设为
@{item().company_id}_financial_data.json。
- 源端:选择参数化的HTTP数据集,在数据集的参数配置中,将
4. 关键注意事项
- 确认HTTP链接服务的认证配置(API密钥、OAuth等)正常,参数化不会影响认证逻辑。
- 若目标API有请求频率限制,在For Each内部添加等待活动(比如设为10秒延迟),防止触发限流。
- 先使用2-3个ID做测试,验证参数传递、数据抓取和存储是否正常,再批量运行。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

