diff --git a/docs/docs/en/guide/parameter/priority.md b/docs/docs/en/guide/parameter/priority.md index e3354e206b54..64bd2a49e0fa 100644 --- a/docs/docs/en/guide/parameter/priority.md +++ b/docs/docs/en/guide/parameter/priority.md @@ -1,6 +1,6 @@ # Parameter Priority -DolphinScheduler has three parameter types: +DolphinScheduler has six parameter types: * [Built-in Parameter](built-in.md): parameters built into the system * [Project-level Parameter](project-parameter.md): parameters defined at the project management page. @@ -22,24 +22,54 @@ In the case of upstream tasks can pass parameters to the downstream, there may b The following are examples showing task parameters priority problems: -1: Use shell nodes to explain the first case. +1: Use Shell nodes to explain the first case. ![priority-parameter01](../../../../img/new_ui/dev/parameter/priority_parameter01.png) -The [useParam] node can use the parameters which are set in the [createParam] node. The [useParam] node cannot obtain the parameters from the [noUseParam] node due to there is no dependency between them. Other task node types have the same usage rules with the Shell example here. +The [useParam] node can use the parameters which are set in the [createParam] node. The [useParam] node cannot obtain the parameters from the [noCreateParam] node due to there is no dependency between them. Other task node types have the same usage rules with the Shell example here. ![priority-parameter02](../../../../img/new_ui/dev/parameter/priority_parameter02.png) -The [useParam] node can use parameters directly. In addition, the [createParam] node creates two parameters named "key" and "key1", and "key" has the same name as the one passed by the upstream node and assign value "12". However, due to the priority rules, the value assignment will assign "1" and the value from local parameter inside this node is discarded. - -2: Use SQL nodes to explain another case. +The [createParam] node creates an OUT parameter 'key1' with a value of '1'. ![priority-parameter03](../../../../img/new_ui/dev/parameter/priority_parameter03.png) -The following shows the definition of the [use_param] node: +The [useParam] node creates two parameters named 'key1' and 'key2'. The parameter 'key1' shares the same name as the one passed by the upstream node and is assigned a value of '11'. However, due to priority rules, this local value ('11') is discarded, and the final assigned value becomes '1', which is passed by the upstream node. + +2: Use Shell and SQL nodes to explain complex combined cases. ![priority-parameter04](../../../../img/new_ui/dev/parameter/priority_parameter04.png) -"status" is own parameter of the node set by the current node. However, the user also sets the "status" parameter (global parameter) when saving the process definition and assign its value to -1. Then the value of status will be 2, with higher priority when the SQL executes. The global parameter value is discarded. +The following shows the definition of the [createParam1] node: + +![priority-parameter05](../../../../img/new_ui/dev/parameter/priority_parameter05.png) + +The [createParam1] node creates an OUT parameter named 'id' and assigns it the value '11'. + +The following shows the definition of the [createParam2] node: + +![priority-parameter06](../../../../img/new_ui/dev/parameter/priority_parameter06.png) + +The [createParam2] node creates an OUT parameter named 'id' and assigns it the value '22'. A "sleep 20" logic has been added to this node to ensure it completes after the [createParam1] node. + +![priority-parameter07](../../../../img/new_ui/dev/parameter/priority_parameter07.png) + +'id' is a project-level parameter with an assigned value of '1'. + +The following shows the definition of the [useParam] node: + +![priority-parameter08](../../../../img/new_ui/dev/parameter/priority_parameter08.png) + +'id' is a local parameter of this node, assigned a value of '3' by the current node. + +![priority-parameter09](../../../../img/new_ui/dev/parameter/priority_parameter09.png) + +However, the user also sets the 'id' parameter (global parameter) when saving the process definition, assigning it a value of 2. + +![priority-parameter10](../../../../img/new_ui/dev/parameter/priority_parameter10.png) + +"id" can be configured on the task launch page (startup parameter) and assign its value to 4. + +![priority-parameter11](../../../../img/new_ui/dev/parameter/priority_parameter11.png) -The "ID" here is the parameter set by the upstream node. The user sets the parameters of the same parameter name "ID" for the [useParam1] node and [useParam2] node. And the [use_param] node uses the value of [useParam1] which is finished first. +The execution results meet expectations, with the Parameter Context taking the highest priority. The user configured a parameter named 'id' for both the [createParam1] and [createParam2] nodes. Consequently, the [useParam] node consumes the value from [createParam2], which completed later. \ No newline at end of file diff --git a/docs/docs/zh/guide/parameter/priority.md b/docs/docs/zh/guide/parameter/priority.md index 0c8d0dc8ce88..bb16307f868c 100644 --- a/docs/docs/zh/guide/parameter/priority.md +++ b/docs/docs/zh/guide/parameter/priority.md @@ -1,6 +1,6 @@ # 参数优先级 -DolphinScheduler 中所涉及的参数值的定义可能来自三种类型: +DolphinScheduler 中所涉及的参数值可能来自以下六种类型: * [内置参数](built-in.md):在系统中内置的参数 * [项目级别参数](project-parameter.md):在项目管理中定义的项目级别参数 @@ -9,7 +9,7 @@ DolphinScheduler 中所涉及的参数值的定义可能来自三种类型: * [上游任务传递的参数](context.md):上游任务传递过来的参数 * [本地参数](local.md):节点的自有变量,用户在“自定义参数”定义的变量,并且用户可以在工作流定义时定义该部分变量的值 -因为参数的值存在多个来源,当参数名相同时,就需要会存在参数优先级的问题。DolphinScheduler 参数的优先级从高到低为:`上游任务传递的参数 > 启动参数 > 本地参数 > 全局参数 > 项目级别参数 > 内置参数` +由于参数值存在多个来源,当参数名称相同时,就会存在参数优先级的问题。DolphinScheduler 参数的优先级从高到低为:`上游任务传递的参数 > 启动参数 > 本地参数 > 全局参数 > 项目级别参数 > 内置参数` 在上游任务传递的参数中,由于上游可能存在多个任务向下游传递参数,当上游传递的参数名称相同时: @@ -18,26 +18,56 @@ DolphinScheduler 中所涉及的参数值的定义可能来自三种类型: ## 例子 -下面例子向你展示如何使用任务参数传递的优先级问题 +下面的示例展示任务参数优先级的使用: -1:先以 shell 节点解释第一种情况 +1:先以 Shell 节点解释第一种情况 ![priority-parameter01](../../../../img/new_ui/dev/parameter/priority_parameter01.png) -节点 【useParam】可以使用到节点【createParam】中设置的变量。而节点 【useParam】与节点【noUseParam】中并没有依赖关系,所以并不会获取到节点【noUseParam】的变量。上图中只是以 shell 节点作为例子,其他类型节点具有相同的使用规则。 +节点 【useParam】可以使用到节点【createParam】中设置的变量。而节点 【useParam】与节点【noCreateParam】中并没有依赖关系,所以并不会获取到节点【noCreateParam】的变量。上图中只是以 shell 节点作为例子,其他类型节点具有相同的使用规则。 ![priority-parameter02](../../../../img/new_ui/dev/parameter/priority_parameter02.png) -其中节点【useParam】在使用变量时直接使用即可。另外节点【createParam】设置了 "key" 和 "key1" 两个变量,这里用户定义了一个与上游节点传递的变量名相同的变量 key,并且赋值为 "12",但是由于我们设置的优先级的关系,这里的值 "12" 会被抛弃,最终上游节点设置的变量值会被使用。 - -2:我们再以 sql 节点来解释另外一种情况 +节点【createParam】创建了一个名为 'key1' 的输出(OUT)参数,并将其赋值为 '1'。 ![priority-parameter03](../../../../img/new_ui/dev/parameter/priority_parameter03.png) -节点【use_param】的定义如下: +节点【useParam】创建了两个分别名为 'key1' 和 'key2' 的参数。其中 'key1' 与上游节点传递的参数同名,并被赋值为 '11'。然而,根据优先级规则,该节点内部本地参数的值 '11' 会被丢弃,最终生效的赋值将是上游节点传递过来的值 '1'。 + +2:我们再以 Shell 和 SQL 节点来解释复杂的组合案例 ![priority-parameter04](../../../../img/new_ui/dev/parameter/priority_parameter04.png) -"status" 是当前节点设置的节点的自有变量。但是用户在保存工作流时也同样设置了 "status" 变量(全局参数),并且赋值为 -1。那在该 SQL 执行时,status 的值为优先级更高的 2。抛弃了全局变量中的值。 +以下是节点【createParam1】的定义: + +![priority-parameter05](../../../../img/new_ui/dev/parameter/priority_parameter05.png) + +节点【createParam1】创建了一个名为 'id' 的输出(OUT)参数,并将其赋值为 '11'。 + +以下是节点【createParam2】的定义: + +![priority-parameter06](../../../../img/new_ui/dev/parameter/priority_parameter06.png) + +节点【createParam2】创建了一个名为 'id' 的输出(OUT)参数,并将其赋值为 '22'。该节点中加入了 "sleep 20" 的逻辑,以确保它在节点【createParam1】之后执行完成。 + +![priority-parameter07](../../../../img/new_ui/dev/parameter/priority_parameter07.png) + +'id' 是一个项目级参数,其被赋值为 '1'。 + +以下是节点【useParam】的定义: + +![priority-parameter08](../../../../img/new_ui/dev/parameter/priority_parameter08.png) + +'id' 也是该节点自身的参数,由当前节点赋值为 '3'(即本地参数)。 + +![priority-parameter09](../../../../img/new_ui/dev/parameter/priority_parameter09.png) + +然而,用户在保存流程定义时也设置了 'id' 参数(全局参数),并将其赋值为 2。 + +![priority-parameter10](../../../../img/new_ui/dev/parameter/priority_parameter10.png) + +'id' 可以在任务启动页面上进行配置(启动参数),并将其赋值为 4。 + +![priority-parameter11](../../../../img/new_ui/dev/parameter/priority_parameter11.png) -这里的 "id" 是上游节点设置的变量,用户在节点【useParam1】、节点【useParam2】中设置了相同参数名 "id" 的参数。而节点【use_param】中使用了最先结束的【useParam1】的值。 +执行结果符合预期,其中参数上下文(Parameter Context)具有最高优先级。用户为节点【createParam1】和节点【createParam2】设置了同名参数 'id',而节点【useParam】使用了后执行完成的节点【createParam2】的值 '22'。 diff --git a/docs/img/new_ui/dev/parameter/priority_parameter01.png b/docs/img/new_ui/dev/parameter/priority_parameter01.png index 1789379a2a17..54bb7a368303 100644 Binary files a/docs/img/new_ui/dev/parameter/priority_parameter01.png and b/docs/img/new_ui/dev/parameter/priority_parameter01.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter02.png b/docs/img/new_ui/dev/parameter/priority_parameter02.png index edcb13cbd78d..e498cb2e0aa7 100644 Binary files a/docs/img/new_ui/dev/parameter/priority_parameter02.png and b/docs/img/new_ui/dev/parameter/priority_parameter02.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter03.png b/docs/img/new_ui/dev/parameter/priority_parameter03.png index 000733d6e822..e6e92ce1028c 100644 Binary files a/docs/img/new_ui/dev/parameter/priority_parameter03.png and b/docs/img/new_ui/dev/parameter/priority_parameter03.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter04.png b/docs/img/new_ui/dev/parameter/priority_parameter04.png index ec5ae4f4981e..d652dd904b34 100644 Binary files a/docs/img/new_ui/dev/parameter/priority_parameter04.png and b/docs/img/new_ui/dev/parameter/priority_parameter04.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter05.png b/docs/img/new_ui/dev/parameter/priority_parameter05.png new file mode 100644 index 000000000000..e5f2fbdc519c Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter05.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter06.png b/docs/img/new_ui/dev/parameter/priority_parameter06.png new file mode 100644 index 000000000000..6cf4875f04b0 Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter06.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter07.png b/docs/img/new_ui/dev/parameter/priority_parameter07.png new file mode 100644 index 000000000000..bb3c95bc257f Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter07.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter08.png b/docs/img/new_ui/dev/parameter/priority_parameter08.png new file mode 100644 index 000000000000..a5722cfaccde Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter08.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter09.png b/docs/img/new_ui/dev/parameter/priority_parameter09.png new file mode 100644 index 000000000000..60db40f79835 Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter09.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter10.png b/docs/img/new_ui/dev/parameter/priority_parameter10.png new file mode 100644 index 000000000000..5e3703196259 Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter10.png differ diff --git a/docs/img/new_ui/dev/parameter/priority_parameter11.png b/docs/img/new_ui/dev/parameter/priority_parameter11.png new file mode 100644 index 000000000000..ccf1da816b81 Binary files /dev/null and b/docs/img/new_ui/dev/parameter/priority_parameter11.png differ