如何在 Talend 出错时设置回滚?
How to set Rollback in case of Error in Talend?
我有一个 Talend 项目,通过以下方式同步两个表:
DELETE TABLE 1
SELECT * TABLE 2
INSERT TABLE 1
看下面的照片。
想象一下,前两个步骤没问题,但在最后一步(插入)会抛出错误。我可以恢复在第一步执行的已删除行吗?
tMSSqlRollback
是如何工作的?我试图设置它是徒劳的。 ("List of components" 下拉列表中没有组件,在 'Simple parameter' 选项卡中。
首先,正如 garpitmzn 所说,您应该为您的数据库类型打开一个与相应元素的连接,比如 tMySQLConnection。这可以通过 tPreJob 来完成。现在,还要在 tPostJob.
中添加一个 tMySQLCommit
您想添加一些错误处理。有两种方式
Extended inserts
已为 tMySQLOutput 激活:您必须在您的外部某处添加一个 tLogRowCatcher工作。直接在它后面为你的数据库类型添加一个 tRollback(就像 tPre/tPostJob,link 它与 OnComponentOk).
Extended inserts
已停用:除了 Main,您还可以通过右键单击连接 Recjected .这些行由于某种原因被拒绝。您可以收集这些记录并将它们存储在 table 或某种错误报告中,您可以在其中处理那些被拒绝的行。 注意: 这种方式虽然更详细,但对性能可能非常非常差。此外,如果数据库连接崩溃或其他错误,您仍然需要 tLogRowCatcher
回滚组件不需要成为主作业的一部分。
我有一个 Talend 项目,通过以下方式同步两个表:
DELETE TABLE 1
SELECT * TABLE 2
INSERT TABLE 1
看下面的照片。
想象一下,前两个步骤没问题,但在最后一步(插入)会抛出错误。我可以恢复在第一步执行的已删除行吗?
tMSSqlRollback
是如何工作的?我试图设置它是徒劳的。 ("List of components" 下拉列表中没有组件,在 'Simple parameter' 选项卡中。
首先,正如 garpitmzn 所说,您应该为您的数据库类型打开一个与相应元素的连接,比如 tMySQLConnection。这可以通过 tPreJob 来完成。现在,还要在 tPostJob.
中添加一个 tMySQLCommit您想添加一些错误处理。有两种方式
Extended inserts
已为 tMySQLOutput 激活:您必须在您的外部某处添加一个 tLogRowCatcher工作。直接在它后面为你的数据库类型添加一个 tRollback(就像 tPre/tPostJob,link 它与 OnComponentOk).Extended inserts
已停用:除了 Main,您还可以通过右键单击连接 Recjected .这些行由于某种原因被拒绝。您可以收集这些记录并将它们存储在 table 或某种错误报告中,您可以在其中处理那些被拒绝的行。 注意: 这种方式虽然更详细,但对性能可能非常非常差。此外,如果数据库连接崩溃或其他错误,您仍然需要 tLogRowCatcher
回滚组件不需要成为主作业的一部分。