不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

Kettle使用杂记

最近参加的一个项目使用Kettle进行数据库清理,使用的是MySQL数据库,使用Kettle过程有一些需要注意的事情,在这里随手记录。

1、性能优化

如果是使用的MySQL数据库,可在转换的“命名参数”中增加以下设置:

rewriteBatchedStatements   true
useCompression   true
useServerPrepStmts   false

如下图:

性能优化是一个大的话题,以后有相关的,再继续记录。

2、插入数据乱码

可以在输入和输出数据库连接中都加上配置:

characterEncoding=utf8

配置后如未生效,可尝试清除数据库缓存。

3、将TINYINT转换为Bool类型:

严格来说,Kettle只是会把类型为TINYINT(1)的字段默认转换为Bool类型。这相可以在数据库连接中加上配置禁止这个转换:

tinyInt1isBit = false

4、空字符串转为NULL

Kettle默认会将空字符串转为NULL,这样会导致数据不一致的情况,可将如下配置加入到kettle.properties以禁止这个行为:

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

注:当文件不存在时,新建即可,调整后需要重启Kettle。

 

不允许评论
粤ICP备17049187号-1