Azure ForEach Activity with GetMetadata 和 Set Variable Pipeline Expression Builder

问题描述 投票:0回答:1

我正在尝试使用 ForEach 活动在 azure ADF 中获取包含子文件夹的目录。在活动中,我正在调用 GetMetaData 活动来获取设置变量活动来执行索引值。请帮助我,如何在管道表达式生成器中处理。请在下面找到我的管道顺序。

setVariable -->Lookup(db connect)-->forEach(inside) --> 获取元数据-->setVariable.

在 Set Variable 中,我们试图循环 getmetadata 但总是获取第一个索引,我们如何动态地进行。

表达式生成器代码:

@activity('GetParentFolderMetadata').output.childItems[0]['name']

如果我给出上面的一个表达式,它总是取第一条记录,我们如何获得所有索引。

azure-data-factory azure-data-factory-pipeline
1个回答
0
投票

为了达到您的要求,您需要两个 For Each 活动。一个迭代查找输出,另一个迭代每个获取元数据活动输出数组。

但是ADF不支持嵌套的ForEach。因此,在第一个 ForEach 中使用执行管道活动,您可以在子管道中使用另一个 ForEach。

我给了

@item()
这是一个文件夹名称来获取元数据活动。

enter image description here

现在创建执行活动并在子管道内创建一个数组参数。将获取元数据活动输出

@activity('Get Metadata1').output.childItems
给这个参数。

enter image description here

在子管道内部使用另一个 ForEach 并将此参数传递给它。

enter image description here

现在,您可以将每个文件名

@item().name
存储到这个 ForEach 中的一个设置变量中,然后根据您的要求使用它。

enter image description here

我在执行管道的一次迭代中的结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.