DataWorks调度XIHE SQL
DataWorks是基于MaxCompute作为计算和存储引擎的用于工作流可视化开发和托管调度运维的海量数据离线加工分析平台,支持按照时间和依赖关系的任务全面托管调度。AnalyticDB for MySQL用户可以通过DataWorks强大的任务托管调度、任务依赖关系管理、任务运维功能等,调度和管理AnalyticDB for MySQL任务。
目的
任务调度中一个重要的功能是任务之间的依赖,为演示该功能,本教程会在DataWorks中创建两个AnalyticDB for MySQL任务。表与任务之间的关系如下图所示。
任务一
从
orders
表清洗出已完成的订单:o_orderstatus = 'F'
,并将其写入finished_orders
表。任务二
从
finished_orders
中查询总价大于10000的订单:o_totalprice > 10000
,并将其写入high_value_finished_orders
表。
前提条件
根据数仓版的入门使用流程,完成创建实例、设置白名单等准备工作。
说明AnalyticDB for MySQL和DataWorks所属地域相同。
如果您在DataWorks中通过AnalyticDB for MySQL的外网地址连接AnalyticDB for MySQL,需要先申请外网地址,然后将DataWorks白名单添加到AnalyticDB MySQL白名单中。
如果您在DataWorks中通过AnalyticDB for MySQL的VPC地址连接AnalyticDB for MySQL,需要先在DataWorks中添加独享资源组模式并且独享资源组中的VPC与AnalyticDB for MySQL所属VPC相同。
本教程将使用
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) )DISTRIBUTED 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 3.0数据源。
DataWorks出于安全考虑,对建立连接的服务进行了安全控制,您需要将AnalyticDB for MySQL数据库的连接地址和端口加添加到白名单中。
步骤二:在DataWorks中创建AnalyticDB for MySQL节点
具体操作,请参见AnalyticDB for MySQL。
步骤三:配置任务依赖
DataWorks支持按照时间、配置同周期调度依赖的任务触发机制,支持多个任务按照指定的依赖关系在指定的时间运行。
例如,每天凌晨2点运行finished_orders
任务。finished_orders
任务成功运行之后再运行high_value_finished_orders
任务。
步骤四:任务发布
任务配置好之后,就可以进行任务的发布和运维,详情请参见发布任务。
任务发布之后,可以查看待发布的任务。
任务发布成功之后,您就可以进入任务运维页面查看任务并进行运维操作。