Talend处理交易的正确方法

时间:2017-09-01 08:43:05

标签: transactions etl talend

我需要在ETL过程中处理事务。我正在从文件加载一些数据到我的数据库,我需要管理提交和回滚。如果我的文件中的任何行有数据错误或架构错误我需要进行回滚,否则我需要将数据放入我的数据表并提交更改。所以我准备了Job,一切似乎都有效。但是我对ETL流程更感兴趣,我想问一下,有没有更有效的方法来处理这个问题?

这是Job模式: enter image description here

2 个答案:

答案 0 :(得分:0)

到目前为止,工作看起来不错。我只有一个建议,如果这个组件有一些错误,你也可以把tPostgressqlRollback(onComponentError)放在tPostgresqlOuput上。

答案 1 :(得分:0)

这似乎是一个很好的方法。

尽管如此,我还是会进入一个更加普遍的方向。这意味着我将激活尝试写入db的组件中的“Stop when error”选项。

然后,我会添加一个通用的 tLogCatcher 组件,它可以做两件事:

  • 首先,使用 tPostgresRollback 组件回滚更改
  • 然后将数据输出到数据库表,日志文件或控制台上(无论您在何处使用此操作)
  • 然后停止工作

优点:您可以将此内容复制到每个新作业中,并且可以自动记录错误而不会有太多麻烦。只有组件错误才能停止作业的选项必须启用。