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

在Azure Data Factory中从层级ADLS容器获取最新文件的问题

ADF动态遍历ADLS层级文件夹并获取最新文件解决方案

一、定位最新的YYYY/MM/DD日期文件夹

  1. 拉取所有年份文件夹
    新建Get Metadata活动(命名Get_Years),数据源选择ADLS容器根目录,勾选Child items和Last modified属性。该活动会返回根目录下所有YYYY格式的文件夹列表。

  2. 遍历年份,拉取对应月份文件夹
    添加For Each活动(Loop_Years),遍历对象设为@activity('Get_Years').output.childItems。
    在For Each内部新建Get Metadata活动(Get_Months),数据源路径填写@item().name,同样勾选Child items和Last modified,获取该年份下所有MM格式的文件夹。

  3. 遍历月份,收集所有日期文件夹并筛选最新项
    在Loop_Years的For Each中再添加一个For Each活动(Loop_Months),遍历@activity('Get_Months').output.childItems。
    内部新建Get Metadata活动(Get_Dates),路径填写@concat(item().name, '/', item().name)(这里第一个item().name是年份,第二个是月份,组合为YYYY/MM路径),勾选Child items和Last modified,获取该路径下的DD格式文件夹。
    新建数组变量allDateFolders,在Loop_Months内部再加一个For Each遍历@activity('Get_Dates').output.childItems,用Append To Variable活动添加日期文件夹信息:

    @createObject('path', concat(item().name, '/', item().name, '/', dateItem.name), 'lastModified', dateItem.lastModified)
    

    遍历完成后,用Set Variable活动保存最新日期路径:

    @first(sort(variables('allDateFolders'), 'lastModified', desc)).path
    

二、遍历最新日期下的Module文件夹,获取所有文件

  1. 拉取最新日期下的所有Module文件夹
    新建Get Metadata活动(Get_Modules),路径填写@variables('latestDatePath'),勾选Child items,获取该日期下的所有Module文件夹(如Organization、People)。

  2. 遍历Module文件夹,收集所有文件并筛选最新项
    添加For Each活动(Loop_Modules),遍历@activity('Get_Modules').output.childItems。
    内部新建Get Metadata活动(Get_Files),路径填写@concat(variables('latestDatePath'), '/', item().name),勾选Child items和Last modified,获取该Module下的所有文件信息。
    新建数组变量allFiles,在Loop_Modules内部再加一个For Each遍历@activity('Get_Files').output.childItems,用Append To Variable活动添加文件信息:

    @createObject('path', concat(variables('latestDatePath'), '/', item().name, '/', fileItem.name), 'lastModified', fileItem.lastModified)
    

    最后用Set Variable活动保存最新文件路径:

    @first(sort(variables('allFiles'), 'lastModified', desc)).path
    

三、解决Get Metadata返回文件夹名而非文件名的问题

  • 检查数据源路径:必须指向Module层级文件夹(如2023/04/10/Organization),不能是日期层级(如2023/04/10),否则返回的子项是Module文件夹,item name自然为文件夹名。
  • 确认活动勾选属性:必须勾选Child items,如果仅勾选Item name,只会返回当前活动指向的文件夹名称,不会返回子项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:15:10