博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 Dataworks 实现 AnalyticDB for PostgreSQL 上的 ETL 作业调度
阅读量:5902 次
发布时间:2019-06-19

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

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

申请DataWorks+ADB for PG

首先需要有一个ADB for PG的实例服务,如果还没有开通ADB for PG,请先。还需要开通DataWorks服务,然后您可以在您对应的ADB for PG服务群里面找我们任何一位同学开通一下ADB for PG + DataWorks的试用资格(目前这个功能还处于邀请试用的阶段,没有完全放开)。

如果还没有ADB for PG的服务群,请开工单给我们

ADB for PG数据准备

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

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

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

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

在DataWorks创建ADB for PG任务

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

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

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

选择“连接串模式”

image.png                             

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

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

image.png                             

具体配置如下

image.png                             

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

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

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

如下图

image.png                             

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

insert into high_value_finished_ordersselect * from finished_orderswhere O_TOTALPRICE > 10000;

配置任务依赖

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

image.png                             

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

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

任务发布

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

选择我们刚刚提交的任务,我们就可以发布了:image.png                             

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

image.png                             

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

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

你可能感兴趣的文章
ASP.NET中 DataList(数据列表)的使用前台绑定
查看>>
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
SILK 的 Tilt的意思
查看>>
Html学习笔记3
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
ubuntu下安装libxml2
查看>>
nginx_lua_waf安装测试
查看>>
WinForm窗体缩放动画
查看>>
JQuery入门(2)
查看>>
linux文件描述符
查看>>
传值引用和调用引用的区别
查看>>
hyper-v 无线网连接
查看>>
Python3.7.1学习(六)RabbitMQ在Windows环境下的安装
查看>>
Windows下memcached的安装配置
查看>>
ubuntu: firefox+flashplay
查看>>
常见的海量数据处理方法
查看>>