Data Lake Analytics: 使用DataWorks来调度DLA任务

DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于Data Lake Analytics的支持,意味着所有Data Lake Analytics的客户可以获得任务开发、任务依赖关系管理、任务调度、任务运维等等全方位强大的能力,今天就给大家介绍一下如何使用DataWorks来调度DLA的脚本任务。
开通DLA
在开始之前我们要有一个 DLA 的账号,目前 DLA 的新用户都有50T的免费流量,可以放心试用。开通DLA成功后,你会获得一个用户名和密码, 然后在控制台登录就可以使用:

或者如果你是极客,更偏爱命令行,你也可以使用普通的 MySQL 客户端就可以连接 DLA 了:
mysql -hservice.cn-region.datalakeanalytics.aliyuncs.com
-P10000
-u<your-user-name>
-p<your-password>
在这篇文章里面,我会使用 MySQL 命令行给大家演示 DLA 的功能。
申请试用 DataWorks + DLA
开通DLA服务之后,您还需要开通DataWorks的服务,目前DataWorks还在公测阶段,放心使用。
然后您可以在您对应的DLA服务群里面找我们任何一位同学开通一下DLA + DataWorks的试用资格(目前这个功能还处于邀请试用的阶段,没有完全放开)。
如果目前还没有专门DLA服务群的客户,可以通过工单联系我们。
DLA数据、库、表准备
为了演示如何在DataWorks上调度DLA的任务,我们后面会用到一些测试数据,这里我们用著名的TPCH的测试数据集, 数据保存在OSS上面。

通过MySQL命令行我们创建对应的库、表:
CREATE SCHEMA dataworks_demo with DBPROPERTIES(
CATALOG = 'oss',
LOCATION = 'oss://test-bucket/datasets/'
);
use dataworks_demo;
CREATE EXTERNAL TABLE IF NOT EXISTS 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://test-bucket/datasets/tpch/1x/text_string/orders_text/';
-- 结果表 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://test-bucket/datasets/dataworks_demo/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://test-bucket/datasets/dataworks_demo/high_value_finished_orders/';
任务调度其中一个重要的功能是任务之间的依赖,为了演示这个功能,我们这里会在DataWorks里面创建两个DLA任务, 我们的表、任务之间的关系如下图:
- 任务一: 我们从orders表清洗出已经完成的订单:
o_orderstatus = 'F', 并写入 finished_orders 表 - 任务二: 再从 finished_orders 表里面找出总价大于10000的订单:
o_totalprice > 10000, 并写入high_value_finished_orders表
关于如何使用DLA分析OSS数据更详细的信息可以参考:
- Data Lake Analytics + OSS数据文件格式处理大全:https://yq.aliyun.com/articles/623246
- 使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集:https://yq.aliyun.com/articles/623282
在 DataWorks 上创建 DLA 任务
在开通了 DataWorks + DLA 的功能后,我们可以在DataWorks的数据开发IDE里面创建DLA的任务了,如下图:

我们把第一个任务命名为: finished_orders , 点击确定会进入一个SQL编辑的页面,要写DLA SQL一定要告诉DataWorks我们写的SQL运行在哪个DLA的服务上,这个在DataWorks里面被包装成了"数据源"的概念:
DataWorks的规范是任务的名称跟任务的输出表的名称保持一致。

刚进来的时候没有数据源,点击新建数据源:

填写必要的信息点击确定完成。

DataWorks为了安全的考虑,对可以连接的服务进行了安全控制,因此我们需要把我们要连的DLA的地址+端口加到白名单里面去,这个配置是在DataWorks工作空间的配置里面:

具体配置如下(需要换成你实际的IP+端口):

这里需要注意一下,工作空间配置只有工作空间管理员才有权限。
做了这么多之后,我们终于可以在编辑页面看到DLA的数据源了,下面我们在 finished_orders 的任务里面填入如下SQL, 并点击执行:
use dataworks_demo;
insert into finished_orders
select O_ORDERKEY, O_TOTALPRICE
from orders
where O_ORDERSTATUS = 'F';
如下图:

重复上述步骤,我们创建第二个任务: high_value_finished_orders:
use dataworks_demo;
insert into high_value_finished_orders
select * from finished_orders
where O_TOTALPRICE > 10000;
配置任务依赖
单个任务单次运行没什么太大意思,任务调度的核心在于多个任务按照指定的依赖关系在指定的时间进行运行,下面我们让: task_finished_orders 在每天半夜2点开始运行:

high_value_finished_orders 在 finished_orders 成功运行之后再运行:

任务发布
任务配置好之后,就可以进行任务的发布、运维了。任务要发布首先必须提交:

提交之后,我们在待发布列表可以看到所有待发布的任务:

选择我们刚刚提交的两个任务,我们就可以发布了:

在发布列表页面可以查看我们刚刚的发布是否成功:

发布成功之后,我们就可以进入任务运维页面查看我们的任务,进行各种运维操作了。

总结
在这篇文章里面,我带大家一起体验了一下如何用 DataWorks 来开发、调度DLA的任务,有了这个能力之后大家可以更方便地进行每天任务的开发、运维了。
原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight
Data Lake Analytics: 使用DataWorks来调度DLA任务的更多相关文章
- 如何使用Data Lake Analytics创建分区表
前言 Data Lake Analytics(后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据库 ...
- Data Lake Analytics的Geospatial分析函数
0. 简介 为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DLA)支持多种格式的地理空间数据处理函数,符合Open Geospatial ...
- Data Lake Analytics + OSS数据文件格式处理大全
0. 前言 Data Lake Analytics是Serverless化的云上交互式查询分析服务.用户可以使用标准的SQL语句,对存储在OSS.TableStore上的数据无需移动,直接进行查询分析 ...
- Data Lake Analytics: 读/写PolarDB的数据
Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高 ...
- Data Lake Analytics,大数据的ETL神器!
0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake. ...
- 使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集
0. Data Lake Analytics(DLA)简介 关于Data Lake的概念,更多阅读可以参考:https://en.wikipedia.org/wiki/Data_lake 以及AWS和 ...
- Data Lake Analytics账号和权限体系详细介绍
一.Data Lake Analytics介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析 ...
- 如何在Data Lake Analytics中使用临时表
前言 Data Lake Analytics (后文简称DLA)是阿里云重磅推出的一款用于大数据分析的产品,可以对存储在OSS,OTS上的数据进行查询分析.相较于传统的数据分析产品,用户无需将数据重新 ...
- 使用Data Lake Analytics读/写RDS数据
Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于RDS(目前支持 MySQL , SQLServer ,Postgres 引擎)的支持, 这篇教程带你玩转 DLA 的 R ...
随机推荐
- C++ 字符串、string、char *、char[]、const char*的转换和区别
1.字符串 字符串本质就是一串字符,在C++中大家想到字符串往往第一反应是std::string(后面简称string) 字符串得从C语言说起,string其实是个类,C语言是没有class的,所以C ...
- JVM基础总结
- python的命名规范
包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass.内部类可以使用额外的前导下划 ...
- 利用jQuery获取jsonp
前端js代码: $.ajax({ url: 'http://localhost:8080/webApp/somejsonp', dataType: "jsonp", jsonp: ...
- Activiti流程定义部署、删除
1.部署流程定义 部署流程定义也可以认为是增加流程定义. 首先创建流程引擎对象(公用的方法) private ProcessEngine processEngine = ProcessEngin ...
- JS倒计时两种种实现方式 很不错
最近做浏览器界面倒计时,用js就实现,两种方式: 一:设置时长,进行倒计时.比如考试时间等等 代码如下: <html> <head> <meta charset=&quo ...
- 百度ueditor解决页面组件被覆盖问题
本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:百度ueditor解决页面组件被覆盖问题: 在使用ueditor的过程中,会出现表单组件被ueditor覆盖的问题,解决的方式如下: ue ...
- [转]Visual Studio 2010单元测试(3)--顺序单元测试
之前我们做的测试都是一个一个进行的,当然我们也可以一次性选择多个测试方法进行,但是测试运行的顺序以“测试列表编辑器”窗口中的默认列表顺序为准.在实际场景中,我们需要进行有顺序的单元测试,步骤可能每一步 ...
- 阿里云 Aliplayer高级功能介绍(六):进度条标记
基本介绍 Aliplayer在进度条上提示时间和缩略图功能外,还可以进行视频内容的提示打点,当然不止是进度条上显示打点的内容,还提供一组接口,方便用户进行打点时间和内容的获取, 基本UI如下图所示: ...
- Python-可变类型与不可变类型
可变类型 可以变化的,列表和字典 利用id()函数 查看内存地址 内存地址变化即不可变类型. 内存地址不变化即可变类型 不可变类型 不可以变化的,字符串和数字 字符串内置方法 索引取值 索引切片 成员 ...