全部产品
云市场

DataWorks调度DLA任务

更新时间:2019-10-18 10:29:55

背景信息

DataWorks是基于MaxCompute作为计算和存储引擎的用于工作流可视化开发和托管调度运维的海量数据离线加工分析平台,支持按照时间和依赖关系的任务全面托管调度。Data Lake Analytics(DLA)用户可通过DataWorks强大的任务托管调度功能,调度执行DLA任务,使用DataWorks任务开发、任务依赖关系管理、任务调度任务运维等等全方位强大的功能。

目的

任务调度中一个重要的功能是任务之间的依赖,为演示这个功能,本教程会在DataWorks中创建两个DLA任务。表、任务之间的关系如下图:

任务关系

  • 任务一

    从orders表查询出已经完成的订单:o_orderstatus = 'F',并将其写入finished_orders表。

  • 任务二

    从finished_orders中查询出总价大于10000的订单:o_totalprice > 10000,并将其写入high_value_finished_orders表。

本教程中源数据orders表存储在OSS dlaossfile1 Bucket的dla Object中,即oss://dlaossfile1/dla/,单击orders.txt下载源数据。空文件finished_orders.txt和high_value_finished_orders.txt存储位置为oss://dlaossfile1/dla/finished_orders/

本教程将通过以下步骤演示DataWorks调度DLA任务:

  1. 在DLA中创建OSS连接

  2. 在DLA中创建orders、finished_orders、high_value_finished_orders外表

  3. 在DataWorks中添加DLA数据源

  4. 在DataWorks中创建DLA调度任务

  5. 在DataWorks中执行DLA调度任务

前提条件

  1. 开通DLADataWorks以及OSS服务,且DLA、DataWorks、OSS所属Region相同。本教程中三个服务所属Region均为华东1(杭州)。

  2. 参考DataWorks准备工作,创建项目空间。

    本教程项目空间为liujing_dataworks_test。

  3. 激活当前Region的DLA主账号

  4. 在DLA中创建服务访问点,请参见创建服务访问点

实施步骤

步骤一:在DLA中创建OSS Schema

  1. CREATE SCHEMA dataworks_demo with DBPROPERTIES(
  2. CATALOG = 'oss',
  3. LOCATION = 'oss://dlaossfile1/dla/'
  4. );

步骤二:在DLA中创建指向OSS文件的外表

  • orders表
  1. CREATE EXTERNAL TABLE IF NOT EXISTS orders (
  2. O_ORDERKEY INT,
  3. O_CUSTKEY INT,
  4. O_ORDERSTATUS STRING,
  5. O_TOTALPRICE DOUBLE,
  6. O_ORDERDATE DATE,
  7. O_ORDERPRIORITY STRING,
  8. O_CLERK STRING,
  9. O_SHIPPRIORITY INT,
  10. O_COMMENT STRING
  11. )
  12. ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
  13. STORED AS TEXTFILE
  14. LOCATION 'oss://dlaossfile1/dla/';
  • finished_orders表
  1. CREATE EXTERNAL TABLE IF NOT EXISTS finished_orders (
  2. O_ORDERKEY INT,
  3. O_TOTALPRICE DOUBLE
  4. )
  5. ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
  6. STORED AS TEXTFILE
  7. LOCATION 'oss://dlaossfile1/dla/finished_orders/';
  • high_value_finished_orders表

    1. CREATE EXTERNAL TABLE IF NOT EXISTS high_value_finished_orders (
    2. O_ORDERKEY INT,
    3. O_TOTALPRICE DOUBLE
    4. )
    5. ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
    6. STORED AS TEXTFILE
    7. LOCATION 'oss://dlaossfile1/dla/finished_orders/';

步骤三:在DataWorks中添加DLA数据源

  1. 登录DataWorks控制台,单击对应项目栏中的进入数据集成
  1. 单击新曾数据源,数据源选择Data Lake Analytics(DLA)

    选择数据源

    dla数据源

  2. 新增Data Lake Analytics(DLA)数据源页面,进行以下参数配置。

    新增DLA数据源

    详细的参数配置如下表所示。

    配置项 说明
    数据源名称 为数据源指定一个名字,便与后续管理。
    数据源描述 添加数据源描述,该项为可选填项。
    连接Url DLA的服务访问点地址信息,由Address:Port组成。可通过查看服务访问点信息获取Address:Port
    数据库名 DLA中创建的OSS连接,本教程为dataworks_demo。
    用户名 登录DLA使用的用户名。
    密码 登录DLA使用的用户名对应的密码。
  3. 修改DLA白名单。

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

    Region 白名单
    华东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
  4. 完成上述参数配置后,单击测试连通性进行连通性测试,测试通过后单击完成

步骤四:在DataWorks中创建DLA调度任务

  1. 登录DataWorks控制台,单击对应项目栏中的进入数据开发

  2. 右键单击业务流程新建一个流程,本教程新建业务流程dla_test_1。

  3. 新建一个DLA任务,本教程为finished_orders。

    finished_orders

  4. 单击DLA任务finished_orders,选择数据源设置为dla数据源

可参考上述步骤,创建多个任务。本教程创建两个任务:finished_orders、high_value_finished_orders。

步骤五:在DataWorks中执行DLA调度任务

执行SQL

  • 任务一:从orders表查询出已经完成的订单:o_orderstatus = 'F',并将其写入finished_orders表。

    1. insert into finished_orders
    2. select O_ORDERKEY, O_TOTALPRICE
    3. from orders
    4. where O_ORDERSTATUS = 'F';
  • 任务二:从finished_orders中查询出总价大于10000的订单:o_totalprice > 10000,并将其写入high_value_finished_orders表。

    1. insert into high_value_finished_orders
    2. select * from finished_orders
    3. where O_TOTALPRICE > 10000;

后续操作

任务配置

DataWorks支持按照时间依赖关系的任务触发机制,支持多个任务按照指定的依赖关系在指定的时间运行。详情,请参见调度配置

例如,每天凌晨2点运行finished_orders任务:

配置任务调度

finished_orders任务成功运行之后再运行high_value_finished_orders任务:

依赖关系配置

任务发布

任务配置好之后,就可以进行任务的发布和运维,详情,请参见任务管理