【数据迁移工具】使用 kettle数据迁移从oracle到mysql的图文教程

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2018-09-28 14:28
  • 4005人已阅读
简介 在工作中,我们有时候会遇到这种情况。老系统或其他系统使用的数oracle数据库,现在使用新系统,需要使用mysql数据库。但是之前数据也要迁移过来。那么这种请求下怎么办呢?我们可以使用kettle来进行数据迁移。1:使用工具【pdi-ce-7.1.0.0-12】一: kettle安装及运行 kettle官网下载地址,下载完毕后大概有800多m 下载完毕后,直接解压,双

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

在工作中,我们有时候会遇到这种情况。老系统或其他系统使用的数oracle数据库,现在使用新系统,需要使用mysql数据库。但是之前数据也要迁移过来。那么这种请求下怎么办呢?我们可以使用kettle来进行数据迁移。

1:使用工具【pdi-ce-7.1.0.0-12】

一: kettle安装及运行 
kettle官网下载地址,下载完毕后大概有800多m 


d07e8878c66c954f39a544887605a3b0.png

下载完毕后,直接解压,双击Spoon.bat进行运行。 

25611ab9000b4006132291dabf1ba360.png

如果在你的电脑上启动之后,没有进入下面的页面,那么就换台机器。修改 Spoon.bat中java内存参数不一定好使。

c9dee788e606dbfc43d856b066fd5f68.png


因为这哥们使用Java写的。

修改:

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"

注:以上代码没试过。不知道可以不。


2 数据库连接
将数据从oracle迁移到mysql,需要先在kettle中建立oracle和mysql数据库连接,注意mysql-connector-java-5.1.45.jarojdbc14-10.2.0.1.0.jar要在kettle启动之前拷贝进去。
2.1 mysql
mysql-connector-java-5.1.45.jar拷贝到data-integration\lib目录下

324419ba77418b0723b8a41e11b0c519.png

按照下图操作,输入相关的数据连接参数 

401142c3fa2ddea1823aa5706e8e2575.png配置字符集 

03d813e333d7c05ca7546af07d6ff93d.png




2.2 oracle 
ojdbc14-10.2.0.1.0.jar拷贝到data-integration\lib目录下 

18518f113866410956a5f2935675b340.png

按照下图操作,输入相关的数据连接参数 

079bd0def016679bd8b48fbd539d1ed6.png3 最基本的导数据 
导入数据的基本流程如下图,可以分为三个步骤,首先建立源数据库和目标数据库的连接,然后建立源数据表和目标数据表的映射关系,最后建立作业任务,执行。 

f08e5dc6a8e162ce7eadfa02c050aef9.png

3.1 建立DB连接 
这个在上面第2章已经将做如何配置了。 
3.2 建立steps 
这一步实现源数据库和目标数据表的映射关系,它也有三个步骤 
3.2.1表输入 
第一步:在【转换】里面,选择【核心对象】,接着双击【表输入】,或者选中将【表输入】拖拽到右侧空白区域。

7a6a9343300f8e32a12ee89d4643c8e7.png第二步:双击你拖进来的【表输入】,修改“步骤名称”,选择源数据,点击获取【获取SQL查询语句】,选择你想同步的表,点击确定后,就可以了。当然你也可以自己写sql语句 

d8b6a5a458a713273d9e1e361f2beada.png

3.2.2 字段选择 
第一步:在【转换】里面,拖拽【字段选择】到右侧空白区域。 
第二步:按住shift 拖动鼠标连接【客户基本信息输入】和 【字段选择】 

第三步:双击【字段选择】,添加【列映射】,建立源表和目标表中列字段的映射,如果字段名称相同,kettle会自动帮你选择,如果不同,则需要你自己选择对应关系 

e5b32fb3b32dc571953fd447bec16544.png

下图是匹配完成,点击确定后的结果。 

3f5436365139962434cdc2805d8e4db5.png

第四步:这一步可选,当源数据字符集与目标字符集不同的时候需要做字符转换,如果一致,则直接跳过这一步 

be6f99b8d85a65d1c4d08c6615b28de2.png



3.2.3 表输出 
第一步:在【转换】拖拽【表输出】到右侧空白区域,按住shift 拖动鼠标连接【字段选择】和【基本信息输出】 

c2ee4db83afe150b082ddf2ac5e0794d.png

第二步:双击【表输出】,修改“步骤名称”,选择“数据库连接”,选择“目标表”, 

34ec05b1cf825b503b1e6878c9112cd1.png


第三步:获取字段,因为在【字段选择】中已经做了匹配,所以这里可以全选,kettle可以帮你全部选择 


9e4f0c24440e7264ebcbc86cb1e2f333.png

第四步: ctrl+s 保存 ktr文件 

4 建立作业 

按照下图新建作业 

e0c7ffab007db031a03f92d926570f3e.png

4.1 设置START 
拖拽【START】到右侧空白区域 

5eab7b67489ad98e123be43bfcd8935d.png


4.2 配置作业转换 
第一步:拖拽【转换】到右侧空白区域,并按住shift 拖动鼠标连线 

16d8a89a72878ef3cee76e14f6d312ea.png

第二步:选择第3章保存的ktr文件,保存即可。 

584f687958948d73e418c5abecabe1f9.png

第三步:手工运行作业,点击下图红色圈圈里面的按钮 

651528d37dc07ec00f06c4791a46cad3.png

进入下面的页面,点击【执行】就可以了。 

88441040937d9c203720a6e9c24cec2d.png

查看日志,下面的是结果正常的。如果有错,kettle会提示你错误原因。 

c9d63c6c43277f7903a4ecbe2bc2e4d4.png

4.3 定时执行 
如果不想立即执行,那么可以选择制定的规则,让kettle定期执行。具体操作,可双击【START】,更改“类型”,下图示例是制定每天的具体时刻。

956f50396ab8243c0c4b4e57fca9b451.png 

运行的时候,选择Start Job at 就可以了。 

4e7227ab2bd69b09b3642070f2296658.png

你会发现画风会停到下面这里 

44604ab68bdf10f7c81c435dcc6f6a9c.png跟踪日志,你会发现它会按照我设置的时间开始执行 

fd2423d6a49b87c29740ca2604d36908.png

参考资料 
KETTLE 从oracle将表导入mysql 
Kettle数据抽取(转换)出现乱码问题解决方法

https://blog.csdn.net/warrah/article/details/80197120





TopTop