kettle從入門到精通 第八十二課 ETL之kettle kettle中的【阻塞資料直到步驟都完成】使用教程

慕容尘轩發表於2024-08-02

1、在使用步驟【阻塞資料直到步驟都完成】(英文為Block this step until steps finish)之前,我們先來了解下什麼是 Copy Nr?

Copy Nr是指 “副本編號” 或 “複製編號”,也就是下圖中的複製的記錄行數,圖中的兩個步驟複製的記錄行數都是0,表示只有一個副本。

2、寫日誌步驟右鍵改變開始複製的數量,這裡我們設定為3,如下圖所示:

3、儲存&執行,步驟度量tab中寫日誌步驟一個有三個副本在執行,Copy nr 分別為0、1、2,每個副本會根據前置步驟的資料傳送策略處理輸入的資料,如下圖所示:

4、言歸正傳,我們繼續研究步驟【阻塞資料直到步驟都完成】,該步驟可以阻塞一個或者多個步驟的一個或者多個副本,直到所有副本都處理完畢之後才會處理步驟【寫日誌-done】,如下圖所示:

注:圖中的複製次數就是指的是副本的數量,寫日誌步驟的副本是3,所以若要阻塞寫日誌步驟,監視下面的步驟裡面設定3條資料,複製次數分別是0、1、2。

5、儲存&執行,可以看到轉換正確執行,先執行三個步驟寫日誌副本,然後再執行寫日誌-done步驟,如下圖所示:

6、若複製次數填寫3或者以上則會出錯,所以這裡複製次數是從0開始的,不是從1開始。如下圖所示:

7、將第一個轉換複製一份,寫日誌2步驟這裡設定2個副本。步驟【阻塞資料直到步驟都完成】同時阻塞步驟【寫日誌】和步驟【寫日誌2】,依然可以正常執行,如下圖所示:

總結:

1、Copy Nr 是 Kettle/PDI 中用於標識不同步驟副本的編號,主要用於支援並行處理和管理多個副本。在設計資料轉換或作業時,合理設定和管理這些副本,可以提升資料處理的效率和靈活性。

2、阻塞步驟【阻塞資料直到步驟都完成】可以阻塞一個或者多個步驟的1個或者多個副本。副本次數是從0開始計數而不是1。

相關文章