Kettle(一)轉換,步驟,跳接線


術語定義:

Transformation-----轉換

Step----------------步驟

Hops----------------跳接線

 

一個步驟是KETTLE中的最小執行單元,用於實現指定的單一邏輯任務。

一個轉換是一批步驟組成的網狀結構,用於實現一個相對完整的任務,轉換,實際上定義了數據的流向。先看一個例子:

上圖是一個轉換,它從文本文件中讀取數據,然后對其進行過濾,排序,最后將結果數據加載到一個關系型數據庫中的一張表中。在數據過濾的過程中,當遇到錯誤時,數據會流向空操作。

轉換,本質上是一張定向圖,它描繪了數據轉換邏輯的一個集合。在kettle中,轉換文件的后綴是.ktr。

 

與轉換相關的兩個核心組件是步驟和跳接線:

步驟:是轉換的一個構建塊,比如文本文件輸入輸出步驟。在KETTLE中,大約有140個步驟,並基於功能進行分組,比如輸入步驟,輸出步驟,腳本步驟等等。轉換中的每一個步驟用於執行特定的操作,比如進行輸入操作,進行排序操作等等,用戶可以編輯配置轉換,以實現自身需求的功能。

跳接線:用於連接轉換中的各個步驟,並將前一個或前多個步驟的元數據傳遞到下一個步驟中。在上圖中,看起來每個步驟是依次執行的,其實並不是這樣。跳接線在決定數據在步驟間的流向時並不依賴數據執行體(即步驟)的順序。當啟動轉換時,每個步驟都會創建各個的線程並推送傳遞數據。

【注意】

  所有步驟在啟動和運行時都是並行的,因此步驟間的初始化順序是不固定的。這也就是為什么,在前一個步驟中設置的變量不能在后續的步驟中使用。

雙擊步驟可對其進行編輯,按住shift+鼠標左鍵可以將步驟進行連接。

 

一個步驟可以擁有多個連接,轉換中的數據流可以在其內的多個步驟間流通,在KETTLE的IDE中,跳接線由箭頭表示,箭頭的方向決定了數據的流向。當一個步驟的結果集被推送到多個步驟時,數據可以以復制的方式傳遞,也可以以分發的方式傳遞。復制的方式即每個后續的步驟收到的數據都是上一步驟的完整結果集,分發方式即每個后續的步驟收到的數據是上一步驟次序結果集,比如步驟A以分發的方式向步驟B和C推送數據,則B收到的數據中A結果集的1,3,5。。號記錄,C收到的數據是A結果集的2,4,6。。號記錄。

 

/******************************外星人喬丹拍板時間***************************************/

由於轉換中的步驟的啟動順序不固定,且以並行的方式獨立的運行在各自的線程內,所以前步驟設置的變量在后步驟中可能

獲取不到,而針對每個步驟的產出,即輸出結果,則可以由跳接線推送到下一個步驟中。

所以,在所有步驟啟動完成之前,不能確保后續步驟拿到前一步驟的數據,而當所有步驟都處於運行狀態,即都啟動完成之后,

則可以由跳接線確保后續步驟可以拿到前一步驟的輸出結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM