开发者社区> chasewu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用 Dataworks 实现 AnalyticDB PostgreSQL版上的 ETL 作业调度

简介: DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于AnalyticDB PostgreSQL版(原HybridDB for PostgreSQL,简称ADB PG版)的支持,意味着所有ADB PG版的客户可以获得任务开发、任务依赖关系管理、任务调度、任务运维.
+关注继续查看

DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于AnalyticDB PostgreSQL(原HybridDB for PostgreSQL,简称ADB PG版)的支持,意味着所有ADB PG版的客户可以获得任务开发、任务依赖关系管理、任务调度、任务运维等等全方位强大的能力,进一步增强ADB PG版的ETL能力,今天就给大家介绍一下如何使用DataWorks来调度ADB PG版的脚本任务。

ADB PG数据准备

为了演示如何在DataWorks上调度ADB PG版的任务,我们后面会用到一些测试数据,这里我们用著名的TPCH的测试数据集, 这仅仅是用来测试。数据已经导入ADB PG版,具体导入步骤,可以参考ADB PG版的导入文档。

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

任务一: 我们从orders表清洗出已经完成的订单: o_orderstatus = 'F' , 并写入 finished_orders 表

任务二: 再从 finished_orders 表里面找出总价大于10000的订单: o_totalprice > 10000, 并写入 high_value_finished_orders 表

在DataWorks创建ADB PG版任务

在开通 DataWorks+ADB PG版 的调用功能后,我们可以在DataWorks数据开发IDE中创建AADB PG版任务,如下图:

244f7863f7bbbd4266c955d80808bc2945f80f59

我们把第一个任务命名为: finished_orders , 点击确定会进入一个SQL编辑的页面,要写ADB PG版 SQL一定要告诉DataWorks我们写的SQL运行在哪个ADB PG版的服务上,这个在DataWorks里面被包装成了"数据源"的概念:

f62e70e265870b05fd33cf905bde7811ea1ffcee

刚进来时候没有数据源,需要点击“新建数据源”

ffcc3dfd482b8fe59af6309a9c314c66e0c67428

选择“连接串模式”

69d56dbfa3a1eb2daceedaeed42d55d7ec8d1322

填写必要的信息后点击“完成”。

DataWorks为了安全的考虑,对可以连接的服务进行了安全控制,因此我们需要把我们要连的ADB PG版的地址+端口加到白名单里面去,这个配置是在DataWorks工作空间的配置里面:

05bff6e25c9839b3656723451ea527f8c9c26c11

具体配置如下

b4160244930980e695ff2f52144423efdd926433

** 这里需要注意一下,工作空间配置只有工作空间管理员才有权限

做了这么多之后,我们终于可以在编辑页面看到ADB PG版的数据源了,下面我们在 finished_orders的任务里面填入如下SQL, 并点击执行:

insert into finished_orders
select O_ORDERKEY, O_TOTALPRICE
from orders 
where O_ORDERSTATUS = 'F';

如下图

3e0bd690a7e7e7aa3022b8f182ec9688a86f2b94

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

insert into high_value_finished_orders
select * from finished_orders
where O_TOTALPRICE > 10000;

配置任务依赖

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

751e5b70d45894bd65b442c8fa58b888e5512947

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

584aa42ecfc4e740fddad1e75b608e1125a5aead

如果自动解析不到,可以手动指定上游依赖节点

bfc80cf8ecdff68db5fce5c1a601a00fb97bf8bf

任务发布

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

d37672ae2e75a5d609b39cf10a5c560def450b52

在发布列表页面可以查看我们刚刚的发布是否成功:

085472f4192f119398a345bbc08c46b66273b1a7

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

700a5e83d9b0b6805b21441ad235384c8c06ca2b

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
小微企业阿里云最佳实践系列(一):ECS 服务器与 RDS 数据库
本博文主要写给创业团队、技术团队人数 < 5 人、没有专业运维等小微企业作为参考,需要掌握基础的服务器管理、软件开发等经验。 博文主要内容 本博文主要使用传统服务器架构与云服务架构进行横向对比,解决企业在搭建软件系统中所遇到等问题和痛点,以及为小微企业降低成本的同时尽可能提高软件系统的高可通、低延迟、高规范、低人力投入。
1257 0
【阿里云新品发布·周刊】第11期:云数据库 MySQL 8.0 重磅发布,更适合企业使用场景的RDS数据库
云数据库MySQL 8.0 升级发布会2019年5月29日15时,阿里云云数据库 MySQL 8.0 重磅发布,2倍以上性能提升,SQL窗口函数、JSON扩展语法等企业级新功能震撼上市!主要从技术层面介绍MySQL 8.0的优势和与过去版本对比。
703 0
ecs与数据库(rds,redis,mongodb,memcached)连通性判断流程图
由于文档https://yq.aliyun.com/articles/164796内容较多,不方便查看,可以参考流程图来初步判断连通性是否正常
170 0
【云栖号案例 | 新零售】数据库RDS为跨境电商管理平台支撑亿级流水
智赢科技每天面对用户修改价格库存对更新即时性要求高,索引和表结构变更不易。RDS支持数组和分区,降低中间表的数量又可以自动分区,加快开发速度。
1778 0
【云栖号案例 | 物联网&人工智能】RDS为慧联无限数据库运维减负
业务持续增长没有专业运维人员,导致 MySQL 不堪重负。上云后RDS数据库实现了纵向弹性扩缩容,提供自助服务能力,短期内不需要专业运维人员,控制了成本。
1639 0
你知道数据库RDS手动续费的方法有几种么?
包年包月实例有到期时间,如果到期未续费,会导致业务中断甚至数据丢失,建议您及时手动续费。
698 0
+关注
chasewu
专注于分布式在线分析型数据库
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《DataWorks 数据集成实时同步》
立即下载
DataWorks调度最佳实践
立即下载
PostgresChina2018_肖斐_PostgreSQL数据库时空引擎Ganos
立即下载