Kettle之错误处理(Error Handling)里面的坑

简介: Kettle之错误处理(Error Handling)里面的坑

1 前言



在使用表输出输出数据到数据库时,因数据库约束检查等原因造成数据无法正常入库.这时"表输出"步骤若是没有定义错误处理的话,transformation转换会报出异常并且停止进行运行.


为了保证程序的正常运行,我们可以在transform安通转换中"表输出"步骤中定义错误处理.此种方式可以捕获异常数据并持久化保存到硬盘或数据库中,利于后期数据的分析,来提高数据质量.


2 错误处理设置



错误处理,处理步骤如下:


网络异常,图片无法展示
|


image.png


在可能出错的组件上单击鼠标右键,选择Error Handling.填写相应的信息字段,然后将错误信息写入数据库或者文件中.


网络异常,图片无法展示
|


image.png


网络异常,图片无法展示
|


image.png


入库错误日志表展示如下:


网络异常,图片无法展示
|


image.png


3 错误处理里面的坑



然而,在转换"表输出"上设置错误处理时,会提示如下信息:


网络异常,图片无法展示
|


image.png


翻译为:警告!由于驱动程序的限制,在使用的数据库上不完全支持与批处理结合的错误处理。请谨慎行事,风险自负。


也就是说当进行批处理操作时,设置错误处理可能会出现异常信息漏捕获的情况.我案例中生成异常信息1692个,而实际只捕获到168个.


而当"表输出"操作取消批处理时(如下设置),就可以全部捕获异常信息.然后为了保证正确数据被处理,同时不缺失异常信息而让每次提交的数据量设置为1,这样会大大降低效率.


网络异常,图片无法展示
|


image.png


解决方案: 创建一张和指定表结构完全相同的表,只是不设置任何数据库约束(主键).然后先将数据全部接收进这张表,再在数据库层面进行去重后插入另外一张指定的表中.这样既可以保留所有原数据,又可以实现数据去重.


4 参考文章:


(1) Kettle中定义错误处理: https://blog.csdn.net/feng19821209/article/details/9120561


(2) KETTLE 执行转换时遇到错误,记录并继续运行: https://blog.csdn.net/shenlong_no1/article/details/78819453


(3)https://wiki.pentaho.com/display/EAI/.09+Transformation+Steps#.09TransformationSteps-StepErrorHandling

相关文章
|
Android开发
XAMRAIN的INSTALL_FAILED_NO_MATCHING_ABIS错误处理
错误提示是:INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-11 解决方法: 打开xamarin .
1546 0
|
3月前
|
开发工具 异构计算 Windows
Electron V8排查问题之"error: redefinition of 'DXVA*_AV1'" 错误如何解决
Electron V8排查问题之"error: redefinition of 'DXVA*_AV1'" 错误如何解决
35 3
|
JSON C++ 数据格式
FastAPI(27)- Handling Errors 处理错误 (下)
FastAPI(27)- Handling Errors 处理错误 (下)
590 0
FastAPI(27)- Handling Errors 处理错误 (下)
|
6月前
|
机器学习/深度学习 Java Android开发
记录一个Flutter运行的异常FAILURE: Build failed with an exception. What went wrong: A problem occurred config
记录一个Flutter运行的异常FAILURE: Build failed with an exception. What went wrong: A problem occurred config
198 0
|
资源调度 Windows
yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc
yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc
683 0
yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc
|
JSON API 数据格式
FastAPI(27)- Handling Errors 处理错误 (上)
FastAPI(27)- Handling Errors 处理错误 (上)
267 0
FastAPI(27)- Handling Errors 处理错误 (上)
|
供应链
SAP LSMW 事务代码HUPAST的录屏后台执行报错 - Runtime error RAISE_EXCEPTION has occurred - 之分析
SAP LSMW 事务代码HUPAST的录屏后台执行报错 - Runtime error RAISE_EXCEPTION has occurred - 之分析
SAP LSMW 事务代码HUPAST的录屏后台执行报错 - Runtime error RAISE_EXCEPTION has occurred - 之分析
|
JavaScript 前端开发
|
JavaScript 开发工具 git
error handling in Nodejs
If I simply throw the exception: