ADLS动态文件夹命名问题:如何实现TableName/年/月/日格式路径
问题分析与解决
当前问题核心是dataset().FolderName的引用未被正确解析,导致系统输出了表达式的原始引用路径而非实际传入的TableName值,日期部分则因语法正确正常生成。
修正方案
规范动态表达式语法
在Azure Data Factory的路径配置中,需确保动态参数被正确解析。推荐使用两种写法:- 字符串拼接方式:
@concat(dataset().FolderName, '/', formatDateTime(utcNow(), 'yyyy'), '/', formatDateTime(utcNow(), 'MM'), '/', formatDateTime(utcNow(), 'dd')) - 插值写法(适用于支持直接插入动态内容的字段):
@{dataset().FolderName}/@{formatDateTime(utcNow(),'yyyy')}/@{formatDateTime(utcNow(),'MM')}/@{formatDateTime(utcNow(),'dd')}
若在Dataset的「文件夹路径」字段中配置,可省略外层的
@,直接写:dataset().FolderName/@{formatDateTime(utcNow(),'yyyy')}/@{formatDateTime(utcNow(),'MM')}/@{formatDateTime(utcNow(),'dd')}- 字符串拼接方式:
验证Dataset参数配置
- 确认目标Dataset已定义名为
FolderName的参数,参数类型需匹配传入的TableName字符串格式。 - 检查管道中调用Dataset时,是否已正确传入TableName值(如
Product),参数传递无拼写或大小写错误。
- 确认目标Dataset已定义名为
测试验证
重新运行管道,检查ADLS中生成的文件夹路径是否符合TableName/YYYY/MM/DD的预期格式。
内容的提问来源于stack exchange,提问作者Kalyani S.
相关产品推荐
相关产品推荐

