ETL工具kettle批量插入数据异常情况

众多的Etl工具中,kettle是一个不是特别稳定的一个工具,不是特别建议使用,那么在使用kettle进行数据转换时,经常会出现的一个问题:批量数据插入目标库时,会中途异常,导致插入目标库不全,并且报的错主要有三类,如下图片。
此问题十分恶心,这四类错误是随机报出来的,总共才同步个几万条记录,.bat运行十次中,大概有4次会出现以下四种报错的一种,剩下的6次确实运行正常运行结果是完全正确的。这是不是很神奇的现象呢?
第一种:ORA-01013: 用户请求取消当前的操作
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整

第二种:ORA-12592: TNS: 包错误
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
第三种:无法从套接字读取更多的数据
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
第四种:ava.sql.SQLException: Io 异常
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
折腾了好久,用了很多办法,比如:排查执行时的网络稳定情况;数据库的连接数;数据库的超时设置等都试了个片,最后还是无果,毕竟kettle这个etl工具是个比较老的工具,用的公司特别少。
最后再网上找到个jdbc驱动的一个帖子,后来试了一下,确解决了此问题。

jdbc驱动对应的JDK版本如下:对应的对应的jdk版本要与jdbc驱动对应上,kettle运行时才能少出一些bug。

classes12.jar -> JDK 1.2 and 1.3

ojdbc14.jar - > JDK 1.4 and 1.5

ojdbc5.jar - > JDK 1.5

ojdbc6.jar - > JDK 1.6

ojdbc7.jar - > JDK 7已上

ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
我的是 JDK 1.6,所以我换成了ojdbc6.jar,最后发现基本不报错了,比较稳定了。

最后再说一点,对于kettle工具用到的jdbc驱动版本最好是要与所连接的数据库jdbc驱动版本一致
如:
我的oracle 11.2数据库的jdbc版本如下
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
我的kettle的jdbc版本就应该如下
ETL工具kettle批量插入数据异常或kettle批量提交数据不完整
已上仅供参考,具体情况还得具体分析。

相关文章: