【问题标题】:Azure Data Factory v2 If activity always failsAzure 数据工厂 v2 如果活动总是失败
【发布时间】:2018-05-25 04:56:59
【问题描述】:

我目前正在努力使用 Azure 数据工厂 v2 如果活动总是失败并显示此错误消息: enter image description here

我设计了两个独立的管道,一个从本地 SQL Server 获取数据的完整快照(1333 条记录)并将数据加载到 Azure SQL 数据库中,另一个只从同一源获取增量.

两个管道在独立执行时工作正常。

然后我决定将这两个管道包装到一个父管道中,这样可以做到这一点: 1. 执行 LookUp 活动以检查 Azure SQL 数据库中的目标表是否有任何记录,基本 Select Count(Request_ID) As record_count From target_table - 活动工作正常,我可以预览返回的记录数。

2。 将 LookUp 活动的输出传递给 If 活动,条件是如果 record_count = 0,则父管道将调用完整加载管道,否则父管道将调用增量加载管道。

这是实际的表达方式:
{@activity('lookup_sites_record_count').output.firstRow.record_count}==0"

每当我尝试执行此父管道时,它都会失败并显示上述消息“活动失败:活动失败,因为内部活动失败。”

内部活动,即完全加载和增量加载管道,在独立触发时工作得很好。

我错过了什么?

提前非常感谢:)。

米哈伊尔

Pipeline 的 JSON 定义如下:

{
"name": "pl_remedyreports_load_rs_sites",
"properties": {
    "activities": [
        {
            "name": "lookup_sites_record_count",
            "type": "Lookup",
            "policy": {
                "timeout": "7.00:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false
            },
            "typeProperties": {
                "source": {
                    "type": "SqlSource",
                    "sqlReaderQuery": "Select Count(Request_ID) As record_count From mdp.RS_Sites;"
                },
                "dataset": {
                    "referenceName": "ds_azure_sql_db_sites",
                    "type": "DatasetReference"
                }
            }
        },
        {
            "name": "If_check_site_record_count",
            "type": "IfCondition",
            "dependsOn": [
                {
                    "activity": "lookup_sites_record_count",
                    "dependencyConditions": [
                        "Succeeded"
                    ]
                }
            ],
            "typeProperties": {
                "expression": {
                    "value": "{@activity('lookup_sites_record_count').output.firstRow.record_count}==0",
                    "type": "Expression"
                },
                "ifFalseActivities": [
                    {
                        "name": "pl_remedyreports_invoke_load_sites_inc",
                        "type": "ExecutePipeline",
                        "typeProperties": {
                            "pipeline": {
                                "referenceName": "pl_remedyreports_load_sites_inc",
                                "type": "PipelineReference"
                            }
                        }
                    }
                ],
                "ifTrueActivities": [
                    {
                        "name": "pl_remedyreports_invoke_load_sites_full",
                        "type": "ExecutePipeline",
                        "typeProperties": {
                            "pipeline": {
                                "referenceName": "pl_remedyreports_load_sites_full",
                                "type": "PipelineReference"
                            }
                        }
                    }
                ]
            }
        }
    ],
    "folder": {
        "name": "Load Remedy Reference Data"
    }
}

}

【问题讨论】:

    标签: azure-data-factory-2


    【解决方案1】:

    你的表达应该是:

    @equals(activity('lookup_sites_record_count').output.firstRow.record_count,0)
    

    【讨论】:

    • 您好 t.enix,刚刚尝试了您的代码,它成功了!非常感谢您,先生:)!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2018-11-22
    • 2019-04-24
    • 1970-01-01
    • 2019-04-23
    • 2018-08-02
    相关资源
    最近更新 更多