etl工具mysql数据迁移_开源ETL工具kettle--数据迁移

背景 由于项目的需求,需要将数据从Oracle迁移到MSSQL,不是简单的数据复制,而是表结构和字段名都不一样,甚至需要处理编码规范不一致的情况,如下图所示 注意:Oracle和MSSQL中的同名表的字段名是不相同的 如果要是采用手工SQL语句操作的话会很麻烦,需要

背景

由于项目的需求,需要将数据从Oracle迁移到MSSQL,不是简单的数据复制,而是表结构和字段名都不一样,甚至需要处理编码规范不一致的情况,如下图所示

a11d9c3aef9669f85cdc8398f38b1ea3.png

注意:Oracle和MSSQL中的同名表的字段名是不相同的

如果要是采用手工SQL语句操作的话会很麻烦,需要考虑

Oracle和MSSQL SQL语法的差异数据从抓取--转化--加载迁移的过程安排字段的映射外键的约束目的表是否为空等等许多问题

而这些问题对于kettle来说都不叫事,下面就为大家介绍如何使用强大的kettle实现数据的迁移

实战

Kettle翻译成中文是“水壶”,这个名字很形象,不管你向水壶当中添加了哪些液体或者可溶物质从壶嘴里面出来的都是均匀统一的液体。对于数据加载就是:不管数据源采用什么样的格式,Excel、datatable、纯文本或者是xml,kettle都能转化成统一的格式进行处理,并且能够更具用户的需要导出不同的格式

下面我们就用kettle来解决上述问题

首先介绍一下kettle的两个工作单元:transformation和job

transformation:实现数据的转化

job:对transformation根据依赖关系组织执行顺序,还可以对job的执行进行条件判断和预处理,用户还可以设 置job的执行时间,比如每天的9:00开始执行job,这和持续构建中的job意思一样。

看一下这款神奇的软件长的什么样子

a0a4f0e9f2223b3df87b6dd192c9f2d7.png

首先我们创建一个transformation,命名:tr_stu_and_class,如下图所示,目的是先将学生和班级的信息从Oracle迁移到mssql

74c7a36a29940c99cd92c26cbbaeb165.png

然后创建第二个transformation,命名tr_stuclasslink,如下图所示,目的是将学生和班级的关系从oracle迁移到mssql

05880e8c8881694da677af6cea5e093b.png

因为第三张关系表TB_STUCLASSLINK和TB_STUDENT、TB_CLASS存在外键依赖关系,所以必须先执行tr_stu_and_class再执行tr_stuclasslink。所以我们需要一个job(命名jb_orcl2mssql)来组织他们的执行顺序,如下图所示

ca39a217e66e342c50e1df20063e89e2.png

接下来运行job就可以在瞬间实现数据迁移

224915e66221a61a9f199e42a94fe854.png

总结

在transformation中可以自定义字段的映射关系(如从oracle表中的哪一列迁移到mssql表中的哪一列),可以指定迁移哪些列

利用图形化的模块化的方式,更加高效和直观

如果是大批量复杂的数据迁移,使用kettle可以更好的组织数据迁移

创建的transformation和job都会被保存起来,什么时候需要迁移数据,点一下按钮就ok啦

怎么样是不是很简单很强大

补充

kettle是开源的

kettle几乎支持所有数据库、Excel和xml等常见的数据格式的迁移转换。你能想到的它几乎都支持

c7583dc66bba85ede4efd3ba0b5ef876.png

数据迁移只是kettle功能中很小的一部分,kettle不仅是ETL工具更是强大的BI工具,有兴趣的童鞋们可以研究一下

附下载地址

http://sourceforge.net/projects/pentaho/files/Data%20Integration/5.0.1-stable/pdi-ce-5.0.1.A-stable.zip/download

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值