在我们开发的过程中,经常碰到多个系统之间需要相互抽取数据的问题,以往我们可以通过写Webservices接口,或者FTP共享来完成,但是这样会存在工作量大,不便于维护,性能不高的问题。今天介绍一款常用的数据抽取工具—-Kettle。
Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。下面我们使用一个Demo程序介绍下其常用组件。
需求
有一个社交类的产品,进行了一次架构变更,数据库表结构模型发生变化了,从老系统升级到新系统时,要把老系统中数据迁移到新系统的数据库里。
下面我们拿群组表数据做个Demo演示数据迁移过程。
1. 现状:
老系统
群组表:group
群组成员表:user_group
新系统
群组表:group_分表,
群组成员表:group_members_分表
我的群组表:mygroups_分表
2. 步骤逻辑梳理
old:老系统
new:新系统
查询群组(old)->创建群组,群组成员,我的群组分表(new)->插入群组数据(new)->插入群组成员数据(new)
数据迁移
1.下载工具