Azure数据工厂V2逻辑或

时间:2020-07-07 10:13:04

标签: azure api azure-data-factory azure-data-factory-2

是否可以为Azure Data Factory V2管道活动创建逻辑或?例如,我们有两个复制活动,并且在任何复制活动失败时,数据工厂应调用API。

enter image description here

2 个答案:

答案 0 :(得分:2)

是的,我们可以。

您可以添加If Condition来创建逻辑管道。如果两个副本的活动输出状态包含“失败”,则调用API。

我们知道,每个活动副本的输出都有以下详细信息:

"executionDetails": [
        {
            "source": {
                "type": "AzureSqlDatabase",
                "region": "East US"
            },
            "sink": {
                "type": "AzureSqlDatabase",
                "region": "East US"
            },
            "status": "Succeeded",
            "start": "2020-07-08T05:37:33.9079553Z",
            "duration": 4,
            "usedDataIntegrationUnits": 4,
            "usedParallelCopies": 1,
            "profile": {
                "queue": {
                    "status": "Completed",
                    "duration": 2
                },
                "transfer": {
                    "status": "Completed",
                    "duration": 1,
                    "details": {
                        "readingFromSource": {
                            "type": "AzureSqlDatabase",
                            "workingDuration": 0,
                            "timeToFirstByte": 0
                        },
                        "writingToSink": {
                            "type": "AzureSqlDatabase",
                            "workingDuration": 0
                        }
                    }
                }
            },

我们可以将executionDetails:{"status": "Succeeded"}设置为有效的if条件: enter image description here

表达:无论哪个活动失败,所有API:

@or(equals(activity('Copy data1').output.executionDetails.status,'Failed'),equals(activity('Copy data2').output.executionDetails.status,'Failed') )

如果条件为true,请添加true活动对象以调用API: enter image description here

如果所有复制活动都“成功”(条件为false),并且我们不想执行任何操作,则不需要添加错误的活动。

希望这会有所帮助。

答案 1 :(得分:0)

我不知道。当一个活动具有多个条件时,它们将被视为AND条件,这意味着两个复制活动都必须无法执行Web活动。

执行此操作的一种常见模式是创建一个管道,该管道封装了报告错误的逻辑,并从每个活动的故障中调用它,将错误输出捕获到管道参数中。

希望这对您有所帮助!