如果某行失败,如何停止Pentaho ETL进程?

时间:2017-02-17 13:07:05

标签: pentaho kettle

我有一个包含以下流的转换:

enter image description here

错误处理行设置为max error = 0.因此,当它检测到一个错误时,它会停止。

问题是如果第一行是正确的,ETL将此行插入到最终表中,然后停止该过程。

是否可以在执行此过程之前检查所有行?这样,如果某行失败,则最终表中的数据不会被删除(启用时截断选项)。

2 个答案:

答案 0 :(得分:1)

在此转换中使用临时/临时表

如果您的存储空间允许,临时表提供最可靠的解决方案,最终表的停机时间最短。

登台表应与结构中的最终表格相同。然后,您可以在作业内部运行转换,只有在成功执行SQL作业步骤后才能继续执行作业,该步骤将final重命名为old,staging为final,然后是old to staging。

这样,您的最终表格永远不会为空,并且在重命名操作期间仅在几分之一秒内不可用。

答案 1 :(得分:0)

您可以通过making the transformation database transactional实现此目标。