数据库迁移不是一件简单的事情,特别是需要从Oracle迁移到MySQL或者sqlserver迁移到MySQL等等,而数据处理中还会遇到很多问题,譬如表结构不一样,字段需要特殊处理等,而Kettle使用起来则非常方便,不需要连接太多的SQL知识,本文就介绍一下我在工作中遇到的使用场景,我使用的kettle版本是9.0+

相关文章

  1. Kettle数据库迁移实战(二)–批量导入
  2. Kettle数据库迁移实战(三)–表输入使用上一个步骤的变量作为参数
  3. Kettle数据库迁移实战(四)–使用SQL脚本
  4. Kettle实战(五)–使用java代码脚本
  5. Kettle应用场景(多表级联)
  6. sqlserver驱动jar下载
  7. 官方文档一
  8. 官方文档二
  9. 官方文档三

  1. 先介绍一篇其它优秀博文—kettle数据迁移从oracle到mysql,作者对于软件的下载,数据库连接和基本使用,介绍的都比价详细。另外说明一点,获取字段映射关系,首先需要建立两个数据库的关系,也就是先要把步骤连起来
  2. 我在工作中的使用
  3. 新表当中有个别字段是常量,而就数据库没有这个字段
  • 首先新建转换,在主对象树建立数据库连接
  • 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_数据库迁移


  • 在核心对象->输入选择‘表输入’,输出选择’插入/更新’,转换选择增加常量。其中输入根据需要写Sql
  • 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_字段_02


  • 依次连接3个步骤,并配置3个步骤
  • 检验转换有没有错误,没有错误则执行转换
  • 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_数据库_03


  • 校验没有错误但是在执行转换报错也是很正常的,这时候大都是因为sql有错误:比如非空字段没有插入值,字段长度不够等,而日志台对这些错误信息显示的页比较清晰,遇到错误不要害怕,静下心来分析错误,你会发现很简单
  1. 新表当中某个字段需要是几个字段(或者常量)的拼接后的结果,下面只给出关键步骤
  2. 当新表中有字段需要随机值-可选择输入步骤->生成随机数,可选择生成随机数的类型,竖直,字符串,UUID等
  3. 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_数据库_04



案例2:根据正则截取数据库中的字段值的一部分内容,并复制给新的字段

  1. 我的业务需求是:从旧数据库的的内容里(是富文本内容)提取第一张图片的路径然后保存到新数据的对应字段值
  2. 因为要使用java的类,而kettle并没有提供这些类的使用,所以需要自定义java类(在自己的编辑器编写java类),然后导出jar包
  3. 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_数据库_05


  4. 把jar包放在kettle的lib文件夹内,然后重启kettle(有可能不需要重启)
  5. 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_数据库迁移_06


  6. 利用核心对象->脚本->java代码调用自定义的java类



数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_字段_07

  1. 把返回值存入新的变量中
  2. 数据库迁移 dbeaver mysql postgresql 数据库迁移工具kettle_数据库_08