Azure Data Factory:复制活动未找到文件时如何阻止数据流执行?
解决Azure Data Factory无匹配文件时阻止数据流执行的方法
核心思路
通过复制活动的返回属性判断是否有文件被成功复制/移动,再用条件活动控制数据流的执行逻辑,实现“有文件才跑数据流,无文件则跳过”的效果。
具体配置步骤
利用复制活动的输出属性
复制活动执行后,ADF会返回关键统计属性:rowsCopied:实际复制的行数(无匹配文件时为0)filesRead:读取到的文件列表(无匹配文件时为空数组)
插入条件活动做判断
在复制活动与数据流之间添加一个条件活动,设置判断规则:- 若按行数判断,条件表达式写:
@greater(activity('你的复制活动名称').output.rowsCopied, 0) - 若按文件数量判断,条件表达式写:
@greater(length(activity('你的复制活动名称').output.filesRead), 0)
- 若按行数判断,条件表达式写:
调整分支执行逻辑
- 复制活动的成功分支连接到条件活动
- 条件活动的
True分支连接数据流活动(仅当有文件时执行) False分支可留空,或添加自定义操作(比如记录“无匹配文件”的日志)
额外注意事项
- 提前设置复制活动的**“如果没有找到文件”选项为“成功”**,避免无文件时复制活动直接失败导致管道终止。如果需要无文件时管道直接失败,可跳过条件判断,直接把这个选项设为“失败”。
内容的提问来源于stack exchange,提问作者redwolf_cr7
相关产品推荐
相关产品推荐

