节点概述
节点是什么
节点定义对数据执行的操作,是数据开发作业的基本组成单元。一个Pipeline作业由一个或多个节点通过连线连接而成,节点之间通过依赖关系决定执行顺序,形成DAG(有向无环图)结构。您可以根据业务模型选择所需的节点,在作业画布中编排节点间的依赖关系,完成数据处理流程的设计。编排作业节点请参见开发Pipeline作业。
节点之间通过依赖关系确定执行顺序:下游节点会等待其所有上游节点执行成功后才会开始执行。因此,合理的依赖关系配置是保证作业正确执行的前提。
节点类型
数据开发模块提供数据集成、计算&分析、资源管理、数据监控等类型的节点,您可以根据业务模型选择所需的节点。各类型节点的用途及典型场景如下:
表1 节点类型说明
| 节点类型 | 节点名称 | 节点说明 |
|---|---|---|
| CDM Job、Data Migration、Rest Client等 | 将数据从源端迁移入湖,如将业务数据库数据同步至数据仓库或数据湖。适用于数据搬迁、数据入湖等场景。 | |
| DLI Spark、DLI SQL、DWS SQL、MRS Spark、MRS Hive SQL、MRS Spark SQL等 | 对数据进行清洗、转换、计算和分析。适用于ETL处理、数据加工、流批处理等场景。 | |
| Create OBS、Delete OBS、OBS Manager等 | 管理作业运行资源。 | |
| Data Quality Monitor、DRS Monitor | 管理作业监控任务。适用于作业质量监控场景。 | |
| SubJob、For Each、SMN、Dummy等 | 适用于更复杂的作业运行场景。例如:指定一个子作业循环执行。 |
节点间的连接方式
节点间的连接方式支持串行和并行两种:
- 串行连接:按顺序逐个执行节点。节点A执行完成后,再执行节点B。适用于有先后依赖关系、后一个节点依赖前一个节点输出的场景。
- 并行连接:节点A和节点B同时执行。适用于各节点之间互不依赖、可并行处理的场景,可缩短整体作业执行时间。
- 并行执行的节点之间若存在数据依赖(如后一个节点需要使用前一个节点的计算结果),请使用串行连接,否则可能出现数据未就绪导致的执行失败。
- 作业执行时,系统按照节点间的依赖关系自动调度,无需手工控制执行顺序。
节点的参数与表达式
节点的参数支持使用EL表达式,EL表达式可在节点参数、作业参数中以变量形式引用,实现参数化配置,使同一作业在不同场景下复用。
- EL表达式在作业启动时进行求值,将表达式替换为实际值后执行节点。
- 通过参数化配置,可减少重复作业的定义,提升开发效率。
EL表达式的语法及使用示例,详见表达式概述。
节点与数据血缘
数据血缘用于描述数据从产生、加工融合、流转流通到最终消亡的全链路关系。在DataArts Studio中,节点是数据血缘产生的基础载体,二者关系如下:
- 血缘图组成要素:数据血缘关系图由数据表对象和作业节点对象组成,节点通过箭头与数据表相连,直观表示“某表数据由某节点加工生成”的关系。
- 血缘解析粒度:数据血缘以作业中的节点为粒度解析。作业内每个节点的输入、输出表会分别建立血缘关系,因此在设计作业时建议按业务加工粒度拆分节点,便于血缘关系的精准呈现。
- 自动血缘解析:系统解析数据开发作业中的数据处理和数据迁移类型节点后自动产生血缘,无需手动配置。支持自动血缘解析的节点类型及场景,请参见自动血缘解析。
- 手动配置血缘:在数据开发作业节点中,自定义血缘关系的输入表和输出表,适用于自动血缘解析不支持的场景。支持手动配置血缘的节点类型请参见手动配置血缘。
- 血缘查看前提:需先在数据目录组件完成元数据采集任务,当作业满足自动血缘解析要求或已手动配置血缘,且作业调度成功后,即可在数据目录模块可视化查看数据血缘关系。
通过数据血缘可快速追踪数据来源与加工链路,定位数据处理过程中的问题节点,同时支撑数据审计与合规要求。