使用Kettle7将Oracle11gR2、SQLServer2005的数据同步到MySQL中

背景

项目需要,将SQLServer2005的数据库里的部分表、Oracle11gR2里的部分表定时同步到MySQL上。

工具准备

百度云盘下载,Kettle7已经整合好所需的jar包:

链接:http://pan.baidu.com/s/1c4j7jg 密码:qzs4

Oracle官网下载Oracle JDBC jar包:

http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

环境准备

Windows Server2008R2 x64,安装好JDK8

需求分析

客户的SQLServer数据库里有2张表需要每日同步到MySQL数据库上,Oracle数据库里有2张表需要每日同步到MySQL数据库上。

MySQL数据库上已经根据客户的数据库表结构做微调并创建。

总体思路:2个作业分别做sqlserver、oracle数据同步工作,4个转换简单处理表数据同步。

使用Kettle7将Oracle11gR2、SQLServer2005的数据同步到MySQL中_第1张图片
作业


使用Kettle7将Oracle11gR2、SQLServer2005的数据同步到MySQL中_第2张图片
转换

操作方法

• 新建转换

1、在“主对象树”——“DB连接”里新增连接,对应Oracle、SQLServer、MySQL。

其中(1)创建Oracle连接时,数据库名称就是SID。

(2)创建SQLServer连接时,需要先将SQLServer开启远程连接,参考:https://jingyan.baidu.com/article/fec4bce226a264f2618d8ba5.html

2、打开“核心对象”

从“输入”里添加“表输入”,从“输出”里添加“插入/更新”。

“表输入”里配置好数据库连接、获取SQL查询语句。

“插入/更新”里配置数据库连接、目标表,然后获取字段、获取和更新字段。

• 新建作业

从“通用”里添加START、转换、成功,从“邮件”里添加发送邮件,从“应用”里添加中止作业。

简单配置后即可执行使用。

总结

总体上说,Kettle作为免费的ETL工具,功能非常实用,自带的定时任务也是方便的很,如下图,设定好重复,按天定时执行就OK了。

使用Kettle7将Oracle11gR2、SQLServer2005的数据同步到MySQL中_第3张图片

此外对于这个需求还能做的更通用一些,比如用下图的转换流程,动态的获取表名,然后逐个导入到新库里。

不过没那么多时间深入研究,本文的做法简单实用,就行了。

使用Kettle7将Oracle11gR2、SQLServer2005的数据同步到MySQL中_第4张图片
动态转换

你可能感兴趣的:(使用Kettle7将Oracle11gR2、SQLServer2005的数据同步到MySQL中)