目录

kettle-数据库间的数据迁移工具

kettle–数据库间的数据迁移工具

一、kettle 介绍

kettle 是纯 java 开发,开源的 ,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,通过图形化界面的配置,可以实现数据迁移,并不用开发代码。也有命令脚本还可以二次开发。

的官网是

二、安装

这边以 windows 下的配置为例,linux 下配置类似。

1、jdk 安装及配置环境变量

由于 kettle 是基于 java 的,因此需要安装 java 环境,并配置 JAVA_HOME 环境变量。

建议安装 JDK1.8 及以上,7.0以后版本的 kettle 不支持低版本 JDK。

2、下载 kettle

从 官网 下载 kettle ,解压到本地即可。

3、下载相应的数据库驱动

由于 kettle 需要连接数据库,因此需要下载对应的数据库驱动。例如 MySQL 数据库需要下载 mysql-connector-java.jar,oracle 数据库需要下载 ojdbc.jar。下载完成后,将 jar 放入 kettle 解压后路径的 lib 文件夹中即可。

注意:本文基于 pdi-ce-7.0.0.0-25 版本进行介绍,低版本可能有区别。

三、启动

双击 Spoon.bat 就能启动 kettle 。

四、转换

转换包括一个或多个步骤,步骤之间通过跳(hop)来连接。跳定义了一个单向通道,允许数据从一个步骤流向另一个步骤。在Kettle中,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。

1、打开 kettle,点击 文件->新建->转换。

https://i-blog.csdnimg.cn/blog_migrate/2bed332a04f206f35fae6f6b4357d83f.png

2、在左边 DB 连接处点击新建。

https://i-blog.csdnimg.cn/blog_migrate/b83c5a94785283a505da596c15f32c4d.png

3、根据提示配置数据库,配置完成后可以点击测试进行验证,这边以 MySQL 为例。

https://i-blog.csdnimg.cn/blog_migrate/d58b00a6d3621a7c463c115959f3deb9.png

4、在左侧找到表输入(核心对象->输入->表输入),拖到右方。

https://i-blog.csdnimg.cn/blog_migrate/04c4231070f032f39b3081c42c698eea.png

5、双击右侧表输入,进行配置,选择数据源,并输入 SQL。可以点击预览进行预览数据。

https://i-blog.csdnimg.cn/blog_migrate/c9e17718308ec244ae9a7a34f893e281.png

https://i-blog.csdnimg.cn/blog_migrate/bdc932dfced5d4e447aa00e914ee74e4.png

6、在左侧找到插入/更新(核心对象->输出->插入/更新),拖到右方。

https://i-blog.csdnimg.cn/blog_migrate/64be4a55257ed4e437fff19f67131e21.png

7、按住 Shift 键,把表输入和插入/更新用线连接起来。

https://i-blog.csdnimg.cn/blog_migrate/16e03c035c6f9c838111b42ffdcffe58.png

8、双击插入/更新进行配置。

https://i-blog.csdnimg.cn/blog_migrate/19c85c6a17ad7fad717eb580c8216529.png

9、点击运行,就可以运行这一个转换。

https://i-blog.csdnimg.cn/blog_migrate/05fb4efcc30281317bc6b6e5ceda5b12.png

10、运行结束后,我们可以在下方看到运行结果,其中有日志,数据预览等,我们可以看到一共读取了多少条数据,插入更新了多少数据等等。

https://i-blog.csdnimg.cn/blog_migrate/14b445d841fe594f139ef45c99cabfad.png

这样就完成了一个最简单的转换,从一个表取数据,插入更新到另一个表。

五、作业

如果想要定时运行这个转换,那么就要用到作业。

1、新建一个作业。

https://i-blog.csdnimg.cn/blog_migrate/8f232df0767845225b42d721623e8efe.png

2、从左侧依次拖动 START 、转换、成功到右侧,并用线连接起来。

https://i-blog.csdnimg.cn/blog_migrate/8076b17b15ac6a10be14eaafd26295e9.png

3、双击 START,可以配置作业的运行间隔,这边配置了每小时运行一次。

https://i-blog.csdnimg.cn/blog_migrate/4b674c36837cd3f798e8988c9fe7c5c7.png

4、双击转换,选择之前新建的那个转换。

https://i-blog.csdnimg.cn/blog_migrate/97018f9213f6c98994e7ea7ef4f74e53.png

5、点击运行,就能运行这次作业,点击停止就能停止。在下方执行结果,可以看到运行的日志。

https://i-blog.csdnimg.cn/blog_migrate/adfdfefdedfc56ba7a9d93e23a9d2865.png

这样就完成了一个最简单的作业,每隔1小时,将源表的数据迁移到目标表。