2

我在 Azure 数据工厂 V2 中创建了一个管道。它将从 Rest API 复制数据,并将此数据以 JSON 文件的形式保存在 Azure Data Lake 中。然后我使用 U-SQL 转换该 JSON 文件并将该数据以 .csv 格式复制到另一个文件夹中。我的管道。请参阅以下管道图像。

在此处输入图像描述

Rest API 将数据返回为 JSON 格式的谎言。

{
    "data": [
        {
            "id": "100024937598765",
            "name": "Sebastian Martinelli",
            "email": "sebastian.martinelli@abc.com",
            "administrator": false
        },
        {
            "id": "100024909012916",
            "name": "Diego Juarez",
            "email": "diego.juarez@abc.com",
            "administrator": false
        },
        {
            "id": "100025002270557",
            "name": "Jose Lopez",
            "email": "jose.lopez@abc.com",
            "administrator": false
        },
        {
            "id": "100024553664067",
            "name": "Valentin Montemarani",
            "email": "valentin.montemarani@abc.com",
            "administrator": false
        }
    ],
    "paging": {
        "cursors": {
            "before": "QVFIUmU1QnBOYThYTnJiQlNqVzItMFdoTVprSHh3cWZA4LXF2ZAE5nSjIxVWZAOWUc1ZAjdLZAjN2em1SazRYVno4TGE4aFBaOFdMaS1NMDdkeEduVkRsOTVhN3Jn",
            "after": "QVFIUjhWdm5EOTk3amJaWHVYR3p1OEZAZAQ0ZAoeTR5TDBwblE0Mmx3dC1zRXhPM2VLZAWdqR0RWQndUVnhpTGc3RkIzVkNIY21EcXFTQU93NHVxRFcxVW12dTNB"
        },
        "next": "https://graph.facebook.com/v2.12/1528385107457405/members?access_token=%2Cemail&limit=25&after=QVFIUjhWdm5EOTk3amJaWHVYR3p1OEZAZAQ0ZAoeTR5TDBwblE0Mmx3dC1zRXhPM2VLZAWdqR0RWQndUVnhpTGc3RkIzVkNIY21EcXFTQU93NHVxRFcxVW12dTNB"
    }
}

这个 API 没有返回完整的数据,它使用下一个链接返回数据,通过点击下一个链接,我们可以获取下一组记录。如何使用Data Factory V2中的迭代来获取此类数据?我尝试了其他活动,例如For each、Until 和 If,但无法重复该复制活动以获取完整数据。

基本 URL 就像

https://graph.facebook.com/Community/groups?fields=privacy,name, purpose&limit=5&access_token=value

现在下一个 URL 将是相同的,并且在它之后还有 1 个参数,例如

https://graph.facebook.com/v2.12/1528385107457405/groups?access_token=value&pretty=1&fields=privacy,name, purpose&limit=5&after=QVF

有没有办法做到这一点?

4

1 回答 1

3
  1. 复制活动具有对Pagination的内置支持。在@Waqas Idrees 的情况下,分页规则应设置为:

    • 姓名:AbsoluteUrl
    • 价值:$.data.paging.next

    可以在 Copy 活动的 Source 选项卡上找到此类设置:

在此处输入图像描述

  1. 无需使用 U-SQL 将层次结构转换为表格格式。复制活动映射可以即时完成

因此回答OP的问题:

如何使用 Data Factory V2 中的迭代来获取此类数据?

无需使用迭代。考虑使用复制活动功能。

PS因为探索此类主题花费了我相当多的时间,而且我在研究过程中找不到类似的指导,所以我创建了一篇关于它的博客文章并逐步描述了该过程:Azure 数据工厂和REST API - 映射和分页

PPS由于 ADF 的发展速度,我承认 2018 年 4 月内置的分页还不能成为产品的一部分。在这种情况下,它解释了为什么当时没有回答问题。但是,我希望我的发现能对这些天面临类似挑战的人有所帮助。

于 2019-12-28T20:22:50.330 回答