Mar*_*rkD 7 azure-data-factory-2
我有一个子管道,它使用数据集从控制文件接收指令。这些说明定义了从哪个目录复制文件。
首先,此子管道通过源文件夹上的“获取元数据”活动检查文件是否存在。如果从 GetMetaData 返回一个或多个子项,它然后执行子管道来处理数据。
在控制数据集中,还有一个必需的 Y/N 字段,这意味着如果文件夹或文件不存在,我可以忽略错误。
如果文件夹不存在,GetMEtadata 将失败。如果它存在但没有文件,我会得到 0 个子项。因此,文件或文件夹丢失(错误或 0 个项目)会发生 2 种不同的情况。
在任何一种情况下,我都需要将 GetMetaData 的输出路由到检查是否需要文件的 IF。如果没有,则消耗错误并返回。如果需要,则引发错误。
不过,我找不到引发错误的方法。同样重要的是,是否有替代方法可以更好地与 ADF V2 设计配合使用?
非常感谢,马克。
小智 10
我使用 Set Variable Task 来实现这一点。
在变量表达式中,我除以零。这会引发一个错误,根据需要传播我的管道。我能想到的最通用的方法。
"name": "Throw Error",
"description": "You can't throw an error in DF so I try to divide by zero. :)",
"type": "SetVariable",
"dependsOn": [],
"userProperties": [],
"typeProperties": {
"variableName": "ThrowError",
"value": {
"value": "@div(1,0)",
"type": "Expression"
}
}
Run Code Online (Sandbox Code Playgroud)
我有类似的场景,我用 SqlStoreProcedure 管理它。
"storedProcedureName": "sp_executesql",
"storedProcedureParameters": {
"stmt": {
"value": "Declare @err_msg NVARCHAR(150)SET @err_msg=N'Error occurred in this pipeline somehow somewhere something. Best regards. EXISTSCheers'RAISERROR(@err_msg,15,1)",
"type": "string"
}
}
存储过程名称:sp_executesql
存储过程参数:stmt
值:声明 @err_msg NVARCHAR(150)SET @err_msg=N'Error 在这个管道中以某种方式发生。此致。EXISTSCheers'RAISERROR(@err_msg,15,1)(当然你可以更改错误文本:)
类型:字符串
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
5374 次 |
| 最近记录: |