Azure Data Factory Dataflow动态读取分区文件夹CSV文件的方法
Azure Data Factory Dataflow 动态读取分区文件及批量读取子文件夹文件方案
一、动态读取按yyyy/mm/dd/timestamp格式分区的CSV文件
有两种实用实现方式:
参数化路径+通配符匹配
- 在管道中创建日期参数(如
targetDate),格式设为yyyy-MM-dd。 - 进入Dataflow的CSV数据源设置,将文件夹路径配置为表达式:
其中concat('你的根路径/', formatDateTime(pipeline().parameters.targetDate, 'yyyy/MM/dd/'), '*')*用于匹配当日所有timestamp子文件夹。 - 若需读取日期范围内的分区,可结合
StartDate和EndDate参数,配合通配符*覆盖区间;也可开启数据源的「分区选项」,选择「基于文件夹的分区」,指定分区格式为yyyy/MM/dd/HHmmss,系统会自动识别分区列并支持过滤。
- 在管道中创建日期参数(如
动态分区过滤
在数据源的「分区选项」中选择「自定义分区」,用表达式筛选指定日期范围的分区,示例:toDate(concat(year, '/', month, '/', day), 'yyyy/MM/dd') >= toDate(pipeline().parameters.StartDate) && toDate(concat(year, '/', month, '/', day), 'yyyy/MM/dd') <= toDate(pipeline().parameters.EndDate)注:
year/month/day是ADF自动从文件夹路径解析出的分区列名。
二、一次性读取test/dwh/tablename/下所有子文件夹的文件
通过两步快速实现:
- 打开Dataflow的CSV数据源设置,将文件夹路径设为
test/dwh/tablename/。 - 在「文件设置」区域勾选递归选项,系统会自动遍历该路径下所有层级的子文件夹,读取其中的CSV文件。
- 若仅需读取特定文件名(如示例中的
files.csv),可在「文件名」输入框填写files.csv,同时保持「递归」勾选,即可精准匹配所有子文件夹下的目标文件。
内容的提问来源于stack exchange,提问作者Developer Rajinikanth
相关产品推荐
相关产品推荐

