【原创】使用Kettle的一些心得和经验

本文总结了在使用Kettle进行ETL过程中遇到的常见问题,包括版本兼容性、ETL过程中的异常报错及解决方案,并提供了优化方法以提高稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用kettle做etl也有段时间了,遇到很多问题,总结了一下。

【关于版本的问题】

   kettle常用的版本有4.1和4.4,对于4.1版本:

1.该版本的兼容性有点差,在某些机器上运行会启动失败,或者是启动完后增加资源库时报错直接退出。

2.对于etl的sql,比如oracle,不支持/*------*/的注释方式,会将其识别为错误的sql,仅支持--的注释方式。而4.4不存在这个问题。

3.运行不稳定,执行复杂etl过程时容易出现异常退出。

【关于etl过程的问题】

无论4.1或者4.4,有时会出现一些莫名其妙的报错信息,如在oracle下面会报出:

 ORA-01013: user requested cancel of current operation

这貌似是oracle爆出来的,好像和sql本身并没有关系,将sql直接到数据库中跑,也没有问题,百思不得其解,调整oracle参数、替换jdbc驱动等都未解决。后来在kettle的官方论坛上找到了一段提示

http://forums.pentaho.com/showthread.php?76733-Strange-SQL-error-kills-DB-input-step
Kettle will stop any SQL processing whenever there is an error, in any step of the transformation. 
Maybe it helps to increase the logging level and look for other steps that might be throwing an error. If preview works fine it is likely that the error is caused by a step further down in the transformation. Maybe the cause is a specific row, like maybe a row with null values where they are not expected. 

 

,大意是这类错误一般都是由etlsql造成的,如果将执行的日志级别调高一些会看出来具体的原因。所以,将日志级别调整的非常详细会看出具体是什么错误,最后发现还是etl的问题,比如输入表A的数据往B表中输出,结果在B表中没有找到对应的列而报错,如果日志信息不详细,则有时会提示如ORA-01013的错误。

【关于优化】

kettle使用java实现,所以,有时etl过程比较长,所以有时需要调整jvm内存大小,在Spoon.bat中增加Xmx和Xms以及PermSize的大小。

转载于:https://www.cnblogs.com/zhangxsh/p/3549127.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值