对于我们这个系统。有三个方案。一是使用厂商的api执行。二是自己写代码跑。三是使用KETTLE移植。
这个说不上哪个好,哪个不好。我都做了尝试。
- 方案一实现简单,就是按照api文档,简单说下对方提供的的方案,大致意思就是使用JDBC连接旧的数据库,然后再新的系统下执行。就是一个查询,一个保存。但是他封装了保存和生成方法。这也算是他的核心。这个报错了只能找厂商协调。过程可想而知的不爽。根本听不懂所云。
- 方案二我是是用多数据源切换,也是一个查询导出,保存导入的过程。这个也是做了一天,查了很多自恋。这里面有几个难点一个是个多数据源切换,并且配置多个分页插件(使用的是MyBatis)。另外就是使用多线程执行并且有个字段映射这里使用的是EasyMapper这个很赞请有必要看看他的源码。这个我把多数据源配置放到码云。https://gitee.com/lien6o/oracle2mysql
- 方案三是很中意的方案,简单,除去了自己映射字段。而且效率高。(这里数据量不大,150张表。单表不超过4w条数据)
KETTLE第一次使用。所以记录下:
一、下载安装:
还是去百度云找个资源吧,其他的实在慢的不行不行的。可以留言我。
二、jdk环境
都是搞java的不赘述了。
三、使用
1、文件新建 转换
2、DB连接
连接需要注意驱动,我在使用过程中Oracle的驱动自带。MySql需要下载。
经过测试: 把mysql的驱动放到\pdi-ce-5.2.0.0-209\data-integration\lib下或\pdi-ce-5.2.0.0-209\data-integration\libswt\win64
重启之后即可解决这个问题。
3、绘制流程
在核心对象分别搜索表输入,字段选择,表输出。
建立下图。这里需要使用 shift 创建连线。
双击 表输入 选择编辑 选择数据库连接 这里的SQL可以自定义。
双击表输出 设置表输出信息
勾选指定数据库字段 获取字段 输入字段映射 会高亮 进行选择
双击 字段选择
点击 列映射 可以进行配置。底下的猜一猜很有意思。
开始 转换检查结果 注意这个标志 眼镜标志右面第三个。
勾选 显示成功结果
然后就可以开始了
备注:当遇见二进制数据移植时注意
选为是;因为:二进制加载类型是在加载时创建的,打开了懒惰的转换。
总结:kettle的功能强大。还有其他很多功能。数据移植只是其中的一个使用。