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

使用Azure Data Factory获取最近5分钟修改的文件夹并传入Copy data活动

解决ADF中获取最近5分钟修改的目标文件夹并传入Copy Data的方案

步骤1:获取根目录下的所有子项信息

  • 创建Get Metadata活动(命名为Get_Silver_Children),关联到silver/目录对应的数据集
  • 在字段列表中勾选Child Items和Last Modified,获取该目录下所有子项的类型、名称及修改时间

步骤2:过滤出符合条件的DATE文件夹

  • 添加Filter活动(命名为Filter_Date_Folders),输入源为@activity('Get_Silver_Children').output.childItems
  • 设置过滤条件,只保留文件夹类型且修改时间在最近5分钟内的项:
    @and(equals(item().type, 'Folder'), greater(item().lastModified, addMinutes(utcNow(), -5)))
    
    这一步直接排除了_SUCCESS这类文件

步骤3:遍历DATE文件夹收集ID级目录信息

  • 先创建数组类型变量(如var_Valid_ID_Folders),用于存储所有符合条件的ID文件夹的完整路径和修改时间
  • 添加For Each活动(命名为Loop_Date_Folders),输入源为@activity('Filter_Date_Folders').output.value,勾选Sequential确保顺序执行
  • 在For Each内部添加Get Metadata活动(命名为Get_ID_Children),数据集路径设为@concat('silver/', item().name),同样勾选Child Items和Last Modified
  • 再添加Append Variable活动,将当前DATE下的所有ID文件夹信息追加到变量中,表达式为:
    @foreach(activity('Get_ID_Children').output.childItems, 
        createObject(
            'fullPath', concat('silver/', item().name, '/', item().name),
            'lastModified', item().lastModified
        )
    )
    

步骤4:筛选并排序取最新的ID文件夹

  • 添加Filter活动(命名为Filter_Recent_ID_Folders),输入源为@variables('var_Valid_ID_Folders'),过滤条件为:
    @greater(item().lastModified, addMinutes(utcNow(), -5))
    
  • 添加Sort活动(命名为Sort_ID_Folders),输入源为@activity('Filter_Recent_ID_Folders').output.value,按lastModified字段降序排序
  • 创建字符串变量(如var_Target_Folder),用Set Variable活动将排序后的第一个项的路径存入:
    @activity('Sort_ID_Folders').output.value[0].fullPath
    

步骤5:传入Copy Data活动

  • 在Copy Data活动的源路径中,直接引用变量:@variables('var_Target_Folder')
  • 确保源数据集支持动态路径配置(如通过参数或变量绑定路径)

关键注意事项

  • 时间判断默认使用UTC时间,若文件夹修改时间为本地时区,需额外做时区转换
  • 若DATE文件夹本身修改时间未更新,但内部ID文件夹有更新,可调整步骤2的逻辑:跳过DATE文件夹的时间过滤,直接遍历所有DATE文件夹后再检查ID文件夹的修改时间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:03:29