节点上下文用于支持参数在上游节点和下游节点之间传递,本文为您介绍如何定义、使用节点上下文中的输入参数和输出参数。

背景信息

在上游节点定义输出参数及其取值后,在下游节点定义输入参数(取值引用上游节点的输出参数),即可在下游节点中使用此参数获取上游节点传递过来的取值。

注意事项

节点上下文参数仅用于上游节点的节点上下文输出参数作为下游节点的节点上下文输入参数,无法直接将上游节点的查询结果传递到下游,如果您需要将上游节点的查询结果传递到下游节点,可以使用赋值节点,详情可参见文档:配置赋值节点。部分节点支持赋值参数的功能,赋值参数使用与赋值节点行为大体一致,您可以参考赋值节点使用文档来进行赋值参数的配置,关于赋值参数的配置可参考下文:赋值参数

配置节点上下文

  1. 登录DataWorks控制台
  2. 在左侧导航栏,单击工作空间列表
  3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  4. 数据开发面板,双击打开相应节点的编辑页面。
  5. 单击右侧的调度配置,在节点上下文区域配置本节点输入参数本节点输出参数
    节点上下文

输出参数

您可以在节点上下文中定义本节点输出参数,输出参数的取值分为常量变量两种类型。

完成输出参数的定义并提交当前节点后,即可在下游节点中引用,作为下游节点的输入参数的取值。
说明 不支持在当前节点编写代码的方式,对定义的输出参数进行赋值。
输出参数
字段 含义 描述
编号 编号为系统控制,自动增加。
参数名 定义的输出参数名称。
类型 参数类型。 包括常量变量
取值 输出参数的取值。 取值类型包括常量和变量:
  • 常量为固定字符串。
  • 变量包括系统支持的全局变量、调度内置参数、自定义参数${…}和自定义参数$[…]
描述 参数的简要描述。
来源 当前参数的来源。 包括系统默认添加自动解析手动添加
操作 提供编辑删除两种操作。 当存在下游节点依赖时,不支持编辑和删除。在下游节点添加对上游节点引用之前,请谨慎检查,确保上游输出定义正确。

赋值参数

如果您需要将一个任务的查询结果作为参数传递给下游任务进行引用,请在上游节点(目前支持的节点类型)的编辑页面,单击右侧的调度配置。在该节点的节点上下文 > 本节点输出参数区域,单击添加赋值参数,一键添加输出的赋值参数。目前支持的节点包括EMR Hive、EMR Spark SQL、ODPS Script、Hologres SQL、AnalyticDB for PostgreSQL和MySql节点等。
说明 您需要购买DataWorks标准版及以上版本,才可以使用添加赋值参数功能。
您单击添加赋值参数后,赋值参数会传递上游节点生产的查询结果。如果产生结果为空,不会阻塞本节点运行,但下游引用的节点可能会失败。添加赋值参数

下游节点需要在输入参数中添加上游节点的赋值参数,在代码中通过二维数组的方式引用。其使用方式和赋值语言为ODPS SQL的赋值节点一致,详情请参见配置赋值节点

输入参数

节点的输入参数用于定义对其依赖的上游节点的输出的引用,并可以在节点内部使用,使用方式与其它参数一致。

输入参数的定义和使用如下:
  • 定义输入参数
    1. 调度依赖中添加依赖的上游节点。添加依赖
    2. 节点上下文中,添加输入参数定义,取值选择引用上游节点的输出参数。本节点输入
      字段 含义 说明
      编号 编号为系统控制,自动增加。
      参数名 定义的输入参数名称。
      取值来源 参数的取值来源,引用上游节点取值。 取值是上游节点输出参数的具体取值。
      描述 参数的简要描述。
      父节点ID 父节点ID。 自动从上游节点解析得到。
      来源 当前参数的来源。 包括系统默认添加自动解析手动添加
      操作 提供编辑删除两种操作。
  • 使用输入参数
    在节点中使用定义的输入参数的方法和其它系统变量一致,引用方式为${输入参数名}。下图为在Shell节点中进行引用。引用

系统支持的全局变量

  • 系统变量
    系统变量 说明
    ${projectId} 项目ID。
    ${projectName} MaxCompute项目名。
    ${nodeId} 节点ID。
    ${gmtdate} 实例定时时间所在天的00:00:00,格式为yyyy-MM-dd 00:00:00
    ${taskId} 任务实例ID。
    ${seq} 任务实例序号,代表该实例在当天同节点实例中的序号。
    ${cyctime} 实例定时时间。
    ${status} 实例的状态:成功(SUCCESS)、失败(FAILURE)。
    ${bizdate} 业务日期。
    ${finishTime} 实例结束时间。
    ${taskType} 实例运行类型:正常(NORMAL)、手动(MANUAL)、暂停(PAUSE)、空跑(SKIP)、未选择(UNCHOOSE)、周月空跑(SKIP_CYCLE)。
    ${nodeName} 节点名称。
  • 其它参数设置请参见基础属性:调度参数