【问题标题】:Azure DataFactory Run Activity in response to any one of several activities failingAzure 数据工厂运行活动以响应失败的多个活动中的任何一项
【发布时间】:2020-08-10 18:06:17
【问题描述】:

假设我在管道的一部分中执行“设置”任务,然后在最后执行匹配的清理任务。 如果中间出现问题,我想做一个不同的清理任务。

我该如何配置?

我不能只声明对最终任务的 on-failure 依赖,因为链中较早的失败意味着后面的活动不会运行,因此既不会成功也不会失败。

无论如何我都看不到配置“OR”依赖项,就像我在 Sql Server 维护任务的日子里那样:)

目前看来,我最好的选择是将我的失败活动复制 5 次,每次都复制到每个中间步骤的失败?

【问题讨论】:

  • 基本上我想在我的管道子集周围定义一个try{}finally{} 块。

标签: azure-data-factory-2


【解决方案1】:

解决方案是“跳过”状态。

如果设置成功,则声明“失败清理”发生,并且“成功清理”被跳过。

来自 MSDN Activity Dependency States:

活动依赖

Activity Dependency 定义了后续活动如何依赖之前的活动,决定是否继续执行下一个任务的条件。一个活动可以依赖于一个或多个具有不同依赖条件的先前活动。

不同的依赖条件是:成功、失败、跳过、完成。

例如,如果管道具有 Activity A -> Activity B,则可能发生的不同场景是:

  • 活动 B 具有对活动 A 的依赖条件,成功
    • 仅当活动 A 的最终状态为成功时,活动 B 才会运行。
  • Activity B 对 Activity A 有依赖条件,失败
    • 仅当活动 A 的最终状态为失败时,活动 B 才会运行。
  • 活动 B 对活动 A 具有已完成的依赖条件:
    • 如果活动 A 的最终状态为成功失败,则活动 B 运行
  • 活动 B 对活动 A 有一个依赖条件,已跳过
    • 如果活动 A 的最终状态为已跳过,则活动 B 运行。
    • 跳过发生在Activity X -> Activity Y -> Activity Z的场景中,每个activity只有在前一个activity成功时才会运行。如果活动 X 失败,则活动 Y 的状态为 已跳过,因为它从不执行。同样,Activity Z 的状态也为已跳过

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多