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

在Azure Data Factory中创建自定义触发器按天批量加载分区文件

在Azure Data Factory中实现指定时间段触发并传递Blob文件名参数

方案1:按天触发,每日处理对应分区的文件

适合需要在指定日期范围内每日自动运行,处理当天分区下CSV文件的场景。

1. 给管道添加参数

打开目标管道,切换到「参数」选项卡,添加一个字符串类型的参数(比如命名为targetFilePath),用来接收触发器传入的当日分区路径。如果需要直接接收单个文件名,可添加fileName参数。

2. 创建限定日期范围的计划触发器

  • 进入管道的「触发器」面板,点击「添加触发器」→「新建」
  • 选择「计划」触发器类型:
    • 在「计划」区域,设置开始日期为2022-01-01,结束日期为2022-01-18,重复频率选「天」,间隔设为1天,确保这段时间内每日自动运行
    • 切换到「参数」选项卡,把动态生成的当日分区路径传递给管道参数:
      给targetFilePath赋值:@formatDateTime(trigger().scheduledTime, 'yyyy/MM/dd')

3. 管道内处理文件

  • 添加「Get Metadata」活动,连接到你的Blob存储数据集,将数据集的路径设置为管道参数targetFilePath,勾选「子项」选项,获取该路径下的所有CSV文件
  • 添加「ForEach」活动,把Get Metadata返回的Child Items作为遍历对象,在循环内部:
    • 用@item().name获取单个文件名,直接传入后续处理活动(比如Copy Data、Data Flow)
    • 如果需要完整文件路径,可拼接:@concat(pipeline().parameters.targetFilePath, '/', item().name)

方案2:一次性触发,批量处理指定时间段所有文件

适合需要一次性跑完整个日期范围内所有分区文件的场景。

1. 配置管道参数

在管道的「参数」选项卡添加两个字符串参数:startDate和endDate,用来接收时间段的起止日期(比如2022-01-01和2022-01-18)。

2. 创建一次性运行的触发器

  • 新建「计划」触发器,设置开始日期为2022-01-01,结束日期与开始日期一致(确保只运行一次)
  • 在「参数」选项卡,给startDate和endDate分别传入对应的日期值。

3. 生成日期范围并批量处理

  • 添加「Until」活动生成日期序列:
    • 初始化变量currentDate为pipeline().parameters.startDate
    • 设置Until结束条件为@greaterOrEquals(variables('currentDate'), pipeline().parameters.endDate)
    • 在活动内部,把currentDate格式化为分区路径:@formatDateTime(variables('currentDate'), 'yyyy/MM/dd'),再执行「Get Metadata + ForEach」逻辑处理该路径下的文件
    • 最后用@addDays(variables('currentDate'), 1)更新currentDate变量,循环至结束日期
  • 数据量较大时,也可以用Data Flow生成日期序列,效率更高。

常用动态内容片段

  • 生成当日分区路径:@formatDateTime(trigger().scheduledTime, 'yyyy/MM/dd')
  • 获取遍历中的文件名:@item().name
  • 拼接完整Blob文件路径:@concat(pipeline().parameters.targetFilePath, '/', item().name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:54:23