關於Kettle的事務和轉換內步驟的順序執行
近來有項目中遇到Kettle事務處理和轉換內步驟順序執行的問題。為此進行了研究,找到了一個解決辦法。
在Kettle中,一個Job內的轉換,缺省是順序執行的;一個轉換內的步驟,缺省是並行執行的。但是,社區版不支持job內的事務處理,只支持轉換內的事務。因此,如果要做順序操作,且支持事務,需要如下處理:
- 根據業務需要,使用“阻塞數據直到步驟都完成”在轉換內設置順序執行的內容;
- 設置轉換只使用一個事務。轉換設置–>雜項–>使用唯一連接。
- 設置轉換內的表插入等數據庫操作不進行批量提交。“提交記錄數量” –> 0
下面是我做的一個測試例子,已經測試通過,可以參考。