KETTLE 多表数据迁移或转换
阅读这篇文章需懂得kettle的基本操作。
本次以跨数据库数据迁移为例,Oracle数据库数据迁移到MySQL数据库,两数据库的表名、表结构一致,以下所有操作均已运行成功。
本次用到的对象均在 输入、输出、转换、作业 四个对象包中。
创建作业快捷键 CTRL + ALT + N,创建转换快捷键 CTRL + N。
1、创建一个作业(job)- 多表数据转换
2、创建转换 - 获取表名
2.1 表输入 - 获取表名
获取数据库表名:
Oracle: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = SCHEMA名;
MySQL: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = SCHEMA名;
2.2 字段选择
此对象可以省略,无影响。
3、作业 - 同步单表记录
在第一点 多表数据转换作业中 的 同步单表记录作业 必须勾选以上选项,否则会报下图的错误。
下图为 同步单表记录 作业的相关对象:
3.1 转换 - 设置变量
3.2 检查表是否存在
数据库连接为目标数据库,表名为之前设置的变量。
3.3 转换 - 单表数据迁移
表数据的迁移主要时表输入、表输出,注意下面图标红的部分。
4 生成MySQL的SQL语句
若需要生成MySQL的SQL语句,则可以用下图的作业,与3 同步单表记录作业的差异在最后的转换,输出为SQL文件输出。