关于Kettle的事务和转换内步骤的顺序执行
近来有项目中遇到Kettle事务处理和转换内步骤顺序执行的问题。为此进行了研究,找到了一个解决办法。
在Kettle中,一个Job内的转换,缺省是顺序执行的;一个转换内的步骤,缺省是并行执行的。但是,社区版不支持job内的事务处理,只支持转换内的事务。因此,如果要做顺序操作,且支持事务,需要如下处理:
- 根据业务需要,使用“阻塞数据直到步骤都完成”在转换内设置顺序执行的内容;
- 设置转换只使用一个事务。转换设置–>杂项–>使用唯一连接。
- 设置转换内的表插入等数据库操作不进行批量提交。“提交记录数量” –> 0
下面是我做的一个测试例子,已经测试通过,可以参考。