oracle到mysql的单表数据迁移-kettle的使用

目录

    • 一、前期准备
    • 二、用kettle迁移一张表的数据
      • 1. 打开kettle
      • 2. 新建转换
      • 3. 添加表输入和表输出
      • 4. 配置表输入
      • 5. 配置表输出
      • 6.开始导数
      • 7.检查
    • 三、注意

一、前期准备

  1. 建好 oracle库mysql库,以及对应的表,表结构要一致。建表时,oracle 到 mysql可能会有字段类型上的变化:比如DATE变为datetime,但是kettle会处理好。

  2. 电脑可以连接上oracle库mysql库

  3. kettle已经下载好。(链接:kettle下载)

  4. 有oracle和mysql的驱动jar包,并放在 /pdi-ce-8.2.0.0-342/pdi-ce-8.2.0.0-342/lib 下。(缺失jar包就连不上这两个库)

oracle到mysql的单表数据迁移-kettle的使用_第1张图片

二、用kettle迁移一张表的数据

1. 打开kettle

kettle文件夹下双击 Spoon.bat

2. 新建转换

在菜单栏点击 文件-新建-转换
oracle到mysql的单表数据迁移-kettle的使用_第2张图片
oracle到mysql的单表数据迁移-kettle的使用_第3张图片

3. 添加表输入和表输出

点击左侧的核心对象标签,面板上有个tree,找到输入和输出分支。
oracle到mysql的单表数据迁移-kettle的使用_第4张图片
在输入分支下找到 表输入 并双击,转换1窗口下啊出现一个表输入图标;再在输出分支下找到 表输出 并双击,转换1窗口下多了 表输出 图标,并且从 表输入表输出 有个深蓝色的箭头,代表两节点的连接。

也可以把左侧的 表输入表输出 直接拖拽到右侧的窗口,按住 shift键,用鼠标从 表输入 划向 表输出 建立连接。

转换1如下:
oracle到mysql的单表数据迁移-kettle的使用_第5张图片

4. 配置表输入

双击 表输入,弹出配置框。我们需要修改的是 数据库连接 和查询用的 SQL ,当然也可以重新起一个步骤名称。

oracle到mysql的单表数据迁移-kettle的使用_第6张图片
表输入需要连接的是oracle数据库,点击新建,弹出数据库连接框。默认为oracle连接,如图注意配置信息和必填项。
oracle到mysql的单表数据迁移-kettle的使用_第7张图片
填写完,点击下方的测试按钮,检验是否连接上oracle数据库。
oracle到mysql的单表数据迁移-kettle的使用_第8张图片
连接成功后,点击数据库连接框的确认按钮,返回表输入编辑框,此时数据库连接项里已经有新建好的oracle连接 odb,想要更改连接配置,点击编辑即可。
oracle到mysql的单表数据迁移-kettle的使用_第9张图片
接下来写SQL,即对oracle库的执行,最简单的,就是从这张表查询数据。比如:

//查询AA01表的所有字段
SELECT * FROM AA01 
//查询AA01表的前5行数据
SELECT * FROM AA01 WHERE ROWNUM <= 5

你可以自己填写sql,也可以点击右边的 获取SQL查询语句 选择表后自动生成sql。(注意,oracle的sql中表名无论大小写,最终都会转换成大写,如果要查询的表名是小写,需要在表名上加双引号)
oracle到mysql的单表数据迁移-kettle的使用_第10张图片
写好sql,可以点击下方的预览查看查询出的数据是否是你预期的。kettle会提醒 输入预览记录数量 ,默认是1000,这样当查出的数据超过1000条,就先预览前1000条。

但是我只查了5条,就只显示5条记录。
oracle到mysql的单表数据迁移-kettle的使用_第11张图片
点击关闭,返回表输入的配置框,点击确定,表输入就配置完成了。

5. 配置表输出

接下来配置表输出,过程与表输入类似,双击 表输出,弹出配置框。
oracle到mysql的单表数据迁移-kettle的使用_第12张图片
我们的主要工作是建立 数据库连接,填写 目标表

数据库连接目前显示的是已经建立的oracle连接odb,这里我们需要新建mysql的连接。点击新建,弹出数据库连接框,以下是配置和必填项,注意连接类型是mysql。
oracle到mysql的单表数据迁移-kettle的使用_第13张图片
同样,填写好点击测试查看是否连接上,点击确认,返回表输出配置框。
oracle到mysql的单表数据迁移-kettle的使用_第14张图片
数据库连接 选择mysql连接mdb,目标表 就是mysql中要导入的这张表,可以手动填写,也可以点击 目标表 右边的 浏览 选择这张表。

提交记录数量 是指数据迁移时,每经过几条记录commit一次,默认1000,则日志就会每隔1000条记录打印一次状态。

表输出 配置好,点击确定。转换配置完成。

6.开始导数

表输入和表输出都配置好,数据库连接也没问题,就可以开始导数了。点击 转换1 面板左上角的三角形,运行这个转换。
oracle到mysql的单表数据迁移-kettle的使用_第15张图片
点击执行转化框右下角的 启动 按钮。
oracle到mysql的单表数据迁移-kettle的使用_第16张图片
开始转换,下面会有执行结果的显示。日志记录了步骤,Preview data可以查看迁移的数据。
oracle到mysql的单表数据迁移-kettle的使用_第17张图片
转换成功,在表输入和表输出的图标右上角会有绿色的√,如果转换出错,会在出错的那一步打红色的×(比如输入对,输出错,会在输入右上角打√,输出右上角打×)。

7.检查

最后,可以去Navicat查看数据有没有迁移过来。
oracle到mysql的单表数据迁移-kettle的使用_第18张图片

三、注意

  1. 转换可以保存,扩展名是 ktr,保存后下次可以接着用。
  2. 记得添加数据库连接的jar包,否则连不上数据库。
  3. 数据库连接配置要一一对应,不要连oracle的库连接类型写mysql。
  4. 查询的表和目标表要一一对应。
  5. 可能会遇到字段类型的问题,比如oracle中存储图片的字段类型是blob,mysql中用text,运行转换时就会报错。一般blob用来存图片,text用来存文本,所以应把mysql中的字段类型改为blob或longblob。
  6. 如果目标表没有对应的字段,会报错,建表时注意表结构一一对应。
  7. 转换中两个节点之间要建立连接,如果不小心断开,按住shift键手动建立连接。

下一篇,《oracle到mysql的多表批量数据迁移-kettle的使用》

你可能感兴趣的:(其他)