本文档主要介绍了循环调度DLA Presto任务的操作步骤。

步骤一:新增Data Lake Analytics(DLA)数据源

  1. 登录DataWorks控制台,单击对应项目栏中的进入数据集成
  2. 单击新增数据源,数据源选择Data Lake Analytics(DLA)
  3. 新增Data Lake Analytics(DLA)数据源页面,进行以下参数配置。详细的参数配置如下表所示:新增DLA数据源
    参数名称 参数说明
    数据源名称 为数据源指定一个名字,便与后续管理。
    数据源描述 添加数据源描述,该项为可选填项。
    连接Url DLA的服务访问点地址信息,由Address:Port组成。可通过设置服务访问点获取Address:Port
    数据库名 DLA中创建的OSS连接,本教程为dataworks_demo。
    用户名 登录DLA使用的用户名。
    密码 登录DLA使用的用户名对应的密码。
  4. 修改DLA白名单。

    由于DataWorks中对DLA数据源有白名单限制,您需要根据DLA所属Region,将下表中对应的IP地址或者IP地址段加入DLA的白名单。

    华东1(杭州) 100.64.0.0/8,11.193.102.0/24,11.193.215.0/24,11.194.110.0/24,11.194.73.0/24,118.31.157.0/24,47.97.53.0/24,11.196.23.0/24,47.99.12.0/24,47.99.13.0/24,114.55.197.0/24,11.197.246.0/24,11.197.247.0/24
    华东2(上海) 11.193.109.0/24,11.193.252.0/24,47.101.107.0/24,47.100.129.0/24,106.15.14.0/24,10.117.28.203,10.117.39.238,10.143.32.0/24,10.152.69.0/24,10.153.136.0/24,10.27.63.15,10.27.63.38,10.27.63.41,10.27.63.60,10.46.64.81,10.46.67.156,11.192.97.0/24,11.192.98.0/24,11.193.102.0/24,11.218.89.0/24,11.218.96.0/24,11.219.217.0/24,11.219.218.0/24,11.219.219.0/24,11.219.233.0/24,11.219.234.0/24,118.178.142.154,118.178.56.228,118.178.59.233,118.178.84.74,120.27.160.26,120.27.160.81,121.43.110.160,121.43.112.137,100.64.0.0/8
    华南1(深圳) 100.106.46.0/24,100.106.49.0/24,10.152.27.0/24,10.152.28.0/24,11.192.91.0/24,11.192.96.0/24,11.193.103.0/24,100.64.0.0/8,120.76.104.0/24,120.76.91.0/24,120.78.45.0/24
    中国香港 10.152.162.0/24,11.192.196.0/24,11.193.11.0/24,100.64.0.0/8,11.192.196.0/24,47.89.61.0/24,47.91.171.0/24,11.193.118.0/24,47.75.228.0/24
    亚太东南1(新加坡) 100.106.10.0/24,100.106.35.0/24,10.151.234.0/24,10.151.238.0/24,10.152.248.0/24,11.192.153.0/24,11.192.40.0/24,11.193.8.0/24,100.64.0.0/8,100.106.10.0/24,100.106.35.0/24,10.151.234.0/24,10.151.238.0/24,10.152.248.0/24,11.192.40.0/24,47.88.147.0/24,47.88.235.0/24,11.193.162.0/24,11.193.163.0/24,11.193.220.0/24,11.193.158.0/24,47.74.162.0/24,47.74.203.0/24,47.74.161.0/24,11.197.188.0/24
    亚太东南2(澳洲,悉尼) 11.192.100.0/24,11.192.134.0/24,11.192.135.0/24,11.192.184.0/24,11.192.99.0/24,100.64.0.0/8,47.91.49.0/24,47.91.50.0/24,11.193.165.0/24,47.91.60.0/24
    华北2(北京) 100.106.48.0/24,10.152.167.0/24,10.152.168.0/24,11.193.50.0/24,11.193.75.0/24,11.193.82.0/24,11.193.99.0/24,100.64.0.0/8,47.93.110.0/24,47.94.185.0/24,47.95.63.0/24,11.197.231.0/24,11.195.172.0/24,47.94.49.0/24,182.92.144.0/24
    美国西部1 10.152.160.0/24,100.64.0.0/8,47.89.224.0/24,11.193.216.0/24,47.88.108.0/24
    美国东部1 11.193.203.0/24,11.194.68.0/24,11.194.69.0/24,100.64.0.0/8,47.252.55.0/24,47.252.88.0/24
    亚太东南3(马来西亚,吉隆坡) 11.193.188.0/24,11.221.205.0/24,11.221.206.0/24,11.221.207.0/24,100.64.0.0/8,11.214.81.0/24,47.254.212.0/24,11.193.189.0/24
    欧洲中部1(德国,法兰克福) 11.192.116.0/24,11.192.168.0/24,11.192.169.0/24,11.192.170.0/24,11.193.106.0/24,100.64.0.0/8,11.192.116.14,11.192.116.142,11.192.116.160,11.192.116.75,11.192.170.27,47.91.82.22,47.91.83.74,47.91.83.93,47.91.84.11,47.91.84.110,47.91.84.82,11.193.167.0/24,47.254.138.0/24
    亚太东北1(日本) 100.105.55.0/24,11.192.147.0/24,11.192.148.0/24,11.192.149.0/24,100.64.0.0/8,47.91.12.0/24,47.91.13.0/24,47.91.9.0/24,11.199.250.0/24,47.91.27.0/24
    中东东部1(阿联酋,迪拜) 11.192.107.0/24,11.192.127.0/24,11.192.88.0/24,11.193.246.0/24,47.91.116.0/24,100.64.0.0/8
    亚太东南1(印度,孟买) 11.194.10.0/24,11.246.70.0/24,11.246.71.0/24,11.246.73.0/24,11.246.74.0/24,100.64.0.0/8,149.129.164.0/24,11.194.11.0/24
    英国 11.199.93.0/24,100.64.0.0/8
    亚太东南5(印度尼西亚,雅加达) 11.194.49.0/24,11.200.93.0/24,11.200.95.0/24,11.200.97.0/24,100.64.0.0/8,149.129.228.0/24,10.143.32.0/24,11.194.50.0/24
    华北2(政务云) 11.194.116.0/24,100.64.0.0/8 如果IP地址段添加不成功,请添加IP地址:11.194.116.160,11.194.116.161,11.194.116.162,11.194.116.163,11.194.116.164,11.194.116.165,11.194.116.167,11.194.116.169,11.194.116.170,11.194.116.171,11.194.116.172,11.194.116.173,11.194.116.174,11.194.116.175
  5. 完成上述参数配置后,单击测试连通性进行连通性测试,测试通过后单击完成

步骤二:新建业务流程和节点

  1. 登录DataWorks控制台,单击对应项目栏中的进入数据开发
  2. 右键单击业务流程新建一个流程,本教程新建业务流程DLA循环任务新建业务流程
  3. 在新建的业务流程下,创建一个赋值节点和一个循环节点do-while赋值节点

步骤三:配置赋值节点

  1. 双击日期集合节点进入编辑页面,选择SHELL语言,将要执行的日期值写在一个数组里并保存设置。

    日期值之间以英文逗号分隔,且不含空格:

    echo "20190424,20190425,20190426,20190427,20190428,20190429,20190430"
    日期集合
  2. 单击调度配置赋值节点设置一个上游节点。这里可以将当前工作空间的根节点设置为上游节点,比如,本教程工作空间名为dla_project,则上游节点为dla_project_root。日期集合
  3. 单击保存,保存配置。

步骤四:配置do-while循环节点

  1. 双击do-while循环节点进入编辑页面。循环节点
  2. 新建一个DLA任务。新建DLA任务
  3. 单击调度配置,在调度配置页面设置依赖关系和节点上下文。上游节点设置为赋值节点日期集合,本节点的输入为赋值节点的输出。日期集合

步骤五:配置DLA_SQL节点

INSERT INTO finished_orders
SELECT  O_ORDERKEY
        ,O_TOTALPRICE
FROM    orders
WHERE   pure_date = ${dag.input[${dag.offset}]}
AND     O_ORDERSTATUS = 'F';
  • pure_date的值是从赋值节点读入,每次读取赋值节点的输出结果数组中的一个值。
  • dag.offset是DataWorks的系统保留变量,每一次循环次数相对于第一次的偏移量,即第一次循环中offset为0、第二次为1、第三次为2…第n次为n-1。
  • dag.input变量是用户配置的循环节点的上下文依赖。循环节点内部节点如果需要引用上下文依赖的值,可以直接通过dag.$ctxKey的方式来引用。本教程中,上文配置的上下文依赖key为input,因此可以使用{dag.input}来引用这个值。
  • dag.input[$dag.offset]节点数据集初始化的输出是一个表格,可以用偏移量的方式来获取表格数据的某一行。由于每次循环中的值是递增的,所以最后输出的数据应该是 {dag.input[0]}${dag.input[1]}以此类推达到遍历数据集的效果。

步骤六:设置end节点

end节点用于控制循环的结束,将dag.loopTimesdag.input.length进行比较,dag.loopTimes小于dag.input.length则输出True继续循环;dag.loopTimes不小于dag.input.length则输出False退出循环。dag.input.length变量,标识上下文参数input数组的行数,是系统自动根据节点配置的上下文下发的变量。

if ${dag.loopTimes} < ${dag.input.length}: 
 print True
else: 
 print False

调度配置页面,设置end节点的上游节点DLA_SQL节点。

DLA SQL

设置完成并保存后,可以看到循环节点变更为以下形式。

循环节点

步骤七:发布任务

目前DataWorks的开发界面暂不支持运行循环节点,需要提交循环节点后在运维中心测试运行。

分别单击日期集合数据清洗SQL页面上的提交按钮进行提交。提交数据清洗SQL时,注意勾选所有节点。

提交数据清洗

步骤八:运行任务

  1. 进入运维中心页面,在周期任务列表中可以看到刚刚提交的两个作业。周期任务
  2. 右键单击日期集合>补数据>当前节点及下游节点手动执行该组任务。

    任务执行后可以看到每个节点的运行状态。

    周期任务