将在线数据加载到阿里云Greenplum

  1. 云栖社区>
  2. 博客>
  3. 正文

将在线数据加载到阿里云Greenplum

pentahochina 2016-10-18 11:07:02 浏览2510
展开阅读全文

本文说明如何设计一个 ETL 作业以便将在线关系数据库里的数据,加载到阿里云的Greenplum 数据库中,如何调度和监控该ETL 作业的日常运行。

本文使用的软件是开源ETL 工具软件 Kettle 5.x,以及基于Kettle的傲飞数据整合平台,该平台可以用来Kettle作业的调度、监控等功能、并可以完成数据源管理等功能。

软件下载安装

1.Java 1.6 1.7

2.傲飞数据整合平台的下载地址(包含了 Kettle和服务端):http://pan.baidu.com/s/1cmSPEe

解压缩即可安装,平台的安装配置方法见下载文档内的《傲飞数据整合平台使用说明书》

3.安装 Mysql 数据库 5.1 或以上版本,并以 UTF-8 编码新建一个数据库 etl_platform,

 

上述软件都要事先安装部署到阿里 ECS 上。

ETL 作业配置

服务端配置

资源库配置

资源库是Kettle 里保存作业的数据库。首先登陆傲飞数据整合平台(默认用户名,密码 admin/admin),在傲飞数据整合平台的【资源库管理】里,新创建一个资源库,资源库的数据库名称使用事先创建的 etl_platform 数据库,注意数据库地址要用外网的ip地址,因为将来kettle 客户端会连接该ip 地址。

6b198613e5a5d764fab796eaf7cfdb749c7b3e1b 

数据库配置

选择主窗口左侧菜单的【数据源管理】里的【本地数据库管理】,或者直接在登陆首页中选择【本地数据库】快捷图标。如下图:

a06aa77968804a525de45ba60c130cff3d9783b3 

 

 

选择【新增】,在【新增数据源信息】窗口中设置两个数据源,一个是原数据源,另一个是要加载到的阿里云Greenplum 数据源,数据源配置参考如下图所示:

2b4c32394eca8db032eeb5b54b62a23d9c1d8151 

 

 

7e7af4d06e1f9fec658ae08ee8f46a01d4fbd3ff 

 

 

 

 

 

客户端设置

登陆

双击spoon.bat 文件,启动spoon,在登陆窗口中输入傲飞数据整合平台的URL ,用户名和密码,如下图:

ca796e749ad663720da68a5ba299d2f89ba85c40 

选择资源库

如果登陆成功,会出现【资源库连接】选择框,这里选择我们刚创建的资源库,如下图:

a7e55bf502ac61e9f1bb9facb24911c76b40cd37 

设计转换

进入资源库后,在设计窗口中选择【文件】->【新建】->【转换】,如下图:

87250a5aa067fd7650322effc15895930de408d0 

SQL 方式加载

如果要使用SQL 方式加载,要拖拽【表输入】步骤和【表输出】步骤到画布上,并连线(按住Shift键,同时移动鼠标),在表输入步骤中配置SQL 语句,在表输出步骤中配置输出表的名称即可,如下图:

90fd993f642a1ed7190552695219fbeab7aadab5 

fc7f66280aa5a7e82d21f3c1a8fcd7cf15045bc1 

如果需要在输入和输出之间做各种数据格式转换,数据清洗,拆分,组合等各种操作,要使用Spoon 设计器里提供的各种步骤(连数成金论坛有 Kettle 培训课程)

 

使用Copy 方式加载

当大量数据时,可以使用 Greenplum 批量加载】步骤完成加载,Greenplum 批量加载使用了Copy 命令方式加载,加载速度比SQL 方式快。【Greenplum 批量加载】步骤的配置如下图所示:

bb793fd6feb89e158b5fe96344b3f7f59162bb31 

 

 

使用OSS 方式加载

OSS 阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。目前Kettle 对OSS的支持还在开发中。  不过目前用户也可以手动将文件上传到 OSS 服务中,使用类似下面的SQL 创建一个基于OSS的外部表。

1.create READABLE external table ossexample

2.(date text, time text, open float, high float,

3.low float, volume int) 

4.location('oss://oss-cn-hangzhou.aliyuncs.com

5.filepath=osstest/example.csv id=XXX

6.key=XXX bucket=testbucket') FORMAT 'csv'

7.LOG ERRORS SEGMENT REJECT LIMIT 5;

 

关于OSS 的加载,请参考:https://help.aliyun.com/document_detail/35457.html

 

 

保存转换:

选择【文件】->【另存为】 ,在【转换属性】窗口中,设置转换名称:从原系统到目标系统的转换,在【目录】输入框选择要保存的资源库目录,如下图

3d34a20b093f9696bf6ed9169082221b9bb88ad1 

点【确定】后,把作业保存到资源库中。

005c46d6b630a00067015a4e9512e1c3faa7a43f 

注意:

如果客户端长时间不操作,服务端会自动断开和客户端的连接。 此时从客户端保存到服务端时可能报告数据库连接错误。如果发生此类错误,只需先资源库连接,再重新连接资源库即可。

调度

在【周期调度】里选择【增加普通调度】选项,在【新增调度】窗口里选择作业“从原系统到目标系统的转换”,如下图:

a7e2a4f179166ff6a7fc4b7ec89f8213c7bd6e0d 

 

选择运行方式【本地运行】,并设置调度方式为每天的16:00 运行,如下图:

0fb1b36ef24915221baafae3665b04ee68f77c04 

运行

新增加的调度可以按照设置好的调度方式运行,也可以通过点击【运行】按钮,手动运行,如下图:

8bfa6242a68e55275976526beec69d487e72a21b 

 

 

监控

94ee218bc15e5053e68954c2ede48419c3995a45 

无论手工还是调度运行,在监控列表里都会有作业的运行状态,运行时间,错误日志等信息。

 

待续

关于如何将企业内网数据库里的数据,加载到阿里云的greenplum 中,下文继续。

 

网友评论

登录后评论
0/500
评论