kettle的报错解决机制
在kettle执行的过程中,如果遇到错误,kettle会停止运行。在某些时候,并不希望kettle停止运行,这时候可以使用错误处理(Step Error Handling)。错误处理允许你配置一个步骤来取代出现错误时停止运行一个转换,出现错误的记录行将会传递给另一个步骤。在Step error handling settings对话框里,需要设置启用错误处理。
下面例子中读取postgres数据库中的a0表数据,然后输出到a1表:

a1表结构如下:
CREATE TABLE a1
(
a double precision,
id integer NOT NULL,
CONSTRAINT idpk PRIMARY KEY (id ),
CONSTRAINT idunin UNIQUE (id )
)
从表结构可以看出,a1表中id为主键、唯一。
a0表数据预览:

现在a1表数据为空,执行上面的转换,执行成功之后,a1表数据和a0表数据一致。 再次执行,上面的转换会报错,程序停止运行,会报主键重复的异常。
现在,我想报错之后,程序继续往下执行,并记录错误的记录的相关信息,这时候可以使用“定义错误处理”的功能。 在“表输出”的步骤上右键选择“定义错误处理”,弹出如下对话框。

相关字段说明:
- 目标步骤:指定处理错误的步骤
- 启用错误处理?:设置是否启用错误处理
- 错误数列名:出错的记录个数
- 错误描述列名:描述错误信息的列名称
- 错误列的列名:出错列的名称
- 错误编码列名:描述错误的代码的列名
- 允许的最大错误数:允许的最大错误数,超过此数,不在处理错误
- 允许的最大错误百分比:
- 在计算百分百前最少要读入的行数:
添加错误处理后的转换如下:

记录错误信息的字段列表如下,可以看出,errorNum、errorDesc、errorName、errorCode都是在定义错误处理时候填入的列名称,a、id来自于输入的记录的列。

记录的错误信息如下:

分析 可以看到,错误日志里只是记录了出错的行里面的信息,并没有记录当前行所在的表名称以及执行时间等等,如果能够对此进行扩展,则该错误日志表才能更有实际意义。
kettle的报错解决机制的更多相关文章
- Qt类声明中Q_OBJECT的作用与报错解决
2017-06-22 周四 大雨 北京 院里 新建作图类,继承自QCUstomPlot类 因为需要同时作8张图,都要单坐标缩放的功能,因此想干脆新建一个类,继承自QCUstomPlot,把需要的功能都 ...
- sphinx :undefined reference to `libiconv' 报错解决办法
sphinx :undefined reference to `libiconv' 报错解决办法 2013-11-30 21:45:39 安装sphinx时不停报错...郁闷在make时报错,错误 ...
- redis运用连接池报错解决
redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...
- linux下启动dbca或netmgr类的图形界面报错解决
linux下启动dbca或netmgr类的图形界面报错解决 Xlib: connection to ":0.0" refused by server Xlib: No pro ...
- CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录
最近准备学习使用Tez,因此从官网下载了最新的Tez 0.8.3源码,按照安装教程编译使用.平时使用的集群环境是离线的,本打算这一次也进行离线编译,无奈一编译就开始报缺少jar包的错,即使手动下载ja ...
- spring boot jpa 使用update 报错解决办法
在spring boot jpa 中自定义sql,执行update操作报错解决办法: 在@Query(...)上添加 @Modifying@Transactional注解
- eclipse创建的maven项目,pom.xml文件报错解决方法
[错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --> ...
- 搭建oracle linux虚拟机报错解决
sysctl -P 报错解决办法问题症状修改 linux 内核文件 #vi /etc/sysctl.conf后执行sysctl -P 报错error: "net.bridge.bridge ...
- Aasible中cryptography兼容性报错解决办法
Aasible中cryptography兼容性报错解决办法 1 Ansible中使用ansible --version查看版本,报错信息如下: ERROR! Unexpected Exception, ...
随机推荐
- Linux GPIO子系统
一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0-MAX_INT之间的整数 ...
- 转 web前端性能分析--分析篇
通过具体实施后就可以获得第一手的web前端性能的数据了,然后每次新版本都跑,这就会获得大量的数据,为性能分析提供了基础的输入,同时应该还要综合使用多种工具去从不同的方向收集数据:比如showslow同 ...
- DevExpress控件之"XtraForm——窗体"
1.AutoScaleMode:确定当屏幕分辨率或字体更改时窗体或控件将如何缩放. Dpi:根据显示分辨率控制缩放.常用分辨率为96和120Dpi: Font:根据类使用的字体(通常为系统字体)的维度 ...
- Linux安装mysql——源码安装
1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...
- cocos2dx 3.3多相机下_transformUpdated bug
uint32_t Node::processParentFlags(const Mat4& parentTransform, uint32_t parentFlags) { if(_using ...
- Ip地址和子网掩码和CIDR无间别域间路由
开始,网络的制定者将网络划分为A,B,C三种网络,想这个样子: A类网: xxx.0.0.0 子网掩码:255.0.0.0 xxx.0.0.0/8 //后面的数字代表网络地址的字段 ...
- PCIe调试心得_DMA part2
作者:East FPGA那点事儿 上一章讲述了PCIe总线DMA的原理和XAPP1052存在的问题. 本章以服务器常用的4通道1000M以太网卡为例讲述如何提高DMA的效率. 1.内存重分配Wind ...
- iOS改变UINavigationBar导航条标题颜色和字体
转自:http://www.2cto.com/kf/201311/260409.html iOS 5 以后 UINavigationController 可以 改变UINavigationBar导航条 ...
- ThinkPad 预装win8换win7(软激活)
今天晚上有人叫我给他装系统,没错!这就是计算机专业的拿手技能(维修学院重装系统专业Win7系统班^-^). 一拿手上,是lenovo的ThinkPad E430型号,预装的系统是win8,由于win8 ...
- CCToggleVisibility和CCPlace
CCActionInterval* move1 = CCMoveBy::create(, ccp(,)); CCActionInterval* move2 = CCMoveBy::create(, c ...