关于 Databricks 作业的 {{run_id}} 和 {{parent_run_id}} 变量的混淆(Azure)

问题描述 投票:0回答:2

在 Azure 上的 Databricks 作业中,您可以使用

{{run_id}}
{{parent_run_id}}
变量进行特定运行:https://docs.databricks.com/workflows/jobs/jobs.html

对于只有两个或更多任务的 Databricks 作业,那么

{{run_id}}
似乎对应于
task_run_id
{{parent_run_id}}
似乎对应于
job_run_id
.

对于只有一个任务的Databricks作业,那么

{{parent_run_id}}
似乎对应了
task_run_id
,但是
{run_id}}
对应的是什么呢?是那个
job_run_id
吗?

databricks azure-databricks
2个回答
1
投票

{{run_id}} 变量是 Databricks 作业运行的唯一标识符。此标识符由 Databricks 生成,用于跟踪作业运行的进度。

{{parent_run_id}} 变量是 Databricks 作业的父运行的唯一标识符。此标识符由 Databricks 生成,用于跟踪父运行与其子运行之间的关系。

Task 1和Task 2。当这个job运行时,会为job run生成一个新的run ID,同时为Task 1和Task 2的task run生成两个run ID。本例中的{{parent_run_id}}变量将引用作业运行的运行 ID,而 {{run_id}} 变量将引用当前任务运行的运行 ID。因此,在任务 1 中,{{run_id}} 将引用任务 1 的运行 ID,而 {{parent_run_id}} 将引用作业运行的运行 ID。同样,在任务 2 中,{{run_id}} 将引用任务 B 的运行 ID,而 {{parent_run_id}} 将引用作业运行的运行 ID。

综上所述,{{run_id}}变量总是指当前任务或笔记本的运行ID,而{{parent_run_id}}变量总是指触发当前运行的父进程的运行ID。

您可以使用这些变量来监视 Databricks 作业的进度并跟踪父子运行之间的关系。


1
投票

我从 Databricks 收到了以下答复:

是的,您的理解是正确的,在 Databricks 作业中 对于多个任务,

{{run_id}}
变量对应于
task_run_id
{{parent_run_id}}
变量对应于
job_run_id
.

对于只有一个任务的 Databricks 作业,

{{parent_run_id}}
变量仍然对应于
task_run_id
,它是该任务的特定运行的唯一标识符。在这种情况下,
{{run_id}}
变量将对应于
job_run_id
,它是包含该单个任务的整个作业运行的唯一标识符。

所以,总而言之:

  • 对于具有多个任务的 Databricks 作业:
    {{run_id}} = task_run_id
    {{parent_run_id}} = job_run_id
  • 对于只有一项任务的 Databricks 作业:
    {{run_id}} = job_run_id
    {{parent_run_id}} = task_run_id

链接:https://community.databricks.com/s/question/0D58Y00009vaoZiSAI

© www.soinside.com 2019 - 2024. All rights reserved.