如何在Azure Data Factory中按日期复制文件
仅复制ADLS中含当日日期的文件
步骤1:生成当日日期变量
先创建一个字符串类型变量(例如var_TodayDate),用表达式生成YYYYMMDD格式的当日日期:
formatDateTime(utcNow(), 'yyyyMMdd')
如果文件日期基于本地时区,把utcNow()替换为convertTimeZone(utcNow(), 'UTC', 'China Standard Time')这类对应时区ID的表达式
步骤2:添加条件判断并执行复制
在你已有的For Each循环流程中:
- 完成文件名日期提取(存入
var_ExtractedDate变量)后,插入If Condition活动 - 设置判断条件:
equals(variables('var_ExtractedDate'), variables('var_TodayDate')) - 在If Condition的True分支里添加Copy Data活动:
- 源数据集选择ADLS容器,文件路径绑定当前遍历项的文件名/路径(例如
@item().name,具体字段取决于Get Metadata返回的Child Items结构) - 目标数据集配置你要复制到的目标位置,文件名可保持原名称或按需调整
- 源数据集选择ADLS容器,文件路径绑定当前遍历项的文件名/路径(例如
可选优化:提前过滤文件列表(减少遍历开销)
没必要遍历所有文件,可在Get Metadata之后加一个Filter Array活动,先筛选出符合条件的文件:
- 输入数组选择Get Metadata返回的
Child Items - 过滤条件设置为:
contains(item().name, variables('var_TodayDate')) - 把Filter Array的输出作为For Each的输入,这样循环只处理当日日期的文件,效率更高
内容的提问来源于stack exchange,提问作者jonie
相关产品推荐
相关产品推荐

