Kettle实现数据迁移

下载地址:http://mirror.bit.edu.cn/pentaho/Data%20Integration/

(JDK1.8才可支持Kettle7.0以后的版本)

配置环境变量,启动程序

kettle mongo表数据导入到mysql kettle数据迁移_Oracle

(变量值根据文件目录而定)

运行Spoon.bat启动程序

单表数据迁移

  1. 进入主界面,左上角点击文件-新建-转换保存为demo.ktr
  2. 左侧选择核心对象面板。”在输入文件夹下选择表输入并把它拖动到右侧编辑区。

kettle mongo表数据导入到mysql kettle数据迁移_MySql_02

  1. 双击编辑区的表输入图标,编辑数据输入来源。点击数据库连接右侧的新建按钮,按demo背景中的要求,配置数据库参数。配置后点击测试

kettle mongo表数据导入到mysql kettle数据迁移_Oracle_03

如果报错找不到驱动包,复制oracle的驱动jar文件到ETL(Kettle)的lib目录下(我这里使用的是jdbc7.jar)

  1. 点击获取SQL查询语句”(等待时间较长),选择要迁移的表,点击确定

kettle mongo表数据导入到mysql kettle数据迁移_数据库_04

选择

kettle mongo表数据导入到mysql kettle数据迁移_Oracle_05

  1. 重复以上步骤2,在输出文件夹下选择表输出并把它拖动到右侧编辑区。连线表输入表输出

kettle mongo表数据导入到mysql kettle数据迁移_数据迁移_06


  1. 双击编辑表输出,填入目标表名

kettle mongo表数据导入到mysql kettle数据迁移_Oracle_07

要迁移的目标表不能已存在于目标数据库中,除非是表结构相同。

  1. 点击 执行SQL 语句列表,选择执行SQL (已有数据库无需此步骤)

kettle mongo表数据导入到mysql kettle数据迁移_MySql_08

  1. 点击 “运行转换”,直接选择启动

kettle mongo表数据导入到mysql kettle数据迁移_MySql_09

之后就能看到执行结果

kettle mongo表数据导入到mysql kettle数据迁移_数据迁移_10

这里仅是对数据进行迁移,主键、外键、关联信息不会迁移过去,需要后期去目标数据库配置。

  1. 当出现数据中文乱码的时候

kettle mongo表数据导入到mysql kettle数据迁移_数据迁移_11

尝试去掉允许简易转换,再进行预览

kettle mongo表数据导入到mysql kettle数据迁移_Oracle_12

查看Oracle数据库的编码格式select userenv('language') from dual;

多表数据备份

当要对数据库多张表进行迁移操作的时候,Kettle提供自动生成流程图功能。

  1. 选择工具-向导-复制多表向导
  2. 选择输入的数据库与输出的数据库

kettle mongo表数据导入到mysql kettle数据迁移_数据库_13

  1. 选择要复制的表
  2. 选择Job File文件的存放路径,随意填写(因为可能会生成多个文件,建议放在文件夹内)

kettle mongo表数据导入到mysql kettle数据迁移_Oracle_14

  1. 点击Finish,等待约20s即可生成相应的迁移流程图,执行即可完成迁移

kettle mongo表数据导入到mysql kettle数据迁移_MySql_15