如何使用Azure数据工厂将一批对象从整个JSON文件发布到REST API

whlutmcx  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一个需求,我有一个json文件,我需要发布到一个REST API。REST API有一个限制,每批发布2条记录。我怎么做呢?下面提供了示例JSON文件。如果有人可以帮助我。

[{
        "name": "sa",
        "salary": 1000,
        "age": 10
    },
    {
        "name": "sb",
        "salary": 2000,
        "age": 20
    },
    {
        "name": "sc",
        "salary": 3000,
        "age": 20
    },
    {
        "name": "sd",
        "salary": 4000,
        "age": 20
    },
    {
        "name": "se",
        "salary": 5000,
        "age": 20
    },
    {
        "name": "sf",
        "salary": 6000,
        "age": 20
    },
    {
        "name": "sg",
        "salary": 7000,
        "age": 20
    },
    {
        "name": "sh",
        "salary": 8000,
        "age": 20
    },
    {
        "name": "si",
        "salary": 9000,
        "age": 20
    },
    {
        "name": "sj",
        "salary": 1000,
        "age": 20
    },
    {
        "name": "sk",
        "salary": 1100,
        "age": 20
    },
    {
        "name": "sl",
        "salary": 1200,
        "age": 20
    },
    {
        "name": "sm",
        "salary": 1300,
        "age": 20
    }
]

我可以使用查找活动从JSON文件发布数据,并使用发布方法将输出传递到Web活动,但我无法控制管道运行期间要处理的对象数量。

nzk0hqpo

nzk0hqpo1#

我已经使用Set variables、lookup和until活动复制了上述内容,并得到了以下结果。
首先,我取了一个字符串集变量,并为迭代初始化指定了'0'值。

然后在查找之后使用Until活动。在Until活动里面我取了3个集合变量活动。由于ADF不支持自引用变量,我使用了临时字符串变量。

Next set变数会使用iter变数做为索引,建立具有下列动态内容的2个对象数组。

@createArray(activity('Lookup1').output.value[int(variables('iter'))],activity('Lookup1').output.value[add(int(variables('iter')),1)])

第三组变量使用以下动态内容将iter递增2。

@string(add(int(variables('temp')),2))

直到活动

@equals(div(int(variables('iter')),2),div(activity('Lookup1').output.count,2))


指令集

在Until活动中,您可以使用Web活动,并将数组变量给予给Web活动主体。

Until会在最后一个偶数记录处停止。
您可以看到它一直迭代到第12条记录。

然后,直到使用if活动检查总数据计数(偶数或奇数)。如果是偶数,则使用查找长度(如length-1length-2)按索引将最后两个记录传递到Web。如果是奇数,则仅将最后一个记录(length-1)传递到Web。**

相关问题