场景: 在oracle数据库中有一个表A,在mysql数据库中有一个表B,现在需要将表A中的数据,同步到表B中
解决方案:使用kettle转换

表数据输入(数据来源)

  • 先new一个转换

点击kettle的左上角的 + 号, 选择“转换

  • 在右边的的选项卡里,点击“核心对象”,选择“输入”,再找到“表输入”,选择拖拽到右边的空白处。
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据

  • 双击此图标
  • kettle连接mongoDb删除数据 kettle 连接数据库_kettle连接mongoDb删除数据_02

  • 里面有一个数据连接,此时我们需要点击“新建,创建一个数据库连接,并填入相应的数据,点击“测试”,会提示连接是否成功,如果成功,则点击“确认”,进行下一步
  • 这里可能弹出缺少驱动包,自己去下一个放到kettle的lib文件夹下就没问题了。
  • 数据连接成功后,需要选择具体哪个表,这里点击“获取SQL语句”
  • kettle连接mongoDb删除数据 kettle 连接数据库_数据_03

  • 会弹出该用户下所有的表格,选择你需要同步的表,点“确定”
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_04

  • 弹出提示,选择“是”
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_05

  • 接着这里会显示sql语句了
  • kettle连接mongoDb删除数据 kettle 连接数据库_kettle连接mongoDb删除数据_06

  • 点击“预览”,可以看到你同步的表数据
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_07

表数据输出(数据接收)

  • 找到输出,选择“表输出”,拖拽到右边的空白处
  • kettle连接mongoDb删除数据 kettle 连接数据库_kettle_08

  • 双击“表输出”图标,弹出设置页面
  • kettle连接mongoDb删除数据 kettle 连接数据库_kettle连接mongoDb删除数据_09

  • 同样的,先新建数据库连接,点击“新建”,这里选择了mysql数据库,缺少驱动包的自己需要手动下载放到kettle的lib文件夹下
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_10

  • 选择“目标表“,及接收数据的表,点击“浏览”找到需要的表,或者直接输入表名
  • kettle连接mongoDb删除数据 kettle 连接数据库_数据_11

设置步骤

  • 数据来源和数据接收方都设置好了,则需要指定步骤了
  • 按住shift键,鼠标左键选择“表输入”,拖拽到“表输出”,即可
  • kettle连接mongoDb删除数据 kettle 连接数据库_字段_12

  • 但oracle的表A中,字段名和mysql的表B中字段名不一样时,我们需要做映射(默认字段名是不分大小写的),按照图中步骤操作
  • kettle连接mongoDb删除数据 kettle 连接数据库_kettle_13

  • 点击“输入字段映射”后,会弹出默认没有对上的字段
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_14

  • 选择对应的字段,点击“add”,即可完成映射,全部映射完毕,点击“确定”
  • kettle连接mongoDb删除数据 kettle 连接数据库_数据_15

  • 到这里,这个简单的转换就已经操作完成了,下面就要执行了

执行

  • 点击图中的按钮
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_16

  • 直接点击确定
  • kettle连接mongoDb删除数据 kettle 连接数据库_kettle连接mongoDb删除数据_17

  • 到这里就执行成功了,如果不成功,图标上不会出现勾勾
  • kettle连接mongoDb删除数据 kettle 连接数据库_跨库同步数据_18

  • 接下来,就可以自己去mysql看看数据啦~ (全文完)