使用DataWorks周期性调度MaxCompute作业时,您也可以灵活使用DataWorks已有的通用节点,例如虚拟节点、分支和归并节点、循环类节点等,与MaxCompute的其他节点联合使用可实现更复杂的业务效果,本文为您概要介绍常用的通用节点和典型应用场景。

实现有循环或遍历逻辑的作业

DataWorks为您提供两种循环类节点:for-each节点、do-while节点。如果您的作业设计循环逻辑,可以考虑使用这两类DataWorks通用节点。
  • for-each节点
    DataWorks的for-each节点主要用于有循环遍历的场景,且需要与赋值节点联合使用,将赋值节点作为for-each节点的上游节点,将赋值节点的输出结果赋值给for-each节点后,一次次循环来遍历赋值节点的输出结果。for-eachfor-each节点的详细介绍与使用指导请参见for-each节点逻辑原理介绍
  • do-while节点
    DataWorks的循环节点(do-while节点),可根据业务需要重新编排循环节点内部业务流程,将需要循环执行的业务逻辑放入循环节点内部,并通过循环节点内部的end节点来定义循环条件,即确认不满足何种条件的情况下退出循环。循环节点可单独使用,也可结合赋值节点来循环遍历赋值节点传递的结果集。循环节点do-while节点的详细介绍与使用指导请参见do-while节点逻辑原理介绍
说明 MaxCompute的ODPS SQL节点不支持直接写循环或遍历逻辑,您可以使用上述通用节点实现对应的作业逻辑,或您也可以使用PyODPS节点,自定义开发循环或遍历逻辑代码。

实现跨节点赋值逻辑的作业

DataWorks为您提供多种实现不同节点间透传参数值的方式,例如:赋值节点、参数节点。同时,如果您需要对整个业务流程中的某个变量做统一赋值的话,也可以使用流程参数。
  • 赋值节点
    当您需要将上游节点任务的结果提供给下游节点使用时,您可使用赋值节点,实现任务结果在节点间传递。参数透传节点的详细介绍与使用指导请参见赋值节点
  • 参数节点
    参数节点本质上是一种虚拟节点,不会运行数据计算任务产生数据,主要用于跨节点传参、参数管理的场景。
    跨节点传参参数管理

    当数据开发的业务流程中,某个下游节点的任务需要获取多个、多级上游节点的输出参数时,您可以使用参数节点,将下游节点需要获取的所有参数统一添加至参数节点中,后续下游节点可直接挂在参数节点之下,即可获取到所有所需参数。

    跨节点传参

    当数据开发的业务流程中,下游节点的任务需要使用某些常量参数、变量参数时,您可以使用参数节点,将下游节点需要使用的参数均添加至参数节点中,需使用参数的下游节点直接挂在参数节点之下,即可获取使用所需参数,便于整个业务流程中对所有使用的参数进行统一管理。

    参数管理
    节点的详细介绍与使用指导请参见参数节点
  • 流程参数

    当整个业务流程需要对同一个变量统一赋值或替换其参数值时,您可以使用流程参数功能。使用指导请参见流程参数

实现作业流程管控

在DataWorks上运行MaxCompute作业时,您可以使用DataWorks的虚拟节点实现业务流程内的节点管控,例如实现复杂依赖场景下的业务管理等应用。

当您的实际业务包含多个业务流程时,为了业务流程与业务流程之间便于管理,建议每个业务流程都使用虚拟节点设置一个空跑的统筹起始节点,使数据流转路径更加清晰。业务管理虚拟节点的详细介绍与使用指导请参见虚拟节点