DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于的支持,意味着所有的AnalyticDB客户可以获得任务开发、任务依赖关系管理、任务调度、任务运维等等全方位强大的能力,现在就给大家仔细介绍下如何使用DataWorks来调度AnalyticDB任务。
开通AnalyticDB
进入阿里云,点击免费试用。最近上线了15天活动,需要首先填写申请表单,审批通过后即可享受免费试用AnalyticDB活动。进入购买页面,选择好地域、可用区、ECU类型、ECU数量和数据库名,点击立即购买,稍等几分钟时间就可以开通AnalyticDB实例。
![e4b8a9d412e1cba6ce422d91f128720d684.jpg](https://oscimg.oschina.net/oscnet/e4b8a9d412e1cba6ce422d91f128720d684.jpg)
开通DataWorks
开通完AnalyticDB服务后,紧接着要开通。选择好region后点击下一步。
![d6fe30bd73153929caf2a66b156fe15fb13.jpg](https://oscimg.oschina.net/oscnet/d6fe30bd73153929caf2a66b156fe15fb13.jpg)
![b93f543834bd29335fcc99638bcf087259f.jpg](https://oscimg.oschina.net/oscnet/b93f543834bd29335fcc99638bcf087259f.jpg)
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任务, 我们的表、任务之间的关系如下图:
![9381db412f402966ac068a61d7be68c9161.jpg](https://oscimg.oschina.net/oscnet/9381db412f402966ac068a61d7be68c9161.jpg)
- 任务一: 我们从orders表清洗出已经完成的订单: o_orderstatus = 'F' , 并写入 finished_orders 表。
- 任务二: 再从 finished_orders 表里面找出总价大于10000的订单: o_totalprice > 10000, 并写入 high_value_finished_orders 表。
在 DataWorks 上创建AnalyticDB任务
在开通了 DataWorks + AnalyticDB
的功能后,我们可以在里面创建AnalyticDB的任务了,如下图:
![88d36c070ebf4c0c39f0bb6d532ff6e5a81.jpg](https://oscimg.oschina.net/oscnet/88d36c070ebf4c0c39f0bb6d532ff6e5a81.jpg)
finished_orders
, 点击确定会进入一个SQL编辑的页面,要写AnalyticDB SQL一定要告诉DataWorks我们写的SQL运行在哪个服务上,这个在DataWorks里面被包装成了"数据源"的概念。![6f3c2740763b654b65ad1d37ea6ac500f00.jpg](https://oscimg.oschina.net/oscnet/6f3c2740763b654b65ad1d37ea6ac500f00.jpg)
新建数据源
![ee7384ecf6cebbedd1e17b6abf56381506a.jpg](https://oscimg.oschina.net/oscnet/ee7384ecf6cebbedd1e17b6abf56381506a.jpg)
填写必要的信息点击确定完成。
![8add76f337378a2c0bc631bfa1347493754.jpg](https://oscimg.oschina.net/oscnet/8add76f337378a2c0bc631bfa1347493754.jpg)
![e937efeaea88d8b447df6635a05905ace45.jpg](https://oscimg.oschina.net/oscnet/e937efeaea88d8b447df6635a05905ace45.jpg)
![3c3a4914bb74346499e71c0773c46ff4a55.jpg](https://oscimg.oschina.net/oscnet/3c3a4914bb74346499e71c0773c46ff4a55.jpg)
finished_orders
的任务里面填入如下SQL, 并点击执行: use dataworks_demo;insert into finished_ordersselect O_ORDERKEY, O_TOTALPRICEfrom orders where O_ORDERSTATUS = 'F';
如下图:
![81645f70c5dd8a0d17a8a0968c23b7ae650.jpg](https://oscimg.oschina.net/oscnet/81645f70c5dd8a0d17a8a0968c23b7ae650.jpg)
use dataworks_demo;insert into high_value_finished_ordersselect * from finished_orderswhere O_TOTALPRICE > 10000;
配置任务依赖
单个任务单次运行没什么太大意思,任务调度的核心在于多个任务按照指定的依赖关系在指定的时间进行运行,下面我们让: task_finished_orders
在每天半夜2点开始运行:
![2388fa5aa93db4096a2fc9c3b02a7efb5b6.jpg](https://oscimg.oschina.net/oscnet/2388fa5aa93db4096a2fc9c3b02a7efb5b6.jpg)
high_value_finished_orders
在 finished_orders
成功运行之后再运行:![0fa0a80a6179a0f06568dad9b107a327eef.jpg](https://oscimg.oschina.net/oscnet/0fa0a80a6179a0f06568dad9b107a327eef.jpg)
任务发布
任务配置好之后,就可以进行任务的发布、运维了。任务要发布首先必须提交:
![14a53828cd5aec0f0ab08d8a0aa5ac21b59.jpg](https://oscimg.oschina.net/oscnet/14a53828cd5aec0f0ab08d8a0aa5ac21b59.jpg)
![e7cb2765a9db81db0f7e9e942883fbebf86.jpg](https://oscimg.oschina.net/oscnet/e7cb2765a9db81db0f7e9e942883fbebf86.jpg)
选择我们刚刚提交的两个任务,我们就可以发布了。在发布列表页面可以查看我们刚刚的发布是否成功:
发布成功之后,我们就可以进入任务运维页面查看我们的任务,进行各种运维操作了。![9b841afda704792fbe9018d09c8ccf7f5c5.jpg](https://oscimg.oschina.net/oscnet/9b841afda704792fbe9018d09c8ccf7f5c5.jpg)
总结
在这篇文章里面,我带大家一起体验了一下如何用DataWorks来开发、调度AnalyticDB的任务,有了这个能力之后大家可以更方便地进行每天任务的开发、运维了。
本文为云栖社区原创内容,未经允许不得转载。