DataWorks是阿里雲上的一款熱門產品,能夠爲用戶提供大數據開發調度服務。它支持了Data Lake Analytics(後文簡稱DLA)之後,DLA用戶能夠經過它進行定時任務調度,很是方便。本文將主要介紹如何使用DataWorks調度DLA的循環任務。sql
使用DLA對歷史數據按天作清洗。數據清洗的SQL是固定的,只是每次執行的時候須要傳入不一樣的日期。數組
對於這個場景,咱們須要:運維
登陸DataWorks的控制檯,並建立一個業務流程或使用原有的業務流程。oop
在新建的業務流程下,建立一個賦值節點和一個循環節點。測試
打開節點「日期集合」的編輯頁面。這裏咱們選擇SHELL語言,將要執行的日期值寫在一個數組裏。大數據
打開節點「日期集合」的調度配置頁面。
在這裏須要給賦值節點設置一個上游節點,這裏能夠設置爲當前工做空間的root。好比個人工做空間名字叫jinluo_poc,則該節點爲jinluo_poc_root。阿里雲
雙擊循環節點進入編輯頁面。能夠看到三個節點,分別是start, sql和end。這裏咱們須要新建一個DLA的任務節點,並把sql替換爲一個DLA的任務節點。spa
在調度配置頁面設置依賴關係和節點上下文。上游節點設置爲賦值節點「日期集合」,本節點的輸入爲賦值節點的輸出。
.net
選擇一個DLA的數據源,並填寫SQL。3d
這裏面的pure_date的值是從賦值節點讀入的。每次讀取賦值節點的輸出結果數組中的一個值。寫法是固定的,以下所示。
h.`pure_date`=${dag.input[${dag.offset}]}
該節點的做用是控制循環的結束。
end節點的結束條件:是把dag.loopTimes進行比較,小於則輸出True繼續循環;不小於則輸出False退出循環。dag.input.length變量,標識上下文參數input數組的行數。是系統自動根據節點配置的上下文下發的變量。
if ${dag.loopTimes} < ${dag.input.length}: print True else: print False
在調度配置頁面,須要設置上游節點。
設置完成,保存後,能夠看到循環節點變動爲
目前在DataWorks的開發界面暫不支持循環節點的運行,須要提交後在運維中心測試運行。
分別點擊 「日期集合」和「數據清洗SQL」頁面上的「提交按鈕」進行提交。
在提交循環節點時,注意要勾選上全部的節點。
進入運維中心頁面,在週期任務的列表裏面能夠看到咱們剛剛提交的兩個做業。
右鍵「日期集合」 -> 補數據 -> 當前節點及下游節點 能夠手動執行該組任務。
提交後能夠看到每一個節點的運行狀態。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。