我有一个有三个活动的管道:1. 从外部网站下载文件并将其存储在blob存储中(自定义活动)2. 将数据从blob复制到Azure SQL DB(复制活动)3.删除blob文件(自定义活动)
文件需要每月下载一次,但我不知道哪一天可以下载,所以我安排了管道每天运行一次。如果文件可用,则下载该文件。活动#1工作正常,但活动#2失败,如果没有输入文件。是否有办法避免失败的结果,因为它是一个预期的结果?
在Azure数据工厂版本1中有一种方法可以通过添加策略自定义代码来处理这种情况。但我尝试在ADF v2和不工作。
"policy": { "validation": { "minimumSizeMB": 0.01 } }
我尝试过的一种成功的方法是在复制活动之前添加一个获取元数据活动。
在GetMetadata活动中,您可以添加相同的数据集,在字段列表中,您可以添加'Exists'。您可以在IF-Else活动中使用'getmetadata'的响应,条件为'@bool(activity('GetMetadataActivityName').output.exists '如果blob存在,If-else活动的真实部分,您可以在那里添加Copy活动。你可以忽略If-else的else部分。样品管道
我遇到了同样的问题。据我所知,避免失败的唯一方法是创建一个空白blob文件。复制活动将不再失败,它只是不复制任何数据,因为它是空白的。我已经与azure数据工厂PM确认了这一点,因为我说我遇到了同样的问题。