您可以在数据管理DMS中创建和调度DLA任务流实现数仓开发,任务流只需定义一次,即可周期性地自动被调度执行,大大减少人工操作成本。同时执行DLA任务流时产生的中间结果可以被复用,例如用于其他数据分析任务,从而最大化利用DLA的资源。

任务调度中一个重要的功能是任务之间的依赖,为演示该功能,本文在DMS中创建两个DLA任务,表、任务之间的关系如下图所示。任务关系图
  • 任务一

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

  • 任务二

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

前提条件

  • 您需要开通DLA服务,然后创建一个Schema(database)以及在Schema中创建测试表。
    1. 开通DLA服务,请参见开通云原生数据湖分析服务
    2. 初始化数据库主账号密码,请参见重置数据库账号密码
    3. 创建Schema和表。
      创建Schema
      ​  CREATE SCHEMA gmall with DBPROPERTIES(
          LOCATION = 'oss://oss-bucket-name/gmall/',
          catalog='oss'
        );​
      创建orders表
      ​CREATE EXTERNAL TABLE orders (
        O_ORDERKEY INT, 
        O_CUSTKEY INT, 
        O_ORDERSTATUS STRING, 
        O_TOTALPRICE DOUBLE, 
        O_ORDERDATE DATE, 
        O_ORDERPRIORITY STRING, 
        O_CLERK STRING, 
        O_SHIPPRIORITY INT, 
        O_COMMENT STRING
      ) 
      ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
      STORED AS TEXTFILE 
      LOCATION 'oss://bucket-name/gmall/orders';​
      finished_orders表
      ​CREATE EXTERNAL TABLE IF NOT EXISTS finished_orders (
          O_ORDERKEY INT,  
          O_TOTALPRICE DOUBLE
      ) 
      ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
      STORED AS TEXTFILE 
      LOCATION 'oss://bucket-name/gmall/finished_orders/';​
      high_value_finished_orders表
      ​CREATE EXTERNAL TABLE IF NOT EXISTS high_value_finished_orders (
        O_ORDERKEY INT, 
        O_TOTALPRICE DOUBLE
      ) 
      ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
      STORED AS TEXTFILE 
      LOCATION 'oss://bucket-name/gmall/high_value_finished_orders/';​
  • DMS产品详情页单击立即购买,开通DMS服务。

步骤一:新增DLA数据源

  1. 登录数据管理DMS控制台
  2. 在左侧导航栏选择实例管理,单击实例列表
  3. 单击目标实例地址所在行更多中的编辑实例
  4. 编辑实例页面,根据页面提示进行参数配置。编辑实例
    参数类别 参数名称 参数说明
    基本信息 数据来源 选择云数据库
    数据库类型 选择DLA-数据湖分析
    实例地区 选择DLA所在地域。
    录入方式 您可以通过两种方式录入DLA信息:
    • 实例ID,从实例列表中选择DLA实例ID。
    • 连接串地址,手动输入DLA连接地址。
    实例ID
    • 录入方式为实例ID时,从实例列表中选择DLA实例ID。
    • 录入方式为连接串地址时,手动输入DLA连接地址。
    数据库账号 DLA中的数据库账号。
    数据库密码 数据库账号对应的密码。
    管控模式 请参见管控模式
    安全规则 如果您选择的管控模式为安全协同,需要填写安全规则,选择DLA默认规则。
    高级信息 环境类型 本例选择生产
    实例名称 DLA的实例ID或者名称。
    开启跨库查询 默认选中开启跨库查询,且不支持用户修改。
    无锁结构变更 默认选中关闭,且不支持用户修改。
    开启SSL 您可以选择默认(DMS与数据库服务自动协商是否开启)开启关闭
    实例DBA 您可以根据实际情况选择一个账号作为实例DBA
    查询超时时间(s) 本例设置为60。
    导出超时时间(s) 本例设置为600。
  5. 完成参数配置后单击测试连接,测试成功后单击提交

步骤二:编排任务流

  1. 登录数据管理DMS控制台
  2. 在上方导航栏,单击传输与加工(DTS)
  3. 单击左侧导航栏中的任务编排,然后单击新增任务流
  4. 新建任务流对话框,设置任务流名称描述,然后单击确认新建任务流
  5. 拖拽两个DLA节点到中间的空白区域中,然后单击任务1的下边框连接点,引出一条到达任务2的带箭头直线关联任务1和任务2。
  6. 分别单击任务1和任务2节点,在内容设置中输入或者选择DLA Schema的名字,然后单击保存
  7. 单击任务1节点,在内容设置中输入SQL实现任务一,即从orders表查询出已经完成的订单o_orderstatus = 'F',并将其写入finished_orders表,单击保存
    ​ insert into finished_orders
       select O_ORDERKEY, O_TOTALPRICE
       from orders
       where O_ORDERSTATUS = 'F';​
  8. 单击任务2节点,在内容设置中输入SQL实现任务二,即从finished_orders中查询出总价大于10000的订单o_totalprice > 10000,并将其写入high_value_finished_orders表,单击保存

    ​ insert into high_value_finished_orders
     select * from finished_orders
     where O_TOTALPRICE > 10000;​

步骤三:运行任务

任务流编排完成后,您可以通过如下方式运行任务。
  • 单击试运行,系统弹出提示窗口,单击确认运行任务。
  • 开启调度配置为任务设置周期运行策略。

步骤四:查看任务

任务运行结束后,您可以通过如下方式查看任务。
  • 单击运维中心查看任务运行状态。
  • 登录Data Lake Analytics管理控制台,在DLA中查询任务运行结果。
    • 任务一:从orders表查询出已经完成的订单o_orderstatus = 'F'
    • 任务二:从finished_orders中查询出总价大于10000的订单o_totalprice > 10000