博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用DataWorks来调度AnalyticDB任务
阅读量:6580 次
发布时间:2019-06-24

本文共 2858 字,大约阅读时间需要 9 分钟。

DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于的支持,意味着所有的AnalyticDB客户可以获得任务开发、任务依赖关系管理、任务调度、任务运维等等全方位强大的能力,现在就给大家仔细介绍下如何使用DataWorks来调度AnalyticDB任务。

开通AnalyticDB

进入阿里云,点击免费试用。最近上线了15天活动,需要首先填写申请表单,审批通过后即可享受免费试用AnalyticDB活动。进入购买页面,选择好地域、可用区、ECU类型、ECU数量和数据库名,点击立即购买,稍等几分钟时间就可以开通AnalyticDB实例。

image

开通DataWorks

开通完AnalyticDB服务后,紧接着要开通。选择好region后点击下一步。

image

填写工作空间名称,注意模式要改成“标准模式”,创建工作空间。
image

AnalyticDB中表和数据准备

为了演示如何在DataWorks上调度AnalyticDB的任务,我们后面会用到一些测试数据,这里我们用著名的中的ORDERS表, 数据已经提前存入表中。

前面开通成功后,我们就可以在AnalyticDB中找到数据库,登陆数据库后,创建ORDERS表,如下:

CREATE TABLE ads_dla_test.orders (  o_orderkey int COMMENT '',  o_custkey int COMMENT '',  o_orderstatus varchar COMMENT '',  o_totalprice double COMMENT '',  o_orderdate date COMMENT '',  o_orderpriority varchar COMMENT '',  o_clerk varchar COMMENT '',  o_shippriority int COMMENT '',  o_comment varchar COMMENT '',  PRIMARY KEY (O_ORDERKEY,O_CUSTKEY))PARTITION BY HASH KEY (O_ORDERKEY) PARTITION NUM 32TABLEGROUP tpch_50x_groupOPTIONS (UPDATETYPE='realtime')COMMENT ''CREATE TABLE ads_dla_test.finished_orders (  o_orderkey int COMMENT '',  o_totalprice double COMMENT '',  PRIMARY KEY (O_ORDERKEY))PARTITION BY HASH KEY (O_ORDERKEY) PARTITION NUM 32TABLEGROUP tpch_50x_groupOPTIONS (UPDATETYPE='realtime')COMMENT ''CREATE TABLE ads_dla_test.high_value_finished_orders (  o_orderkey int COMMENT '',  o_totalprice double COMMENT '',  PRIMARY KEY (O_ORDERKEY))PARTITION BY HASH KEY (O_ORDERKEY) PARTITION NUM 32TABLEGROUP tpch_50x_groupOPTIONS (UPDATETYPE='realtime')COMMENT ''

任务调度其中一个重要的功能是任务之间的依赖,为了演示这个功能,我们这里会在DataWorks里面创建两个AnalyticDB任务, 我们的表、任务之间的关系如下图:

image

  • 任务一: 我们从orders表清洗出已经完成的订单: o_orderstatus = 'F' , 并写入 finished_orders 表。
  • 任务二: 再从 finished_orders 表里面找出总价大于10000的订单: o_totalprice > 10000, 并写入 high_value_finished_orders 表。

在 DataWorks 上创建AnalyticDB任务

在开通了 DataWorks + AnalyticDB 的功能后,我们可以在里面创建AnalyticDB的任务了,如下图:

image
我们把第一个任务命名为: finished_orders , 点击确定会进入一个SQL编辑的页面,要写AnalyticDB SQL一定要告诉DataWorks我们写的SQL运行在哪个服务上,这个在DataWorks里面被包装成了"数据源"的概念。
image
刚进来的时候没有数据源,点击新建数据源
image

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

image
DataWorks为了安全的考虑,对可以连接的服务进行了安全控制,因此我们需要把我们要连的AnalyticDB数据库的地址+端口加到白名单里面去,这个配置是在DataWorks工作空间的配置里面:
image
具体配置如下(需要换成你实际的域名+端口):
image
做了这么多之后,我们终于可以在编辑页面看到AnalyticDB的数据源了,下面我们在 finished_orders的任务里面填入如下SQL, 并点击执行:

use dataworks_demo;insert into finished_ordersselect O_ORDERKEY, O_TOTALPRICEfrom orders where O_ORDERSTATUS = 'F';

如下图:

image
重复上述步骤,我们创建第二个任务: high_value_finished_orders

use dataworks_demo;insert into high_value_finished_ordersselect * from finished_orderswhere O_TOTALPRICE > 10000;

配置任务依赖

单个任务单次运行没什么太大意思,任务调度的核心在于多个任务按照指定的依赖关系在指定的时间进行运行,下面我们让: task_finished_orders 在每天半夜2点开始运行:

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

任务发布

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

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

选择我们刚刚提交的两个任务,我们就可以发布了。在发布列表页面可以查看我们刚刚的发布是否成功:

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

总结

在这篇文章里面,我带大家一起体验了一下如何用DataWorks来开发、调度AnalyticDB的任务,有了这个能力之后大家可以更方便地进行每天任务的开发、运维了。

转载地址:http://jaino.baihongyu.com/

你可能感兴趣的文章
【转】Oracle索引的类型
查看>>
ActiveMQ使用示例之Topic
查看>>
FragmentTransaction.replace() 你不知道的坑
查看>>
分布式消息队列 Kafka
查看>>
模拟退火算法
查看>>
Solr 按照得分score跟指定字段相乘排序
查看>>
Mybatis特殊值Enum类型转换器-ValuedEnumTypeHandler
查看>>
java.lang.IllegalArgumentException: Request header is too large
查看>>
fastDFS 命令笔记
查看>>
C# Uditor 富文本的部署
查看>>
Python strip()方法
查看>>
Jmeter接口自动化测试 (四)(持续构建)
查看>>
微信小程序 事件
查看>>
管理带有子模块的git库[转]
查看>>
VNC黑屏解决办法
查看>>
一个屌丝程序猿的人生(五十)
查看>>
elasticsearch2.x插件之一:kopf
查看>>
程序员们,再不行动就来不及了!
查看>>
TCP协议中的三次握手和四次挥手(图解)
查看>>
MySQL(十一)视图及存储过程
查看>>