如果某行失败,如何停止 Pentaho ETL 进程?
How stop a Pentaho ETL process if some row fails?
我有一个具有以下流的转换:
错误处理行设置为 max error = 0。因此当它检测到一个错误时它会停止。
问题是如果第一行是正确的,ETL 会将这一行插入到最后的 table,然后停止进程。
是否可以在仍然执行该过程之前检查所有行?这样,如果某些行失败,则不会在最终 table 中删除数据(启用截断选项)。
在此转换中使用 temporary/staging table
如果您的存储 space 允许,暂存 table 可提供最可靠的解决方案,并最大限度地减少最终 table 的停机时间。
分期 table 在结构上应与最终 table 相同。然后,您可以 运行 作业内部的转换,只有在成功时才让作业继续进行 SQL 作业步骤,该步骤将 final 重命名为 old,staging 为 final,然后 old 为 staging。
这样,您的最终 table 永远不会为空,并且在重命名操作期间只有几分之一秒不可用。
您通过 making the transformation database transactional 实现了这一目标。
我有一个具有以下流的转换:
错误处理行设置为 max error = 0。因此当它检测到一个错误时它会停止。
问题是如果第一行是正确的,ETL 会将这一行插入到最后的 table,然后停止进程。
是否可以在仍然执行该过程之前检查所有行?这样,如果某些行失败,则不会在最终 table 中删除数据(启用截断选项)。
在此转换中使用 temporary/staging table
如果您的存储 space 允许,暂存 table 可提供最可靠的解决方案,并最大限度地减少最终 table 的停机时间。
分期 table 在结构上应与最终 table 相同。然后,您可以 运行 作业内部的转换,只有在成功时才让作业继续进行 SQL 作业步骤,该步骤将 final 重命名为 old,staging 为 final,然后 old 为 staging。
这样,您的最终 table 永远不会为空,并且在重命名操作期间只有几分之一秒不可用。
您通过 making the transformation database transactional 实现了这一目标。