DataWorks為您提供遍曆節點(for-each節點),您可以通過for-each節點來迴圈遍曆賦值節點傳遞的結果集。同時您也可以重新編排for-each節點內部的商務程序。本文以一個具體樣本,通過for-each節點2次迴圈遍曆賦值節點輸出結果,並在每次迴圈遍曆時列印當前迴圈次數,為您介紹for-each節點的邏輯原理與操作流程。
前提條件
在配置節點前,請先瞭解相關介紹,避免任務配置過程出錯。詳情請參見for-each節點邏輯原理介紹。
操作流程
使用遍曆節點時,通常與賦值節點一起使用,操作流程如下所示。
設定節點依賴關係
for-each遍曆節點需要依賴賦值節點。配置詳情可參考文檔:建立和配置商務程序。
賦值結果集
賦值節點內建的節點上下文輸出參數outputs,需作為for-each遍曆節點的節點上下文輸入參數。配置詳情可參考文檔:配置賦值節點。
遍曆節點的內部節點擷取參數
根據業務需求自訂for-each遍曆節點的內部商務程序,並在內部流程的節點中通過內建變數來擷取所需參數值,運行迴圈遍曆任務。內建變數的詳情請參見內建變數,配置詳情請參見配置for-each節點。
遍曆節點不支援在DataStudio測試
建立和配置商務程序
您需要建立一個上遊為賦值節點,下遊為for-each節點的商務程序:
進入資料開發頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
建立for-each節點。
滑鼠移至上方至表徵圖,單擊
。您也可以找到相應的商務程序,按右鍵通用,選擇
。在建立節點對話方塊中,輸入節點名稱、路徑等資訊。
單擊確認。
建立賦值節點。
雙擊商務程序,進入商務程序的編輯頁面,單擊+建立節點,將
拖拽至右側的編輯地區。賦值節點的介紹請參見賦值節點。
在建立節點對話方塊中,輸入節點名稱、路徑(預設在當前商務程序目錄下)。
單擊確認。
通過拖拽連線,設定賦值節點為for-each節點的上遊節點。
配置賦值節點
雙擊賦值節點名稱,進入節點的編輯頁面。
從請選擇賦值語言列表中,選中SHELL。
在節點編輯頁面,輸入以下語句。
echo 'this is name,ok';
單擊節點編輯頁面右側的調度配置,在
地區查看預設輸出的outputs參數。單擊工具列中的表徵圖,儲存賦值節點。
單擊工具列中的表徵圖,提交賦值節點。
提交時需在提交對話方塊中輸入變更描述,並根據需要選擇是否在節點提交後執行程式碼檢閱。
重要您需要設定節點的重跑屬性和依賴的上遊節點,才可以提交節點。
程式碼檢閱可對任務的代碼品質進行把控,防止由於任務代碼有誤,未經審核直接發布上線後出現任務報錯。如進行程式碼檢閱,則提交的節點代碼必須通過評審人員的審核才可發布,詳情請參見程式碼檢閱。
如您使用的是標準模式的工作空間,任務提交成功後,需單擊節點編輯頁面右上方的發布,將該任務發布至生產環境執行,操作請參見發布任務。
配置for-each節點
雙擊for-each節點,進入節點編輯頁面,預設包含start、shell和end三個節點。
您可根據需求,替換Shell節點為其他節點:
如需使用Shell節點,則直接配置Shell節點即可。
如果您需要使用其它類型的節點,請先刪除預設的Shell節點,再建立其他類型節點。
本文樣本使用Shell節點。
編輯Shell節點。
雙擊Shell節點,進入節點編輯頁面。
輸入以下代碼。
配置for-each節點。
在for-each節點的編輯頁面,單擊右側的調度配置。
在
地區,單擊預設參數名loopDataArray後的編輯。從取值來源列表中,選擇上遊賦值節點的outputs參數,單擊儲存。
說明您在調度配置中添加上遊賦值節點的依賴關係後,請手動添加取值來源。如果未添加取值來源,提交節點時會報錯。
單擊工具列的表徵圖,儲存for-each節點。
單擊工具列的表徵圖,提交for-each節點。
重要您需要設定節點的重跑屬性和依賴的上遊節點,才可以提交節點。
在提交對話方塊中,選中需要提交的節點,單擊確定。
如果您使用的是標準模式的工作空間,提交成功後,請單擊右上方的發布。具體操作請參見發布任務。
測試並查看測試結果
單擊頁面右上方的營運,進入營運中心。
在左側導覽列,單擊
。選中相應的節點,在右側的DAG圖中,按右鍵賦值節點,選中
。重新整理補資料執行個體頁面,待補資料執行個體運行成功後,單擊執行個體後的DAG圖。
按右鍵賦值節點,選中查看作業記錄,確認賦值結果。
在補資料執行個體頁面,按右鍵遍曆節點,選中查看內部節點。
在內部節點頁面,單擊左側的第1次,並按右鍵Shell節點,選中查看作業記錄。
在作業記錄頁面,查看第1次迴圈時,Shell節點的日誌。
以同樣的方式,查看第2次迴圈時,Shell節點的日誌。