专栏首页凯哥Java【数据迁移工具】使用 kettle数据迁移从oracle到mysql的图文教程

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

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

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

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

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

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

因为这哥们使用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 mysqlmysql-connector-java-5.1.45.jar拷贝到data-integration\lib目录下

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

配置字符集 

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

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

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

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

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

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

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

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

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

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

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

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

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

4 建立作业

按照下图新建作业 

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

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

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

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

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

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

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

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SQL标准简介

    Table of Contents ---- SQL 的起源 SQL 的标准化 SQL 标准的历史 学习 SQL 标准 SQL 标准的符合性 SQL 的起源 ...

    腾讯数据库技术
  • 面试官:来给我说一下 Spring 中使用了哪些设计模式?

    导读:设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。Spring作为业界的经典框架,无论是在架构设计方面,...

    用户5224393
  • 面试题:微服务中你是如何处理事务的?

    只要聊到你做了分布式系统,必问分布式事务,你对分布式事务一无所知的话,确实会很坑,你起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。

    用户1263954
  • 高并发大流量网站 10 个解决方法

    普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底解决...

    用户5224393
  • mysql的if用法解决同一张数据表里面两个字段是否相等统计数据量。

    MySQL的使用用法如下所示: 格式:if(Condition,A,B) 意义:当Condition为true时,返回A;当Condition为false时,返...

    别先生
  • 『互联网架构』软件架构-电商系统架构发展历程(68)

    5.java电商网站,数据库分读写,解决高并发读写的问题,master和slave流量的问题。

    IT故事会
  • 值得收藏的Mybatis通用Mapper使用大全。

    由于小编的记性不太好,每次在写代码的时候总是把通用mapper的方法记错,所以今天把通用mapper的常用方法做一下总结,方便以后直接查看。好了,不废话啦。

    用户5224393
  • MySQL每秒57万的写入,带你飞~

    一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。

    用户5224393
  • 继续搞【附近的人】---MySQL搞LBS(二)

    考虑到在座的各位...都是泥腿子,唯一会做的就是用PHP CRUD,而且即便是只会搞CRUD,也还是离不开MySQL。

    桶哥
  • Redis 主从复制以及主从复制原理

    在现有企业中80%公司大部分使用的是redis单机服务,在实际的场景当中单一节点的redis容易面临风险。

    芋道源码

扫码关注云+社区

领取腾讯云代金券