DataWorks调度AnalyticDB for MySQL任务
背景信息
DataWorks是基于MaxCompute作为计算和存储引擎的用于工作流可视化开发和托管调度运维的海量数据离线加工分析平台,支持按照时间和依赖关系的任务全面托管调度。AnalyticDB for MySQL用户可以通过DataWorks强大的任务托管调度功能,调度执行AnalyticDB for MySQL任务,使用DataWorks任务开发、任务依赖关系管理、任务调度、任务运维等等全方位强大的功能。
目的
任务调度中一个重要的功能是任务之间的依赖,为演示该功能,本教程会在DataWorks中创建两个AnalyticDB for MySQL任务。表与任务之间的关系如下图所示。
任务一
从orders表清洗出已经完成的订单:
o_orderstatus = 'F'
,并将其写入finished_orders表。
任务二
从finished_orders中查询总价大于10000的订单:
o_totalprice > 10000
,并将其写入high_value_finished_orders表。
前提条件
根据AnalyticDB for MySQL快速入门,完成创建实例、设置白名单等准备工作。
AnalyticDB for MySQL和DataWorks所属Region相同。
如果您在DataWorks通过AnalyticDB for MySQL的外网地址连接AnalyticDB for MySQL,需要先申请外网地址,然后将DataWorks白名单添加到AnalyticDB for MySQL白名单。
如果您在DataWorks通过AnalyticDB for MySQL的VPC地址连接AnalyticDB for MySQL,需要先在DataWorks中添加独享资源组,并且独享资源组中的VPC与AnalyticDB for MySQL所属VPC相同。
本教程将使用TPC-H测试数据集中的ORDERS表作为测试数据,连接AnalyticDB for MySQL数据库后,执行以下SQL创建测试数据表。
CREATE TABLE orders(o_orderkey bigint NOT NULL COMMENT'',
o_custkey int NOT NULL COMMENT'',
o_orderstatus varchar NOT NULL COMMENT'',
o_totalprice decimal(15,2) NOT NULL COMMENT'',
o_orderdate date NOT NULL COMMENT'',
o_orderpriority varchar NOT NULL COMMENT'',
o_clerkvar char NOT NULL COMMENT'',
o_shippriority int NOT NULL COMMENT'',
o_comment varchar NOT NULL COMMENT'',
dummy varchar
)DISTRIBUTED BY HASH(o_orderkey);
Create Table finished_orders (
o_orderkey bigint NOT NULL,
o_totalprice decimal(15,2) NOT NULL,
primary key (o_orderkey)
) DISTRIBUTE BY HASH(o_orderkey)
CREATE TABLE high_value_finished_orders (
o_orderkey bigint NOT NULL,
o_totalprice decimal(15,2) NOT NULL,
PRIMARY KEY (`o_orderkey`)
)
DISTRIBUTED BY HASH(o_orderkey);
根据DataWorks准备工作,创建工作空间。
工作空间的模式选择标准模式。
实施步骤
步骤一:在DataWorks中添加AnalyticDB for MySQL数据源
详情请参见配置AnalyticDB for MySQL数据源。
DataWorks出于安全考虑,对建立连接的服务进行了安全控制,您需要将AnalyticDB for MySQL数据库的地址和端口加添加到白名单中。
步骤二:在DataWorks中创建AnalyticDB for MySQL任务
登录DataWorks控制台,单击对应项目栏中的进入数据开发。
右键单击业务流程新建一个流程,本教程新建业务流程adb_task。
在业务流程下新建数据开发节点AnalyticDB for MySQL,节点名为finished_orders。
单击finished_orders,选择数据源设置为adb_source,然后执行以下SQL。
任务一:从orders表清洗出已经完成的订单:
o_orderstatus = 'F'
,并将其写入finished_orders表。use adb_demo;
insert into finished_orders
select O_ORDERKEY, O_TOTALPRICE
from orders
where O_ORDERSTATUS = 'F';
可参考上述步骤,新建数据开发节点high_value_finished_orders。
任务二:从finished_orders中查询出总价大于10000的订单:
o_totalprice > 10000
,并将其写入high_value_finished_orders表。use adb_demo;
insert into high_value_finished_orders
select * from finished_orders
where O_TOTALPRICE > 10000;
步骤三:配置任务依赖
DataWorks支持按照时间、依赖关系的任务触发机制,支持多个任务按照指定的依赖关系在指定的时间运行。详情,请参见调度配置。
例如,每天凌晨2点运行finished_orders任务:
finished_orders任务成功运行之后再运行high_value_finished_orders任务:
步骤四:任务发布
任务配置好之后,就可以进行任务的发布和运维,详情,请参见任务管理。
任务发布之后,可以查看待发布的任务。
任务发布成功之后,您就可以进入任务运维页面查看任务,进行运维操作。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论