在Azure Data Factory中进行带页参数的分页
我有一个API,其格式如下:
{
data: [<some data>],
metadata:
{
page: 1,
size: 1000,
total: 3128
}
}
URL: {baseurl}/result?page=page
在这种情况下,最大页数应为4。页数可能会根据数据量而变化。
在拷贝数据时,我想在范围和结束条件中设置QueryParameter,但一旦API的分页超出边界,即达到5,API将返回无效的URL,从而导致拷贝数据失败。
这里有办法让分页在此处启用吗?是否可以让分页在size < total时自动停止,或有类似的解决方案?我想只输出一个文件,因此until/loop不是一个好的方法。
解决方案
先对API进行一次初始调用以获取1 条记录。这将给出元数据部分和总记录数。将其按你给定的分页大小进行划分。可选地把整数值分配给变量。在你的示例中:
3128 / 1000 = 3.13
将其向上取整到下一个整数(4),以得到所需的总页数。
@div(add(variables('intTotal'), sub(variables('intSize'), 1)), variables('intSize'))
然后在Copy Pagination部分的 RANGE 函数中使用它,类似如下:
restOfYourUrl&page=xpage
| 设置 | 值 | 表达式 |
|---|---|---|
| QueryParameter | xpage | RANGE:1:@{variables('intMaxPages')}:1 |
我的管道看起来是这样的:
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。
