分支节点是DataStudio中提供的逻辑控制系列节点中的一类。分支节点可以定义分支逻辑和不同逻辑条件时下游分支走向。

前提条件

  • 您需要购买DataWorks标准版及以上版本,才可以使用分支节点功能。
  • 通常分支节点需要配合赋值节点使用,详情请参见配置赋值节点

创建分支节点

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 鼠标悬停至新建图标,单击通用 > 分支节点
    您也可以打开相应的业务流程,右键单击通用,选择新建 > 分支节点
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹
    说明 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。
  4. 单击提交
  5. 定义分支逻辑。
    1. 分支逻辑定义页面,单击添加分支
    2. 配置分支定义对话框中,配置各项参数。
      配置分支定义
      参数 描述
      分支条件 分支条件的说明如下:
      • 分支条件仅支持按照Python比较运算符定义逻辑判断条件。
      • 如果运行态表达式取值为true,表示满足对应的分支条件。
      • 如果运行态表达式解析报错,会将整个分支节点运行状态置为失败。
      • 分支条件中支持使用全局变量和节点上下文定义的参数。例如,${input}可以是定义在分支节点的节点输入参数。
      关联到节点输出 关联到节点输出的说明如下:
      • 节点输出供分支节点下游节点挂载依赖关系使用。
      • 满足分支条件时,对应的关联的节点输出上挂载的下游节点被选中运行(同时需要参考该节点依赖的其它上游节点的状态)。
      • 不满足分支条件时,对应的关联的节点输出上挂载的下游节点不会被选中执行,该下游节点会被置成因为分支条件不满足而未运行的状态。
      分支描述 对分支的定义进行简要说明。例如,定义${input}==1${input}>2两个分支。

      关联到节点输出的示例如下。

      例如,分支节点下游关联两个节点,节点名称分别为qqqqwwww。当分支条件为1时,以qqqq节点逻辑运行。当分支条件为2时,以wwww节点逻辑运行。则配置分支节点时,关联到节点输出可以随便配置。例如,分支1关联节点输出为1234,分支2关联节点输出为2324,则均会作为本分支节点的输出名称。下游qqqq节点需要挂载分支节点的输出名称1234,wwww节点需要挂载分支节点的输出名称2324。

    3. 单击确认
      添加分支后,您可以进行编辑删除操作:
      • 单击编辑,可以修改设置的分支,并且相关的依赖关系也会改动。
      • 单击删除,可以删除设置的分支,并且相关的依赖关系也会改动。
  6. 单击节点编辑区域右侧的调度配置,配置节点的调度属性。
    定义好分支条件后,会在调度配置 > 调度依赖区域的本节点的输出中,自动添加输出名称。下游节点可以通过输出名称进行依赖挂载。
    说明
    • 由于空跑属性会向下传递,不建议放置自依赖的任务在分支链路上。
    • 如果连线建立上下文的依赖,在调度配置中没有输出记录,请手动输入。
  7. 提交节点。
    注意 您需要设置节点的重跑属性依赖的上游节点,才可以提交节点。
    1. 单击工具栏中的提交图标。
    2. 提交新版本对话框中,输入备注
    3. 单击确认
    如果您使用的是标准模式的工作空间,提交成功后,请单击右上方的发布。具体操作请参见发布任务
  8. 测试节点,详情请参见查看周期任务

输出示例:下游节点挂载分支节点

在下游节点中,添加分支节点做为上游节点后,通过选择对应的分支节点输出来定义不同条件下的分支走向。例如在下图所示的业务流程中,分支1分支2均为分支节点的两个下游节点。下游挂载
分支1:依赖于autotest.fenzhi121902_1输出。分支1
分支2:依赖于autotest.fenzhi121902_2输出。分支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。