Azure Data Factory管道日期参数化需求:自动读取ADLS新文件夹
Azure Data Factory 动态日期参数配置(自动读取ADLS日期文件夹)
步骤1:选择动态日期来源(系统变量或自定义参数)
- 系统自动日期:如果ADLS文件夹按当前UTC日期生成,用表达式
@formatDateTime(utcnow(), 'yyyy/MM/dd')(格式需匹配你的文件夹结构,比如文件夹是yyyyMMdd格式就调整为对应写法);若需读取前一天的文件夹,用@formatDateTime(addDays(utcnow(), -1), 'yyyy/MM/dd')。 - 自定义管道参数:如果需要灵活指定日期,在管道中新建参数:
- 进入管道编辑界面,切换到「参数」标签,点击「+新建」。
- 参数名设为
SourceDate,类型选「字符串」,默认值填符合文件夹格式的日期(比如2024/05/20)。
步骤2:替换数据集/查询中的硬编码日期
- ADLS数据集路径:打开你的ADLS存储数据集,找到「文件路径」配置项,把硬编码的日期段替换为动态表达式。比如原路径是
rawdata/2024/05/20,改成:
如果用系统变量则改成:rawdata/@{pipeline().parameters.SourceDate}rawdata/@{formatDateTime(utcnow(), 'yyyy/MM/dd')} - 查询语句中的日期:如果是在SQL查询或数据筛选中用到日期,把硬编码的日期替换为动态参数,比如原查询:
改成:SELECT * FROM sales WHERE order_date = '2024-05-20'SELECT * FROM sales WHERE order_date = '@{pipeline().parameters.SourceDate}'
步骤3:调试时自动匹配目标文件夹
- 用系统变量的话,每次调试都会自动读取当前(或前一天)生成的对应日期文件夹,无需手动修改。
- 用自定义参数的话,调试时在弹出的参数输入框中填入ADLS中新生成的日期,即可自动读取对应文件夹的数据,避免硬编码导致的重复文件夹生成问题。
验证配置
保存管道和数据集后,点击「调试」,通过数据预览确认是否正确读取到目标日期文件夹下的内容,同时检查ADLS是否不会因硬编码重复生成冗余文件夹。
内容的提问来源于stack exchange,提问作者Nilesh Patel
相关产品推荐
相关产品推荐

