DataWorks百问百答32:如何使用分支节点?

分支节点是DataStudio中提供的逻辑控制系列节点中的一类,分支节点可以对上游赋值节点的输入参数进行判断,以此定义分支逻辑和不同逻辑条件时下游分支走向。

创建分支节点

1、在业务流程,通用节点中右键新建 分支节点
DataWorks百问百答32:如何使用分支节点?


2、在新建节点对话框中,输入节点名称,并选择目标文件夹。
说明: 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。

DataWorks百问百答32:如何使用分支节点?

配置分支节点

1、设置上游依赖关系

进入节点后,到右侧调度配置界面,设置上游赋值节点依赖关系

DataWorks百问百答32:如何使用分支节点?

2、定义分支逻辑

 在分支逻辑定义页面,单击添加分支,在弹出的配置分支定义对话框中,配置各项参数,参数解释如下:<br />

DataWorks百问百答32:如何使用分支节点?


参数 描述
分支条件 分支条件的说明如下:
- 分支条件仅支持按照Python比较运算符定义逻辑判断条件。
- 如果运行态表达式取值为true,表示满足对应的分支条件。
- 如果运行态表达式解析报错,会将整个分支节点运行状态置为失败。
- 分支条件中支持使用全局变量和节点上下文定义的参数。例如,${input}可以是定义在分支节点的节点输入参数。
关联到节点输出 关联到节点输出的说明如下:
- 节点输出供分支节点下游节点挂载依赖关系使用。
- 满足分支条件时,对应的关联的节点输出上挂载的下游节点被选中运行(同时需要参考该节点依赖的其它上游节点的状态)。
- 不满足分支条件时,对应的关联的节点输出上挂载的下游节点不会被选中执行,该下游节点会被置成因为分支条件不满足而未运行的状态。
分支描述 对分支的定义进行简要说明。例如,定义${input}==1${input}>2两个分支。


说明:分支条件支持的Python比较运算符
以下假设变量a为10,变量b为20。
注:字符型的判断,加上单引号即可,如:'${xx}' == 'xxx')

运算符 描述 示例
== 等于:比较对象是否相等。 (a==b)返回false。
!= 不等于:比较两个对象是否不相等。 (a!=b)返回true。
<> 不等于:比较两个对象是否不相等。 (a<>b)返回true。这个运算符类似!=。
> 大于:返回x是否大于y。 (a>b)返回false。
< 小于:返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a
>= 大于等于:返回x是否大于等于y。 (a>=b)返回false。
<= 小于等于:返回x是否小于等于y。 (a<=b)返回true。

3、配置节点上下文参数

本节点输入参数,取值来源为上游赋值节点输出参数:outputs

DataWorks百问百答32:如何使用分支节点?


本节点输出参数,是分支节点中系统默认添加的,取值由实际运行时决定

DataWorks百问百答32:如何使用分支节点?

4、链路分析

DataWorks百问百答32:如何使用分支节点?

  • 当赋值节点输出为 a 时,走分支1下游所挂节点
  • 当赋值节点输出为 b 时,走分支2下游所挂节点

分支下游节点依赖设置

创建两个普通的sql节点:分支a、分支b,写好sql逻辑后,分别在上游父节点依赖中,挂上关联的不同分支节点输出:

DataWorks百问百答32:如何使用分支节点?

DataWorks百问百答32:如何使用分支节点?

发布至运维调度

所有链路依赖关系设置完成后,将赋值节点、分支节点、分支下游sql节点都提交发布至运维中心,周期任务中展现依赖关系如下:
DataWorks百问百答32:如何使用分支节点?

1、赋值节点日志输出情况:

DataWorks百问百答32:如何使用分支节点?


上游赋值节点输出为:a

2、分支节点日志情况:

DataWorks百问百答32:如何使用分支节点?

分支1判断为true,下游sql节点走分支a的链路

3、分支下游sql节点日志情况:

DataWorks百问百答32:如何使用分支节点?

  • “分支a”实例状态为:实例运行成功,可在运行日志中看下详细运行日志状态

DataWorks百问百答32:如何使用分支节点?

  • “分支b”实例状态为:分支未被选中,运行日志中状态表现为该分支被跳过运行:

It's set condition-skip by task(706606933700-分支_xhb)

DataWorks百问百答历史记录 请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

上一篇:DataWorks百问百答26:特殊fieldDelimiter怎么设置?


下一篇:36氪携手阿里云,共建中国企业服务新生态