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

Azure Data Factory 动态日期文件夹通配符路径配置问题

问题原因

你写的表达式存在两个核心问题:

  1. 缺失固定路径前缀:目标路径的上层固定目录sensor/micActivatedEvent/没有被拼入表达式,最终生成的路径是YYYY/MM/DD/*,会直接从容器根目录开始查找日期文件夹,完全跳过了前两层固定业务目录,自然匹配不到目标文件。
  2. 时区适配隐患:utcNow()取的是标准UTC时间,如果你的日期目录是按业务所在时区(比如国内东八区)生成的,直接用UTC时间拼接会在跨时区时段匹配到错误日期的目录,比如北京时间0点到8点之间,UTC时间还停留在前一天,拼接出来的路径会指向不存在的前一天目录。
修正方法

如果你的日期目录是按UTC时间生成的,直接补全固定前缀即可,修正后的表达式如下:
@concat('sensor/micActivatedEvent/',utcNow('yyyy'),'/',utcNow('MM'),'/',utcNow('dd'),'/*')

如果你的日期目录是按本地时区生成的,需要先做时区转换再拼接路径,以东八区(中国标准时间)为例,表达式如下:
@concat('sensor/micActivatedEvent/',convertTimeZone(utcNow(),'UTC','China Standard Time','yyyy'),'/',convertTimeZone(utcNow(),'UTC','China Standard Time','MM'),'/',convertTimeZone(utcNow(),'UTC','China Standard Time','dd'),'/*')

如果你用的是滚动窗口/调度触发器做历史补跑,不要直接用utcNow()取当前时间,应该替换为触发器自带的窗口时间参数trigger().outputs.windowStartTime,保证补跑时能匹配到对应业务日期的目录。

配置校验提示
  • 表达式要填在源配置的「通配符路径」输入框中,不要填在容器/根目录配置栏,容器配置直接选中目标Data Lake容器即可,不需要在表达式里重复拼接容器名。
  • 调试阶段可以先在管道中添加一个设置变量活动,把拼接后的路径打印出来,和存储账户里的实际目录逐段核对,避免多写漏写斜杠、日期格式不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:18:21