是否可以将 Azure 数据工厂中复制活动的输出嵌入到一个数组中,以便在后续 ForEach 中迭代?
我的目标是创建一个包含多个复制活动输出的数组,然后在 ForEach 中,使用点表示法(例如:item().rowsRead)访问这些复制活动的属性。图片显示了代码详细信息。
具体来说,我有 7 个复制活动,它们的输出 JSON 对象(描述为 here)将存储在一个数组中,然后我对其进行迭代。在 ForEach 中,我将检查每个复制活动(rowsRead、rowsCopied 等)的属性以进行验证。 https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-monitoring
答案 0 :(得分:1)
我认为我们可以将 Azure 数据工厂中复制活动的输出嵌入到数组中。我创建了一个测试来将 2 个复制活动的输出保存到一个数组中。我们需要 concat
一个字符串类型,然后将其转换为 json 类型。请看我的第2步。
我们可以声明一个名为 CopyInfo
的数组类型变量来存储输出。另一个名为 JsonArray
的数组类型变量用于在调试模式下查看测试结果。
在Append variable1
活动中,我使用@json(concat('{"activityName":"Copy1","activityObject":',activity('Copy data1').output,'}'))
保存Copy data1
活动的输出并将其从String类型转换为Json类型。
在Append variable2
活动中,我使用@json(concat('{"activityName":"Copy2","activityObject":',activity('Copy data2').output,'}'))
保存Copy data2
活动的输出并将其从String类型转换为Json类型。
最后,我们可以看到这样的 json 数组:
"name": "JsonArray",
"value": [
{
"activityName": "Copy1",
"activityObject": {
"dataRead": 643,
"dataWritten": 643,
"filesRead": 1,
"filesWritten": 1,
...
},
{
"activityName": "Copy2",
"activityObject": {
"dataRead": 643,
"dataWritten": 643,
"filesRead": 1,
"filesWritten": 1,
...
}
}
]