我需要在ETL过程中处理事务。我正在从文件加载一些数据到我的数据库,我需要管理提交和回滚。如果我的文件中的任何行有数据错误或架构错误我需要进行回滚,否则我需要将数据放入我的数据表并提交更改。所以我准备了Job,一切似乎都有效。但是我对ETL流程更感兴趣,我想问一下,有没有更有效的方法来处理这个问题?
答案 0 :(得分:0)
到目前为止,工作看起来不错。我只有一个建议,如果这个组件有一些错误,你也可以把tPostgressqlRollback(onComponentError)放在tPostgresqlOuput上。
答案 1 :(得分:0)
这似乎是一个很好的方法。
尽管如此,我还是会进入一个更加普遍的方向。这意味着我将激活尝试写入db的组件中的“Stop when error”选项。
然后,我会添加一个通用的 tLogCatcher 组件,它可以做两件事:
优点:您可以将此内容复制到每个新作业中,并且可以自动记录错误而不会有太多麻烦。只有组件错误才能停止作业的选项必须启用。