记一次使用kettle数据迁移

对于咱们这个系统。有三个方案。一是使用厂商的api执行。二是本身写代码跑。三是使用KETTLE移植。java

这个说不上哪一个好,哪一个很差。我都作了尝试。mysql

  • 方案一实现简单,就是按照api文档,简单说下对方提供的的方案,大体意思就是使用JDBC链接旧的数据库,而后再新的系统下执行。就是一个查询,一个保存。可是他封装了保存和生成方法。这也算是他的核心。这个报错了只能找厂商协调。过程可想而知的不爽。根本听不懂所云。
  • 方案二我是是用多数据源切换,也是一个查询导出,保存导入的过程。这个也是作了一天,查了不少自恋。这里面有几个难点一个是个多数据源切换,而且配置多个分页插件(使用的是MyBatis)。另外就是使用多线程执行而且有个字段映射这里使用的是EasyMapper这个很赞请有必要看看他的源码。这个我把多数据源配置放到码云。https://gitee.com/lien6o/oracle2mysql
  • 方案三是很中意的方案,简单,除去了本身映射字段。并且效率高。(这里数据量不大,150张表。单表不超过4w条数据)

KETTLE第一次使用。因此记录下:git

1、下载安装:sql

仍是去百度云找个资源吧,其余的实在慢的不行不行的。能够留言我。数据库

2、jdk环境api

都是搞java的不赘述了。多线程

3、使用oracle

一、文件新建 转换app

 

二、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

 

重启以后便可解决这个问题。

 

三、绘制流程

在核心对象分别搜索表输入,字段选择,表输出。

创建下图。这里须要使用 shift 建立连线。

双击 表输入 选择编辑 选择数据库链接 这里的SQL能够自定义。

双击表输出 设置表输出信息

勾选指定数据库字段 获取字段 输入字段映射 会高亮 进行选择

双击 字段选择

点击 列映射 能够进行配置。底下的猜一猜颇有意思。

开始 转换检查结果 注意这个标志 眼镜标志右面第三个。

勾选 显示成功结果

而后就能够开始了

备注:当碰见二进制数据移植时注意

选为是;由于:二进制加载类型是在加载时建立的,打开了懒惰的转换。 

总结:kettle的功能强大。还有其余不少功能。数据移植只是其中的一个使用。

相关文章
相关标签/搜索