ADF元数据追踪:获取Original/Rerun标识及活动RunId的技术问题
ADF管道审计监控的变量获取与存储过程参数指引
1. 获取管道运行类型(Original/Rerun)
ADF没有直接返回运行类型的系统变量,但可以通过现有系统变量组合判断:
- 核心逻辑:通过
@pipeline().ParentRunId是否为空区分- 当
ParentRunId为空时,运行类型为Original - 当
ParentRunId不为空(指向原运行ID)时,运行类型为Rerun
- 当
- 可直接使用的表达式:
if(empty(pipeline().ParentRunId), 'Original', 'Rerun') - 补充说明:无论是手动重跑还是触发式重跑,ADF都会为新运行生成非空的
ParentRunId,该逻辑覆盖绝大多数场景。
2. 循环内Copy Activity的RunId参数填写
假设你在ForEach循环中调用Copy Activity,按以下方式传递RunId到存储过程:
- 在循环内部,直接引用当前迭代中Copy Activity的RunId,表达式为:
@activity('你的Copy活动名称').RunId - 在调用存储过程的Execute SQL活动中,将该表达式绑定到对应存储过程参数即可,无需额外格式转换(ADF会自动处理为字符串类型的RunId)
- 注意:如果循环的Items是动态生成的活动列表,需确保在循环内正确引用当前活动名称,比如通过
@item().activityName动态拼接活动引用:@activity(item().activityName).RunId
调试与验证建议
- 用ADF调试模式运行管道,结束后查看活动输出,确认表达式取值是否符合预期
- 可在管道中添加
Set Variable活动,将待验证的变量/表达式结果存入临时变量,通过监控面板查看变量值快速验证逻辑 - 若仍有疑问,可添加
Append Variable活动收集所有循环内的Copy RunId,最后通过输出查看完整列表
内容的提问来源于stack exchange,提问作者David Mckay
相关产品推荐
相关产品推荐

