DataWorks是阿里云上的一款热门产品,能够为用户提供大数据开发调度服务。它支持了Data Lake Analytics(后文简称DLA)之后,DLA用户能够经过它进行定时任务调度,很是方便。本文将主要介绍如何使用DataWorks调度DLA的循环任务。sql
使用DLA对历史数据按天作清洗。数据清洗的SQL是固定的,只是每次执行的时候须要传入不一样的日期。数组
对于这个场景,咱们须要:运维
登陆DataWorks的控制台,并建立一个业务流程或使用原有的业务流程。oop
在新建的业务流程下,建立一个赋值节点和一个循环节点。测试
打开节点“日期集合”的编辑页面。这里咱们选择SHELL语言,将要执行的日期值写在一个数组里。大数据
打开节点“日期集合”的调度配置页面。
在这里须要给赋值节点设置一个上游节点,这里能够设置为当前工做空间的root。好比个人工做空间名字叫jinluo_poc,则该节点为jinluo_poc_root。阿里云
双击循环节点进入编辑页面。能够看到三个节点,分别是start, sql和end。这里咱们须要新建一个DLA的任务节点,并把sql替换为一个DLA的任务节点。spa
在调度配置页面设置依赖关系和节点上下文。上游节点设置为赋值节点“日期集合”,本节点的输入为赋值节点的输出。
.net
选择一个DLA的数据源,并填写SQL。3d
这里面的pure_date的值是从赋值节点读入的。每次读取赋值节点的输出结果数组中的一个值。写法是固定的,以下所示。
h.`pure_date`=${dag.input[${dag.offset}]}
该节点的做用是控制循环的结束。
end节点的结束条件:是把dag.loopTimes进行比较,小于则输出True继续循环;不小于则输出False退出循环。dag.input.length变量,标识上下文参数input数组的行数。是系统自动根据节点配置的上下文下发的变量。
if ${dag.loopTimes} < ${dag.input.length}: print True else: print False
在调度配置页面,须要设置上游节点。
设置完成,保存后,能够看到循环节点变动为
目前在DataWorks的开发界面暂不支持循环节点的运行,须要提交后在运维中心测试运行。
分别点击 “日期集合”和“数据清洗SQL”页面上的“提交按钮”进行提交。
在提交循环节点时,注意要勾选上全部的节点。
进入运维中心页面,在周期任务的列表里面能够看到咱们刚刚提交的两个做业。
右键“日期集合” -> 补数据 -> 当前节点及下游节点 能够手动执行该组任务。
提交后能够看到每一个节点的运行状态。
原文连接 本文为云栖社区原创内容,未经容许不得转载。