全部产品

五分钟DMS任务编排之DLA

更新时间:2020-05-13 18:15:22

数据湖分析(Data Lake Analytics,DLA)是无服务器(Serverless)化的云上交互式查询分析服务。它支持在不同数据源中存储的数据进行查询和分析。本文将介绍如何使用DMS的任务编排模式对DLA上的计算任务进行编排和调度。

前置条件

DLA

需要一个阿里云的DLA实例(如果没有,请先创建)。同时需要在DLA实例中创建一个database(schema)以及在该database下创建两个table。创建脚本如下:

  1. -- 创建
  2. CREATE DATABASE IF NOT EXISTS `demo_schema`
  3. WITH DBPROPERTIES (
  4. LOCATION = 'oss://dbs-backup-1673826650152166-cn-beijing/dla_demo/',
  5. catalog = 'oss',
  6. tags = 'sourceType=OSS_JSON'
  7. );
  8. -- 创建table demo1demo2
  9. CREATE EXTERNAL TABLE IF NOT EXISTS demo1
  10. (
  11. id int,
  12. v int
  13. )
  14. ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
  15. STORED AS TEXTFILE
  16. LOCATION 'oss://dbs-backup-1673826650152166-cn-beijing/dla_demo/';
  17. CREATE EXTERNAL TABLE IF NOT EXISTS demo2
  18. (
  19. id int,
  20. v int
  21. )
  22. ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
  23. STORED AS TEXTFILE
  24. LOCATION 'oss://dbs-backup-1673826650152166-cn-beijing/dla_demo/';

也可以通过DLA的向导创建database(schema)以及table,具体参见:DLA建表向导

开通DMS

如果已经开通DMS,可以直接访问DMS控制台

如果没有,请根据下面的步骤进行开通:

访问DMS应用,然后点击“立即购买”。购买DMS

然后选择好付费模式、管控模式以及使用的实例数以后,点击立即购买(管控模式介绍)。2DMS开通成功以后,可以开始后续的步骤。

操作步骤

DMS对接DLA分为两个步骤,新增数据库和编排任务流。下面的章节将一一介绍。

新增实例

1.进入DMS控制台,点击左上角的新增实例/批量录入右边的“+”,然后点击新增实例

n1

2.从新增实例界面中选择DLA-数据湖分析添加DLA

3.然后在新增实例界面中输入DLA实例的相关信息:

  • 实例地区:DLA实例所在的地区
  • 实例ID:输入购买好的DLA实例的连接串
  • 数据库账号/数据库密码:输入DLA实例的账号信息
  • 管控模式:选择安全协同
  • 安全规则:选择DLA默认规则n2

4.点击测试链接按钮,验证输入的DLA信息是否正确n7

5.在编辑实例界面的高级信息中,编辑实例名称为DLA-测试实例,然后提交advanced dla

编排运行任务流

DLA实例加入以后,就可以编排一个任务流,并配置调度周期。

编排任务流

首先需要打开编排任务流的页面。点击顶部导航栏中的数据工厂,然后选择任务编排n3

点击左侧导航栏中的开发空间,进入任务编排界面。n4

进入任务编排界面以后,点击任务编排右边的“+”,然后在新建任务流界面中,输入任务流名称:dla_demo_taskflow,然后确认dla demo

创建SQL任务

在当前界面中,通过拖拽DLA任务创建SQL任务。然后在每个SQL任务的内容设置中编写SQL,同时将数据库选择为demo_schema(该数据库在DLA中已经创建)。dla sql task

本文档中,配置两个SQL任务,一个用于准备数据,一个做聚合操作。数据准备的SQL任务内容设置如下:

  1. insert into demo1 values(1, 1);
  2. insert into demo1 values(1, 19);
  3. insert into demo1 values(2, 12);
  4. insert into demo1 values(3, 2);
  5. insert into demo1 values(3, 4);
  6. insert into demo1 values(4, 67);

聚合操作的SQL任务内容设置如下:

  1. insert into demo2
  2. select id, max(v) from demo1 group by id;

然后在节点名称中,把数据准备SQL的任务名改为Preparation,把聚合操作SQL的任务名改为Aggregation。dla task rename

最后通过点击Preparation任务的下边框连接点,引出一个到达Aggregation任务的带箭头直线,关联Preparation任务和Aggregation任务。dla arrow

运行任务流

编排好的任务流,可以通过试运行以及调度配置设置周期运行策略来运行。

试运行任务流

点击当前界面左上角的试运行,运行编排好的任务流。dla pre-run

查看结果

在左导航栏的运维中心中可以看到任务流的运行结果。n5

周期运行

点击左导航栏的开发空间回到任务编排界面,在空白处点击鼠标,右侧出现调度配置界面。n6

然后在调配配置界面中开启调度,选择调度类型为周期调度,选择调度周期以及输入具体时间。

这样,周期性调度的任务流就完成了,到了具体时间时,该任务流就会被自动触发,运行结果可以在运维中心中查看。

总结

本文档简要介绍了DMS任务编排如何对接DLA的步骤,包括开通DMS,添加DLA实例,以及创建、编排、运行、管理、调度任务流。使用DMS任务流在DLA上做周期性数据分析可获得如下好处:

  • 任务流只需一次定义,即可周期性地自动被调度执行,大大减少人工操作的成本
  • 周期执行任务并提前产生出分析结果,业务应用可直接查询结果获得快速响应
  • 任务流执行时产生的中间结果可被复用,用于其他的数据分析任务,从而最大化DLA的资源利用。

关于DMS更多的详细信息和功能,请参考:DMS文档