You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse Analytics中如何智能归集层级文件夹底部文件?

解决方案

可以通过Get Metadata + For Each 循环的组合实现自动化归集,无需手动维护21条路径,具体步骤如下:

1. 顶层Get Metadata:获取所有目标父文件夹

  • 创建一个Get Metadata活动,数据源指向包含21个子文件夹的顶层目录
  • 在活动的"字段"选项中勾选Child Items,获取该目录下所有子项(文件夹+文件)
  • 添加筛选逻辑,只保留类型为Folder的项,动态内容示例:
    @filter(activity('Get Metadata 1').output.childItems, item().type == 'Folder')
    

2. For Each循环遍历子文件夹

  • 将For Each的"Items"设置为上述筛选后的文件夹列表
  • 根据文件体量选择开启Sequential(顺序执行)或保持并行执行

3. 内部Get Metadata:获取当前文件夹下的目标文件

  • 在For Each内部添加第二个Get Metadata活动,数据源路径用动态内容拼接当前文件夹路径:
    @{pipeline().parameters.rootFolder}/@{item().name}
    
    (可提前定义rootFolder参数存储顶层目录路径,方便后续维护)
  • 同样勾选Child Items,筛选出类型为File的项,动态内容示例:
    @filter(activity('Get Metadata 2').output.childItems, item().type == 'File')
    

4. 内部Copy活动:复制文件到目标文件夹

  • 若单个子文件夹仅含一个目标文件,直接在For Each内添加Copy活动:
    • 源数据集路径:
      @{pipeline().parameters.rootFolder}/@{item().name}/@{activity('Get Metadata 2').output.childItems[0].name}
      
    • 目标数据集路径设置为归集文件夹,文件名按需自定义:
      • 保留原文件名:@{activity('Get Metadata 2').output.childItems[0].name}
      • 避免重名(如不同文件夹有同名文件):@{item().name}_@{activity('Get Metadata 2').output.childItems[0].name}
  • 若单个子文件夹含多个目标文件,需嵌套一层For Each遍历文件列表后执行Copy

5. 触发配置

  • 为管道设置定时触发(每日固定时间执行)或Blob存储触发(源文件夹有文件更新时自动触发),适配每日更新场景

内容的提问来源于stack exchange,提问作者user19504539

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:24:32