我有一个项目场景,从端点URL获取所有用户,并将其插入SQL表,我使用ADF管道,但我在分页方面有一些问题,我在分页之前使用过,但只在下一页使用过:"someurl";使用AbsoluteUrl,但现在我遇到了问题,因为我的响应如下,为了获得下一页,我需要执行以下多次调用。
-
我所尝试的,为每个循环创建了一个,并使用range进行迭代,但它给了我无限循环中第一个调用的副本,并且不接受接下来的500条记录,下面是这个解决方案示例。
-
https://learn.microsoft.com/en-us/answers/questions/468561/azure-data-factory-pagination-issue.html#answer-470345
基本URL:https://xyz.xyz.com/api/v2/users?take=500这给了我第一个500响应:
> ],
"total": 3059,
"next": 500
}
为了让我接下500行,我需要按照提出请求
- https://xyz.xyz.com/api/v2/users?take=500&跳过=500
- https://xyz.xyz.com/api/v2/users?take=500&跳过=1000
- https://xyz.xyz.com/api/v2/users?take=500&跳过=1500
等等。。。请注意,在我的情况下,skip作为offset工作,我有36000行要获取。
你能就如何处理这件事给我一些建议吗?提前谢谢。
请检查以下解决方案是否有效,
-
在主管道中定义一个变量,比如说偏移量为0
-
Inside Until活动
a。进行如下动态内容的网络调用-@concat('https://xyz.xyz.com/api/v2/users?take=500&skip=',变量("偏移"(b。对数据执行所需操作,如对ADLS 的写入响应
c。使用";设置变量";活动将偏移值增加500。
-
当退出时,在Until循环中使用正确的表达式,有很多方法可以做到这一点,下面是其中一种方法-当您的网络呼叫响应中没有记录时,只需设置一个变量,在您的情况下-https://xyz.xyz.com/api/v2/users?take=500&跳过=36000在until表达式中使用此变量。