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 id_pk PRIMARY KEY (id ),
  CONSTRAINT id_unin UNIQUE (id )
)

从表结构可以看出,a1表中id为主键、唯一。

a0表数据预览:

现在a1表数据为空,执行上面的转换,执行成功之后,a1表数据和a0表数据一致。 再次执行,上面的转换会报错,程序停止运行,会报主键重复的异常。

现在,我想报错之后,程序继续往下执行,并记录错误的记录的相关信息,这时候可以使用“定义错误处理”的功能。 在“表输出”的步骤上右键选择“定义错误处理”,弹出如下对话框。

相关字段说明:

  • 目标步骤:指定处理错误的步骤
  • 启用错误处理?:设置是否启用错误处理
  • 错误数列名:出错的记录个数
  • 错误描述列名:描述错误信息的列名称
  • 错误列的列名:出错列的名称
  • 错误编码列名:描述错误的代码的列名
  • 允许的最大错误数:允许的最大错误数,超过此数,不在处理错误
  • 允许的最大错误百分比:
  • 在计算百分百前最少要读入的行数:

添加错误处理后的转换如下:

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

记录的错误信息如下:

分析 可以看到,错误日志里只是记录了出错的行里面的信息,并没有记录当前行所在的表名称以及执行时间等等,如果能够对此进行扩展,则该错误日志表才能更有实际意义。

说明 1.错误日志的错误码含义(如:TOP001)含义见参考文章2.

目录
相关文章
|
数据采集 数据库
Kettle之错误处理(Error Handling)里面的坑
Kettle之错误处理(Error Handling)里面的坑
|
Java 监控 自然语言处理
一站式链路追踪:阿里云的端到端解决方案
端到端链路追踪是覆盖全部关联 IT 系统,能够完整记录用户行为在系统间调用路径与状态的最佳实践方案。而真正实现端到端链路追踪,需要解决三个难题:链路插桩、链路采集与加工、链路上下文透传。阿里云 ARMS 目前已支持全链路端到端追踪,快来查看转发吧~
61848 106
|
11月前
|
监控 大数据 API
可以调度kettle的工具有哪些?都有什么特点?如何选择?
【10月更文挑战第25天】可以调度kettle的工具有哪些?都有什么特点?如何选择?
727 5
|
12月前
|
SQL 关系型数据库 MySQL
ETL工具 Kettle 中怎么通过变量传参
ETL工具 Kettle 中怎么通过变量传参
937 0
|
网络协议 安全 Java
难懂,误点!将多线程技术应用于Python的异步事件循环
难懂,误点!将多线程技术应用于Python的异步事件循环
|
SQL druid Java
解决 ‘The last packet successfully received from the server was xxx milliseconds ago‘ 问题
解决 ‘The last packet successfully received from the server was xxx milliseconds ago‘ 问题
6642 0
|
存储 监控 jenkins
利用CI/CD实现快速迭代与部署
【7月更文挑战第9天】CI/CD实践通过自动化构建、测试和部署流程,极大地提高了软件开发的效率和质量。通过选择合适的CI/CD工具、配置代码存储库、定义CI/CD管道、自动化测试和反馈以及自动化部署,团队可以更加高效地迭代和部署软件产品。希望本文能为您的CI/CD实践提供一些参考和帮助。
|
Oracle 关系型数据库 Java
Oracle日期格式巨坑,之 HH和HH24,mm和mi。
Oracle日期格式巨坑,之 HH和HH24,mm和mi。
2468 0
|
JavaScript 前端开发 Java
kettle开发篇-JavaScript脚本
kettle开发篇-JavaScript脚本
683 0
|
网络协议 安全 Linux
Linux | 如何保持 SSH 会话处于活动状态
Linux | 如何保持 SSH 会话处于活动状态