kettle7.0数据库迁移(Postgresql迁移到oracle)
一、说明
1.下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip/download?use_mirror=nchc
2.向pdi-ce-7.1.0.0-12\data-integration\lib目录下添加objdbc5-0.0.1.jar和mysql-5.1.46.jar
3.双击pdi-ce-7.1.0.0-12\data-integration\Spoon.bat文件打开spoon工具
4.实现流程:获取表名->表数据抽取
5.整套流程分为:两个作业,三个转换。使用到的trans插件:表输入、复制记录到结果、从结果获取记录、设置变量、表输出。
二、所需软件
- kettle7.0
- JDK1.8
- Oracle驱动jar包
- postgresql驱动jar包
- 具体实现
3.1 启动spoon.bat
注:启动时若闪退,请检查系统配置的jdk版本
3.2 获取表名
- 进入主界面,左上角点击文件-新建-转换,保存为获取表名.ktr
- 在【转换】里面,选择【核心对象】,依次将步骤【表输入】,【复制记录到结果】拖入右侧空白区域
3.双击【表输入】控件,点击【新建】,配置输入源数据库连接,点击【测试】,输入获取用户表名的sql语句,点击【预览】功能查看获取的表信息
获取sjgj用户全部表名的sql: select tablename from pg_tables where schemaname ='sjgj'
4.点击上方的【运行】图标,可在下方控制台看运行结果。
3.3 设置变量
- 新建转换 设置变量.ktr
- 在【转换】里面,选择【核心对象】,依次将步骤【从结果获取记录】,【设置变量】拖入右侧空白区域
3.点击上方的【运行】图标,可在下方控制台看运行结果。
3.4数据抽取
- 新建转换 数据抽取.ktr
- 在【转换】里面,选择【核心对象】,依次将步骤【表输入】,【表输出】拖入右侧空白区域
3.双击【表输入】控件,【新建】输入源数据库连接,输入查询sql语句,勾选替换SQL语句里的变量,点击【确定】
4.双击【表输出】控件,【新建】输出源数据库连接,按图配置【目标表【,勾选【裁剪表】,勾选【使用批量插入】,点击确认
3.5 数据抽取子作业
- 左上角点击文件-新建-作业,保存为数据抽取.kjb
- 在【作业】里面,选择【核心对象】,依次将步骤【START】,【转换】,【转换】拖入右侧空白区域
3.双击【转换】
4.双击【转换2】
3.6 数据抽取主作业
- 新建【作业】,保存为 主作业.kjb
- 在【作业】里面,选择【核心对象】,依次将步骤【START】,【转换】,【作业】,【成功】拖入右侧空白区域
3.双击【转换】
4.双击【作业】
5.配置完成,点击上方运行按钮,控制台查看运行按钮
3.7更换迁移用户
- 打开获取表名.ktr文件,双击【表输入】,修改sql语句中的模式名称,保存后点击运行
2.打开数据抽取.ktr文件,双击【表输入】,修改sql语句中的模式名称
3.双击【表输出】,修改目标模式,保存后点击运行