在kettle中有一个非常实用的功能Copy Tables Wizard,可以成批地把表从一个连接导入到另一个连接,特别是在异构数据库之间进行数据迁移非常好用。
但这个功能有个小BUG,在导表的时候,目的数据库中新建表的表名都自动加上了源数据库的SCHEMA名,这样数据虽导过去了,但表名却走样了。
感谢KETTLE,它是开源的,因此我们修改KETTLE的源代码,再重新编译,就可以解决这个问题
涉及到的源代码是:org.pentaho.di.core.database.Database.java 中的这一句:
原代码:
if (includeSchema) schemaTable = databaseMeta.getQuotedSchemaTableCombination(schema, table);
else schemaTable = table;
修改一下if条件,即可,修改后的代码:
if (!includeSchema) schemaTable = databaseMeta.getQuotedSchemaTableCombination(schema, table);
else schemaTable = table;
编译后,再来试试,讨厌的SCHEMA前缀没有了
我使用的版本是3.0.2,不知新版本有没修复这个问题
本文介绍如何修改Kettle中的CopyTablesWizard功能,以避免在数据迁移过程中目标数据库的表名被自动添加源数据库的SCHEMA名的问题。通过简单的源代码调整并重新编译,可以有效解决此问题。
3729

被折叠的 条评论
为什么被折叠?



