繁体   English   中英

Azure 数据工厂管道 - 如果内部活动失败

[英]Azure Data Factory pipeline - if fails on inner activity

我开发了一个 Azure 数据工厂管道,用于检查数据湖中文件的架构。 我有 15 个“模板格式”文件,我根据从客户那里收到的文件检查它们。 我有 xlsx 和 CSV 文件。

在此处输入图片说明

首先,我从模板文件夹中获取所有文件名并迭代它们。 我需要检查当前文件是否为 excel,就像我需要定义文件是 xlsx 还是 CSV 一样。

在此处输入图片说明

我想处理这两类问题。 首先,当接收到的文件的模式与模板的模式不同时。 其次,我根本没有收到这个文件。 所以在 Set Variable 活动中,我使用了这段代码。 所以我可以在 switch 活动中使用它。

@concat('Excel',
if(equals(activity('Get Metadata of excel bronze').Status,'Succeeded'),' True' , ' False'),
if(equals(activity('Get Metadata of excel bronze').Status,activity('Get Metadata of excel 
template').Status),' True' , ' False')
)

在此处输入图片说明

但是,当我没有收到文件并且我有一个模板“获取 excel 的元数据”时,模板失败并且整个“是 Excel”活动失败。 如果活动不会因错误而失败,是否有可能强制执行? 此管道中预计会出现错误。

在此处输入图片说明

您可以在失败时添加新活动,以便即使Get Metadata失败,管道也会继续运行后续步骤。

在此处输入图片说明

注意:当您将 2 个不同的活动输出连接到一个新活动(设置变量活动)作为输入时, Set Variable活动仅在两个输入都成功时运行,如果任何一个输入活动失败则运行失败。

在此处输入图片说明

解决方法是将 Get Metadata 输出连接到 2 个不同的活动。

对于每个Get Metadata活动,在成功和失败时单独添加设置变量活动(或任何其他所需的活动)以在发生错误时不停止运行管道。

在此处输入图片说明

即使在 Get Metadata2 失败时连接到其他活动失败时,管道也会运行。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM