跨节点参数功能,允许任务间传递消息。输出节点(如SQL、Shell、Python任务)能输出参数,输入节点可以接收并使用这些参数,解决了通过公共存储中转消息的复杂性和低效问题。本文将为您介绍如何为跨节点输出参数赋值。
背景介绍
Dataphin的节点(任务)依赖关系构成了一个有向无环图(DAG)。在过去,DAG的节点之间只能传递状态信息,即上游节点的运行状态会影响其下游节点,而系统对节点自身的运行内容并不感知,也无法通过DAG将这些内容向下传递。如果下游节点需要消费上游节点的产出,必须依赖上游节点将产出写入公共存储,随后下游节点再从公共存储中读取,最常用的公共位置为数据表。然而,通过公共存储中转消息存在以下不足:
公共存储的写入和读取操作流程相对复杂,某些类型的节点甚至无法进行操作。例如,逻辑表节点的计算逻辑完全由字段计算逻辑决定,因此无法单独读取公共存储中的消息。
将消息写入公共存储并进行读取的效率较低;若存在多个下游节点需要使用该消息,则每个节点均需独立读取消息。此外,若消息的存储位置或格式发生变更,所有下游节点都需同步调整其读取方式。
中转的消息通常非常短小,通过中转方式传递比较繁重。
为了解决以上问题,Dataphin引入了跨节点参数来在节点(任务)间传递消息。
输出节点:输出参数(向外传递消息)的节点。仅支持SHELL、PYTHON和SQL(包括 MAX_COMPUTE_SQL、HIVE_SQL、ADB_PG_SQL等)类型的计算任务输出参数。
输入节点:接收并使用参数的节点。一个输出节点可以连接多个输入节点,只要是输出节点的直接下游节点,都可以引用输出节点的跨节点参数。
跨节点输出参数赋值说明
在跨节点输出参数中声明跨节点输出参数后, 可在代码中对参数赋值。实际使用可参考跨节点参数最佳实践。
仅支持SHELL、PYTHON和SQL计算任务定义跨节点输出参数。
集成任务、计算任务、普通/层级维度逻辑表、事实逻辑表的输入参数支持跨节点变量参数。
任务类型 | 赋值语句 | 右键菜单快捷方式 |
Shell任务 | 在代码中通过以下命令对跨节点参数赋值:
例如:
重要
| 在编辑器中鼠标右键单击并选择设置跨节点参数。 |
Python任务 | 在代码中通过以下命令对跨节点参数赋值:
例如:
重要
| 在编辑器中鼠标右键单击并选择设置跨节点参数。 |
SQL任务 |
| 在编辑器中鼠标右键单击并选择设置跨节点参数。 说明 ADB_PG_SQL任务不支持右键菜单快捷方式,请手动输入命令。 |