如何通过参数化API调用在Azure Data Factory导出JIRA数据到存储湖JSON
ADF 动态分页拉取Jira全量工单解决方案
完全可以通过参数化API请求+循环分页的方式实现全量数据拉取,无需手动配置多条请求链接,且可自动适配后续增长的工单规模,具体配置步骤如下:
1. 配置参数化Jira API数据集
- 新建REST类型数据集,完成Jira站点的身份认证配置
- 为数据集添加
int类型参数startAt,默认值设为0 - 相对URL配置为如下动态表达式:
@concat('/rest/api/2/search?jql=order%20by%20created%20DESC&startAt=', string(dataset().startAt), '&maxResults=100')
2. 预请求获取总工单数量
- 配置1次单次API调用(可使用Web活动或复制活动),传入
startAt=0拉取第一页工单数据,提取返回报文中的total字段值,存入int类型变量totalTickets,该值为当前Jira站点的工单总数量。
3. 配置循环分页拉取逻辑
- 新建int类型变量
currentStart,初始值设为0 - 添加Until循环活动,终止条件配置为:
@greaterOrEquals(variables('currentStart'), variables('totalTickets')) - 循环内部按顺序配置以下活动:
- 复制活动:源选择上一步配置的参数化Jira数据集,传入
startAt参数值为@variables('currentStart');接收器选择存储湖JSON数据集,可配置为每个分页生成独立JSON文件,或统一追加到同一个文件中 - 可选:若Jira开启了API限流,可添加1-2秒的等待活动,避免请求被拦截
- 设置变量活动:更新
currentStart值为@add(variables('currentStart'), 100)
- 复制活动:源选择上一步配置的参数化Jira数据集,传入
后续优化(可选)
如果需要将所有分页数据合并为单个JSON文件,可在循环结束后新增1个复制活动,读取所有分页小文件合并后输出到目标路径即可。
该方案可自动适配任意工单规模,无需手动修改配置,后续工单涨到4000、10000条都可直接复用。
内容的提问来源于stack exchange,提问作者Nam Nguyen
相关产品推荐
相关产品推荐

