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

如何在Azure Data Factory管道中动态创建年/月/日文件夹?

在Azure Data Lake Storage Gen2容器间复制时动态生成年/月/日层级文件夹的实现方案

核心思路

利用Azure Data Factory(ADF)的动态内容表达式结合复制活动配置,自动生成基于日期的层级路径,同时批量处理指定的CSV文件。


方法一:基于当前UTC时间生成统一日期层级

适合所有目标文件存入同一个日期文件夹的场景:

  • 源数据集配置:选择ADLS Gen2作为数据源,填写源容器名称,文件路径用通配符匹配目标文件:file_*.csv;若需精确指定文件,可在复制活动「源」设置中,将「文件列表」设为:
    @createArray('file_1.csv', 'file_2.csv', 'file_3.csv', 'file_4.csv', 'file_5.csv', 'file_6.csv', 'file_7.csv', 'file_8.csv', 'file_9.csv')
    
  • 接收器数据集配置:选择ADLS Gen2作为接收器,填写目标容器名称,将「文件路径」设为动态内容,用表达式生成年/月/日层级:
    @concat(formatDateTime(utcNow(), 'yyyy/MM/dd'), '/')
    
    生成路径示例:2024/05/20/,所有CSV文件会被写入该路径下;若需带命名前缀的层级(如year=2024/month=05/day=20),可修改表达式为:
    @concat('year=', formatDateTime(utcNow(), 'yyyy'), '/month=', formatDateTime(utcNow(), 'MM'), '/day=', formatDateTime(utcNow(), 'dd'), '/')
    
  • 复制活动配置:根据业务需求设置「复制行为」为「追加」或「覆盖」,无需保留源文件分层结构。

方法二:基于源文件修改时间生成对应日期层级

适合按文件自身修改时间存入对应日期文件夹的场景:

  1. 获取源文件详情:添加Get Metadata活动,数据源选ADLS Gen2,填写源容器和文件路径file_*.csv,勾选「Child Items」字段以获取文件修改时间等信息。
  2. 遍历复制文件:添加ForEach活动,设置「Items」为@activity('Get Metadata').output.childItems;在循环内添加复制活动:
    • 源配置:文件路径设为@item().name,指向当前遍历的单个CSV文件。
    • 接收器配置:文件路径设为动态内容,基于文件修改时间生成层级:
      @concat(formatDateTime(item().lastModified, 'yyyy/MM/dd'), '/', item().name)
      
    每个文件会被存入对应修改时间的年/月/日文件夹下,文件名保持不变。

权限说明

确保ADF使用的服务主体或托管标识拥有目标ADLS Gen2容器的Storage Blob Data Contributor权限,以自动创建层级文件夹并写入文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:05:44