Kettle学习笔记(四)— 总结

目录

Kettle学习笔记(一)— 环境部署及运行
Kettle学习笔记(二)— 基本操作
kettle学习笔记(三)— 定时任务的脚本执行
Kettle学习笔记(四)— 总结

Kettle中设置编码格式

如果处理的数据中有中文,需要对中文设置编码格式,一般是utf8格式,彻底的修改格式的方法就是,修改spoon.bat文件中增加如下信息:"-Dfile.encoding=UTF-8";

Kettle中调整运行性能

修改参数

Kettle默认的性能适用于普通的一般硬件,如果自己的电脑硬件比较好(内存比较大),可以对kettle的spoon.bat中的参数进行修改,这样可以适当的提高kettle的运行性能,主要是修改-Xms、-Xmx、-XX:MaxPermSize三个参数的值:

-Xms:设置JVM初始内存 ;
-Xmx:设置JVM最大可用内存 ;
-XX:MaxPermSize:设置JVM最大允许分配内存,按需分配;

非常注意:

-Xmx必须小于等于系统内存的1/4,要不然会报错,其他两个选项不大于-Xmx ;
当系统内存为4G时-Xmx不能大于1G,当系统内存为8G或更大时,java版本必须是64位的才能识别出来,此时-Xmx可以为2G或更高

2.创建数据库连接的参数中必须加上以下三个参数:(用于增加数据写入速度

useServerPrepStmts=false

rewriteBatchedStatements=true

useCompression=true

提高每次表输出的提交量。

异常汇总

1.连接不上数据库,报java.lang.NullPointerException异常:

原因:kettle中放置的连接数据库的驱动jar包版本低于要连接的数据库版本;

解决方法:首先查看自己要连接的数据库版本,然后选择驱动jar包版本要对应或者高于但要最接近于数据库版本的jar包即可解决;

2.正常运行一会突然报错:Communications link failure

错误一:

java.net.SocketException: Connection reset by peer: socket write error

错误二:

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.

产生上述两个错误的原因:可能是kettle默认使用的是服务端提供的statement,因为一些原因服务端可能会关闭statement,因此要对连接的数据库设置一些参数,使用kettle自身提供的statement就可以

(1)解决问题:设置参数如下:

useServerPrepStmts=false

rewriteBatchedStatements=true

useCompression=true

(2)如果使用连接池,并将连接池总的maxIDle数值设的比较大:

posted @ 2020-10-22 19:46  故人与猫  阅读(1217)  评论(0编辑  收藏  举报