分支节点是DataStudio中提供的逻辑控制系列节点中的一类。分支节点可以定义分支逻辑和不同逻辑条件时下游分支走向。
注意事项
您需购买DataWorks标准版及以上版本,才可以使用分支节点。DataWorks版本介绍及购买,详情请参见DataWorks各版本详解。
分支节点最多可挂载50个分支。
通常分支节点需要配合赋值节点使用,详情请参见赋值节点。
创建分支节点
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
鼠标悬停至图标,单击 。
您也可以打开相应的业务流程,右键单击通用,选择
。在新建节点对话框,输入节点名称,并选择路径。
单击确认。
定义分支逻辑。
在分支逻辑定义页面,单击添加分支。
在配置分支定义对话框中,配置各项参数。
参数
描述
分支条件
分支条件的说明如下:
分支条件仅支持按照Python比较运算符定义逻辑判断条件。
如果运行态表达式取值为true,表示满足对应的分支条件。
如果运行态表达式解析报错,会将整个分支节点运行状态置为失败。
分支条件中支持使用全局变量和节点上下文定义的参数。例如,${input}可以是定义在分支节点的节点输入参数。
关联到节点输出
关联到节点输出的说明如下:
节点输出供分支节点下游节点挂载依赖关系使用。
满足分支条件时,对应的关联的节点输出上挂载的下游节点被选中运行(同时需要参考该节点依赖的其它上游节点的状态)。
不满足分支条件时,对应的关联的节点输出上挂载的下游节点不会被选中执行,该下游节点会被置成
因为分支条件不满足而未运行
的状态。
分支描述
对分支的定义进行简要说明。例如,定义${input}==1和${input}>2两个分支。
关联到节点输出的示例如下。
例如,分支节点下游关联两个节点,节点名称分别为qqqq和wwww。当分支条件为1时,以qqqq节点逻辑运行。当分支条件为2时,以wwww节点逻辑运行。则配置分支节点时,关联到节点输出可以随便配置。例如,分支1关联节点输出为1234,分支2关联节点输出为2324,则均会作为本分支节点的输出名称。下游qqqq节点需要挂载分支节点的输出名称1234,wwww节点需要挂载分支节点的输出名称2324。
单击确定。
添加分支后,您可以进行编辑和删除操作:
单击编辑,可以修改设置的分支,并且相关的依赖关系也会改动。
单击删除,可以删除设置的分支,并且相关的依赖关系也会改动。
单击节点编辑区域右侧的调度配置,配置节点的调度属性。
定义好分支条件后,会在
区域的本节点输出名称中,自动添加输出名称。下游节点可以通过输出名称进行依赖挂载。说明由于空跑属性会向下传递,不建议放置自依赖的任务在分支链路上。是否沿沿空跑属性,详情请参见是否沿用上游的空跑属性。
如果连线建立上下文的依赖,在调度配置中没有输出记录,请手动输入。
提交并发布节点任务。
单击工具栏中的图标,保存节点。
单击工具栏中的图标,提交节点任务。
在提交对话框中,输入变更描述。
单击确认。
如果您使用的是标准模式的工作空间,任务提交成功后,需要将任务发布至生产环境进行发布。请单击顶部菜单栏左侧的任务发布。具体操作请参见发布任务。
查看周期调度任务。
单击编辑界面右上角的运维,进入生产环境运维中心。
查看运行的周期调度任务,详情请参见查看并管理周期任务。
如果您需要查看更多周期调度任务详情,可单击顶部菜单栏的运维中心,详情请参见运维中心概述。
输出示例:下游节点挂载分支节点
在下游节点中,添加分支节点作为上游节点后,通过选择对应的分支节点输出来定义不同条件下的分支走向。例如在下图所示的业务流程中,分支1和分支2均为分支节点的两个下游节点。
分支1:依赖于autotest.fenzhi121902_1输出。
分支2:依赖于autotest.fenzhi121902_2输出。
提交调度至运维中心运行,分支节点满足条件一(依赖于autotest.fenzhi121902_1),则日志的打印结果如下:
您可以在运行日志中查看满足分支条件、被选中运行的分支下游节点的运行情况。
您可以在运行日志中查看到不满足分支条件、未被选中运行的分支下游节点,被置为跳过。
支持的Python比较运算符
以下假设变量a为10,变量b为20。
运算符 | 描述 | 示例 |
== | 等于:比较对象是否相等。 | (a==b)返回false。 |
!= | 不等于:比较两个对象是否不相等。 | (a!=b)返回true。 |
<> | 不等于:比较两个对象是否不相等。 | (a<>b)返回true。这个运算符类似!=。 |
> | 大于:返回x是否大于y。 | (a>b)返回false。 |
< | 小于:返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a<b)返回true。 |
>= | 大于等于:返回x是否大于等于y。 | (a>=b)返回false。 |
<= | 小于等于:返回x是否小于等于y。 | (a<=b)返回true。 |