`

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来自于输入的记录的列。

 

记录的错误信息如下:

 

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

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

  • 大小: 12.8 KB
  • 大小: 61.4 KB
  • 大小: 52.2 KB
  • 大小: 16.9 KB
  • 大小: 30.2 KB
  • 大小: 62.4 KB
分享到:
评论

相关推荐

    Kettle spoon 定义错误处理的测试数据

    为了实现在执行定时任务的过程中,能够保留下Spoon执行错误的具体内容,特此进行了一下“Kettle spoon的定义错误处理”学习。 该spoon项目内容包括,<font color=coral size=4>Excel输入 --> 表输出 --> 获取变量 -...

    《在kettle中实现数据验证和检查》示例代码

    4. **错误处理**:当数据未通过验证时,需要记录错误并决定如何处理。可以使用"错误输出"步骤将这些数据分离出来,或者用"日志"步骤记录错误信息。 5. **结果输出**:验证后的数据可以被输出到新的数据源,如数据库...

    《ETL数据整合与处理(Kettle)》教学教案 —04字段处理.pdf

    - 学会解读处理后的结果数据,以及错误处理策略。 4. **问题与讨论**: - 引导性问题帮助学生建立基础概念,探究性问题深化理解,拓展性问题鼓励创新思维和实践操作。 5. **教学过程**: - 理论部分详细讲解...

    《检查处理kettle数据流中的空行》示例附件代码

    2. **检查空行**:在数据流中,可能会遇到空行,这可能是由于输入数据源的问题或者是数据处理过程中产生的错误。Kettle提供了多种步骤来检测和处理这种情况。例如,可以使用"Filter Rows"步骤来筛选出不满足特定条件...

    Kettle中文手册3.0用户手册-实战.rar

    作业是Kettle中的高级流程控制结构,它由一系列相互连接的步骤组成,用于实现数据处理的完整流程,包括任务的调度和错误处理。转换则是数据处理的单一操作单元,专注于数据的清洗、转换和加载。在手册中,你会了解到...

    java调用kettle中的job与转换-源码

    6. **监控与错误处理**:通过监听器(如`TransListener`或`JobListener`)跟踪Job和转换的进度,以便在出错时进行异常处理。 7. **资源清理**:当转换或作业执行完毕后,记得释放占用的资源,例如关闭打开的数据库...

    Kettle8.0清洗交易所DBF文件数据

    虽然文档内容并未完全提供,但基于前面介绍的Kettle操作,我们可以知道跑批配置涉及到一系列的设置工作,可能包括定义数据源、选择转换规则、设置输出格式以及指定加载目的地等。 在处理DBF文件时,可能还会涉及到...

    kettle批量解析多个xml文件

    8. **错误处理和日志记录**:为保证生产环境的稳定性,应设置适当的错误处理机制,如错误日志记录和错误数据的隔离处理。 通过以上步骤,Kettle可以高效地批量解析XML文件并导入到Oracle数据库,满足生产环境中的...

    springboot整合kettle项目源码

    4. **定义工作流或转换**:通常在Kettle的图形化界面(Spoon)中设计工作流或转换,然后保存为`.ktr`或`.kjb`文件。这些文件可以在项目中作为资源文件,或者从远程服务器获取。 5. **运行Kettle任务**:在Spring ...

    kettle-pdf用户手册

    Kettle提供了多种错误处理机制,如跳过错误记录、记录错误日志等。 **9.5 转换步骤类型** 文档详细介绍了几种常用的转换步骤类型及其配置方法,如文本文件输入、表输入、获取系统信息等。 - **9.5.1 文本文件输入...

    神通数据库的Kettle数据库插件

    5. **错误处理和日志记录**:为了确保在出现问题时能追踪和调试,插件应具备良好的错误处理机制和日志记录功能。 通过kettle-database-oscar-plugin这个压缩包,我们可以获取到完整的插件源码和必要的资源文件,这...

    KETTLE使用帮助文档集

    8. **错误处理与日志记录**:Kettle提供了错误处理机制,可以捕获并处理转换过程中的错误,同时详细记录执行日志,便于问题排查。 9. **调度与监控**:Kettle作业可以配合Pentaho Server进行定时调度,并提供监控...

    Kettle对接tdh.zip

    - **错误处理**:完善的错误处理机制,保证数据处理的健壮性。 综上,Kettle对接TDH和Hive的文档是数据集成过程中重要的参考资料,它详细指导了如何利用Kettle的强大功能与不同的数据平台进行交互,对于理解和实施...

    Kettle手册

    - 定义是指在Kettle中创建的各种对象和实体的详细说明。 3. 转换与任务: - 转换是指数据的提取、转换、加载的过程。 - 任务则是由多个转换组成的作业,用于复杂的调度和流程控制。 4. 选项配置: - General...

    《使用javascript访问kettle内部组件》示例代码

    JavaScript代码可能包含错误处理机制,确保在Kettle操作失败时能妥善处理。同时,安全考虑也是必不可少的,如确保API调用的安全性,防止未授权访问。 总之,结合JavaScript和Kettle的能力,我们可以构建出强大且...

    kettle实战教程.pdf

    2. 使用须知:用户需了解Kettle的基本使用规则,比如资源库的配置、性能优化、错误处理等。 知识点四:产品功能及使用 1. 资源库管理:在Kettle中,资源库用于管理ETL作业、Transformation以及相关元数据信息。 2. ...

    Kettle使用范例.doc

    当某一步骤遇到错误时,可以通过定义错误处理来确保流程的连续性。例如,在将源表数据同步到目标表的场景中,如果目标表字段长度过小导致异常,可以为"Target Table"步骤设置错误处理。通过右键点击并选择“Define ...

    kettle资料

    当某个步骤遇到错误时,可以通过定义错误处理来确保流程的连续性。例如,你可以为"Target Table"步骤添加错误处理,当目标表字段长度不匹配导致异常时,可以将错误数据重定向到特定的输出。通过右键点击步骤,选择...

    java调用Kettle引用jar包.zip

    总之,Java调用Kettle通过引入相关jar包并利用其API,能够无缝地将强大的Kettle ETL功能集成到Java应用程序中,从而实现更复杂的业务逻辑和数据处理需求。这为开发人员提供了更大的灵活性,同时利用了Kettle的可视化...

    kettle批量数据库操作流程脚本

    6. **错误处理与日志记录**:在脚本执行过程中,需要设置错误处理机制,例如错误跳过或错误记录,同时记录详细的日志,以便于问题排查和优化。 7. **工作流调度**:如果这些操作需要定期执行,可以使用Kettle的...

Global site tag (gtag.js) - Google Analytics