Azure Data Factory中如何遍历childItems数组?
Azure Data Factory遍历Get Metadata的childItems数组方案
方法一:用For Each活动逐个遍历处理
- 添加For Each活动到管道,将其
Items属性设置为@activity('Get File List').output.childItems,即可遍历整个文件信息数组 - 在For Each内部添加需要的活动(如Copy Data写入SQL),引用当前项字段时使用
@item().name、@item().lastModified等表达式,无需指定索引 - 若数组元素较多,可开启For Each的并行处理功能,调整并行度提升处理效率
方法二:一次性将数组写入SQL表(无需逐个遍历)
如果需要批量写入所有文件信息,可通过以下步骤实现:
- 添加Set Variable活动,创建一个
Array类型的变量(如var_FileList),赋值为@activity('Get File List').output.childItems - 添加Copy Data活动,源选择内联数据集,设置源的
Query属性为:
该表达式会把数组包装成可被Copy活动解析的JSON结构@json(concat('{"data": ', string(variables('var_FileList')), '}')) - 目标数据集选择你的SQL表,在Mapping面板中直接将JSON字段(如
name、lastModified)映射到SQL表的对应列即可 - 注意:确保SQL表列类型与childItems字段类型匹配(例如
lastModified对应SQL的datetime类型)
注意事项
- 若childItems数组为空,For Each活动会自动跳过内部逻辑,不会报错
- ADF表达式区分大小写,引用字段时需与Get Metadata输出的字段名完全一致(如
@item().name而非@item().Name)
内容的提问来源于stack exchange,提问作者uday13
相关产品推荐
相关产品推荐

