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数据更详细的信息可以参考:

在 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任务的更多相关文章

  1. 如何使用Data Lake Analytics创建分区表

    前言 Data Lake Analytics(后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据库 ...

  2. Data Lake Analytics的Geospatial分析函数

    0. 简介 为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DLA)支持多种格式的地理空间数据处理函数,符合Open Geospatial ...

  3. Data Lake Analytics + OSS数据文件格式处理大全

    0. 前言 Data Lake Analytics是Serverless化的云上交互式查询分析服务.用户可以使用标准的SQL语句,对存储在OSS.TableStore上的数据无需移动,直接进行查询分析 ...

  4. Data Lake Analytics: 读/写PolarDB的数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高 ...

  5. Data Lake Analytics,大数据的ETL神器!

    0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake. ...

  6. 使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集

    0. Data Lake Analytics(DLA)简介 关于Data Lake的概念,更多阅读可以参考:https://en.wikipedia.org/wiki/Data_lake 以及AWS和 ...

  7. Data Lake Analytics账号和权限体系详细介绍

    一.Data Lake Analytics介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析 ...

  8. 如何在Data Lake Analytics中使用临时表

    前言 Data Lake Analytics (后文简称DLA)是阿里云重磅推出的一款用于大数据分析的产品,可以对存储在OSS,OTS上的数据进行查询分析.相较于传统的数据分析产品,用户无需将数据重新 ...

  9. 使用Data Lake Analytics读/写RDS数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于RDS(目前支持 MySQL , SQLServer ,Postgres 引擎)的支持, 这篇教程带你玩转 DLA 的 R ...

随机推荐

  1. CreateProcess函数详解及示例

    WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件. 函数原型: BOOL CreateProcess ( LPCTSTR lpApplic ...

  2. VS2010-MFC(对话框:为对话框添加控件)

    转自:http://www.jizhuomi.com/software/151.html 上一讲创建了一个名为“Addition”的工程,目的是生成一个实现加法运算的应用程序.实现加法计算有几个必要的 ...

  3. [原创]Java调用PageOffice在线打开数据库中保存的Word文件

    PageOffice产品和数据库是两个独立的概念,严格来说两者之间没有任何本质关系.PageOffice不依赖数据库而存在,但是数据库和PageOffice可以结合使用来完成某些复杂的业务逻辑.例如: ...

  4. js 引入Vue.js实现vue效果

    拆分组件为单个js见:https://www.jianshu.com/p/2f0335818ceb 效果 html <!DOCTYPE html> <html> <hea ...

  5. vue 可复用swiper以及scoped样式穿透(可以不受scoped的限制来修改样式)

    参考: https://blog.csdn.net/dwb123456123456/article/details/82701740https://blog.csdn.net/u014027876/a ...

  6. java笔试之数字颠倒

    描述: 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 package test; import java.ut ...

  7. python基础-三元表达式/列表推导式/生成器表达式

    1.三元表达式:如果成立返回if前的内容,如果不成立返回else的内容 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' ...

  8. centos7.5安装公版mysql5.7.25

    ######### 卸载原来系统安装的包 # yum remove -y java cvs libselinux-devel postgresql mysql ecj jna sinjdoc 依赖包安 ...

  9. day43作业

    注册页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. C语言处理字符串及内存操作

    字符串处理函数 1.字符串长度 strlen表示包含的字符的个数,size_t strlen(char cosnt *string), 返回的是size_t类型,它是无符号整数类型,在表达式中进行运算 ...