需求
从MS Sql Server迁移数据到MySQL中
环境信息:
- Window10 64位
- pdi-ce-8.2.0.0-342
- SqlServer2017 Docker版本
- MySQL5.7.23 Docker版本
操作
软件准备
pdi-ce-8.2.0.0-342.zip版本下载
解压出该版本,运行Sqoon.bat即可
流程配置
新建转换
打开Kettle软体,新建一个转换任务,“文件”-->“新建”-->“转换
kettle-2.png配置SqlServer源数据库
在“核心对象”-->“输入”-->“表输入”,将“表输入”图标直接拖拽到右侧区域
kettle-2-1.png
没有SqlServer jar包导致JDBC测试失败,解决方法就是下载mssql-jdbc-7.0.0.jre8.jar存入到lib目录下。
kettle-2-2-error.png kettle-2-2-ok.png
获取目标表
kettle-2-3-1.png
配置“字段选择”
过滤,转换字段信息
kettle-3-1-1.png kettle-3-1-2.png双击“字段选择”图标打开配置界面
“选择和修改窗口”:可以修改字段名称
“移除”:可以选择不需要传输数据的列,选择后将不会传输此字段里的值到目标表,我们这里选择的是TS字段,因为此字段是timestamp类型数据(时间戳)
“元数据”:在此可以对源数据表中的所有字段进行转换设置,比如类型,长度,精度,字符集等,如果想一次性将源表的所有字段均加载进来的话,点击右侧“获取改变的字段”。
kettle-3-1-3.png kettle-3-1-4.png配置“插入/更新”---目标数据库
kettle-4-1-1.png kettle-4-1-2.png-
新建我们需要导入的目标数据库连接,按照上面的步骤教程新建连接,
-
“浏览”选择需要导入数据的table
-
在此区域内选择查询数据时依据的字段,其实也就是根据此字段来判断两个表中的数据是否是同一笔记录
-
点击“获取和更新字段”可以在“更新字段”区加载所有字段,注意选择是否所有字段都需要更新数据,我在这里将carid的更新状态改成了Y。
校验连接情况
kettle-4-2-1.png出现报错信息,根据详细,检查刚才的字段配置内容
kettle-4-2-1-error.png
得到问题原因
kettle-4-2-2-change.png kettle-4-2-3.png kettle-4-2-3-ok.png
测试执行任务
kettle-5-1-1-ok.png执行结果
源数据库
sqlserver-1.png
目标数据库
mysql-1.png
定时任务
新建作业
kettle-5-1.png
部署作业
kettle-5-2.png
设置执行频率
kettle-5-3-1.png
选择执行任务项
kettle-5-3-2.png kettle-5-4.png
网友评论