简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率!通过往期的介绍,您已经了解到在DataWorks上进行任务运行的最关键的几个知识点,其中上期参数透传中为您介绍了可以将上游节点参数透传到下游节点的特殊节点——赋值节点,结合赋值节点和其他节点,可实现循环或遍历读取处理数据的任务。本期为您介绍如何在DataWorks上实现循环与遍历任务。
往期回顾:
- DataWorks 功能实践速览01期——数据同步解决方案:为您介绍不同场景下可选的数据同步方案。
- DataWorks 功能实践速览02期——独享数据集成资源组:为您介绍进行数据同步时,可使用的资源组与网络连通方案、注意事项。
- DataWorks 功能实践速览03期——生产开发环境隔离:为您介绍DataWorks通过标准模式提供开发环境与生产环境隔离及不同环境的权限要求。
- DataWorks功能实践速览 04期——参数透传:为您介绍如何在DataWorks上实现参数透传,即把上游任务的参数透传到下游任务。
通过往期的介绍,您已经了解到在DataWorks上进行任务运行的最关键的几个知识点,其中上期参数透传中为您介绍了可以将上游节点参数透传到下游节点的特殊节点——赋值节点,结合赋值节点和其他节点,可实现循环或遍历读取处理数据的任务。本期为您介绍如何在DataWorks上实现循环与遍历任务。
功能推荐:循环节点与遍历节点
在进行数据开发任务编译的过程中,有时我们可能碰到需要进行循环或遍历的任务场景,DataWorks为您提供两类特殊节点以满足此类场景的使用需求。
对比项 |
循环节点(do-while节点) |
遍历节点(for-each节点) |
应用场景 |
根据对象集合的数量逐条读取并判断是否满足循环条件,如果满足则继续循环,如果不满足则退出循环,循环次数根据每次循环的判断结果而定,不固定。 |
根据对象集合的数量逐条读取(遍历),循环次数已知。 |
节点应用 |
您可以重新编排do-while节点内部的业务流程,将需要循环执行的逻辑写在节点内,再编辑end循环判断节点来控制是否退出循环。同时您也可以结合赋值节点来循环遍历赋值节点传递的结果集。 |
您可以通过for-each节点来循环遍历赋值节点传递的结果集。同时您也可以重新编排for-each节点内部的业务流程。 |
通常循环节点(do-while节点)与遍历节点(for-each节点)会与赋值节点联合使用,将上游节点的输出通过赋值节点传递给下游节点,在下游节点中对上游节点的输出结果进行循环或遍历。
同时,循环节点(do-while节点)与遍历节点(for-each节点)与其他简单节点不一致的地方在于,这类逻辑节点自身包含内部节点。以do-while节点为例,一个do-while节点创建完成后,通常会为您自动创建好3个内部节点,同时您也可以将内部节点重新进行内部业务流程和节点内容的编译。
Part1:循环节点(do-while节点)
1.1 节点组成
DataWorks的do-while节点是包含内部节点的一种特殊节点,您在创建完成do-while节点时,同时也自动创建完成了三个内部节点:start节点(循环开始节点)、sql节点(循环任务节点)、end节点(循环结束判断节点),通过内部节点组织成内部节点流程,实现任务的循环运行。
如上图所示:
- start节点是内部节点的开始节点,不承载具体的任务代码。
- sql节点DataWorks默认为您创建好了一个SQL类型的内部任务运行节点,您也可以删除默认的sql节点后,自定义内部循环任务的运行节点。
- 您的循环任务是SQL类型的任务,则可以直接双击默认的sql节点,进入节点的代码开发页面开发循环任务代码。
- 您的循环任务比较复杂,您可以在内部节点流程中新建其他任务节点,并根据实际情况重新构建节点的运行流程。通常循环任务的业务流程会与赋值节点、分支节点、归并节点联合使用,典型应用场景说明请参见