本文主要是介绍ETL工具:Kettle(Spoon)实现跨库跨表迁移不同表结构的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在项目重构,重构过程中对数据库旧表进行重新设计,去掉一些无用的字段,且新表加入了一些新的字段,现在需要把旧的数据迁移到新的表中,经过一番的折腾,最终选择Kettle(Spoon)实现跨库跨表,迁移不同表结构的数据,此文希望对有类似需求的小伙伴提供一点帮助。
一、Kettle(Spoon)安装及配置
-
JDK环境配置,不会配置请自行百度JDK配置教程。
-
Kettle(Spoon)安装
直接进入Kettle(Spoon)官网下载最新版本,官网地址:https://community.hitachivantara.com/docs/DOC-1009855 。 -
配置 Kettle(Spoon)运行环境
创建用户变量,变量名输入:PENTAHO_JAVA_HOME;
变量值输入jdk的安装路径。
-
解压下载好的 Kettle(Spoon)工具
-
导入mysql连接驱动(这里以mysql为例)
在解压路径的lib文件夹下加入mysql驱动包即可。 -
启动 Kettle(Spoon)
解压文件之后,双击Spoon.bat即可启动 Kettle(Spoon)。
启动后的Kettle(Spoon)。
二、Kettle(Spoon)迁移不同库不同表结构的数据
-
建立转换
-
建立源数据库连接
-
再次建立目标数据库连接
-
新建表输入
从左边面板“核心对象”中选择“输入—>表输入”,鼠标拖拽到右边面板中,如图所示: -
双击表输入,编辑源库信息
-
阅览一下连接是否正确
如上图:若出现报错提示,需要在Spoon的数据库连接中,打开选项,加入一行命令参数:
zeroDateTimeBehavior=convertToNull,操作如下:
-
新建表输入
在“核心对象”中,选择“输出—>插入/更新”,鼠标拖动至右边面板。
-
编辑插入/更新
首先将表输入连接插入/更新(选中表输入,按住shift键,拖向插入/更新)。
然后,双击插入/更新进行编辑,如图:
删除更新字段中目标表没有的字段。
源表与目标表中字段意义相同,但是字段名不同的字段可以手动进行映射。
-
执行数据迁移
数据迁移完成。
这篇关于ETL工具:Kettle(Spoon)实现跨库跨表迁移不同表结构的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!