如果您有其他調度系統,希望在調度系統的任務完成後觸發DataWorks上的任務運行,您可以使用DataWorks的HTTP觸發器節點功能。本文為您介紹外部調度系統觸發情境下,使用DataWorks的HTTP觸發器節點的流程和注意事項。
前提條件
已開通DataWorks企業版及以上版本。
已建立好商務程序和需要通過HTTP觸發器節點觸發的計算任務節點。以使用MaxCompute的SQL進行任務計算為例,您可參見開發ODPS SQL任務,建立完成MaxCompute的SQL計算節點。
背景資訊
外部調度系統觸發任務運行有以下兩種典型情境:
HTTP觸發器節點無其他上遊任務節點
此種情境下,您需要建立HTTP觸發節點後,在其他調度系統配置好調度觸發,並在DataWorks上配置好各節點的調度和上下遊依賴關係,詳情可參見建立HTTP觸發器節點和其他調度系統的觸發配置。
HTTP觸發器節點有上遊任務節點
此種情境下:
您需要建立HTTP觸發節點後,在其他調度系統配置好調度觸發,並在DataWorks上配置好各節點的調度和上下遊依賴關係,詳情可參見建立HTTP觸發器節點和其他調度系統的觸發配置。
HTTP觸發器節點預設上遊節點為商務程序的根節點,當上遊有其他任務節點時,您需要手動修改為對應的上遊任務節點。
當上遊任務節點運行完成,且外部調度系統發出調度指令後,HTTP觸發節點才會觸發下遊任務節點運行。
如果外部調度系統提前發出調度指令,但是上遊任務節點沒有運行完成,HTTP觸發節點不會觸發下遊任務節點。系統會保留外部調度系統的調度指令,待上遊任務運行完成後,再通過HTTP觸發節點觸發下遊任務節點運行。
重要外部調度系統的觸發指令僅保留24小時。如果24小時內上遊任務節點沒有運行完成,則觸發指令會丟失,外部調度系統本次發出的調度指令失效。
使用限制
HTTP觸發器節點功能僅適用DataWorks企業版及以上版本,關於DataWorks版本介紹,詳情請參見DataWorks各版本詳解。
由於HTTP觸發器節點僅支援T+1次產生執行個體,且補資料操作產生的執行個體不可被觸發,因此HTTP觸發器節點需要在任務發布生產環境後第二天才可被外部調度系統觸發。
HTTP觸發器節點僅作為觸發節點,不可以直接寫計算運行任務,您需要將待啟動並執行任務節點作為HTTP觸發器節點的下遊節點。
商務程序建立完成並正常運行後,若您想重跑觸發器節點,則需重新運行該節點並同時在外部調度系統中下發觸發指令。重新運行HTTP觸發器節點不會觸發已處於運行成功狀態的下遊節點運行。
商務程序建立完成正常運行後,如果您想擷取觸發器節點的下遊任務節點的歷史時間段的運行結果,您可參見執行補資料並查看補資料執行個體進行補資料操作。補資料操作時無需外部調度系統下發調度指令,HTTP觸發器節點會直接觸發下遊節點運行,即HTTP觸發器節點無法通過補資料的方式,實現外部系統觸發DataWorks HTTP觸發器的補資料任務執行。
觸發說明
觸發HTTP觸發器節點需要滿足以下條件:
HTTP觸發器節點已經組建循環執行個體(在營運中心周期執行個體面板可以搜到該執行個體)。該執行個體在未被RunTriggerNode API成功觸發前,將處於等待觸發狀態,其下遊節點將被阻塞直至成功調用RunTriggerNode API觸發HTTP觸發器節點執行。
HTTP觸發器節點所依賴的所有父節點都已經執行成功(執行個體為成功狀態)。
HTTP觸發器節點產生的周期執行個體定時時間已到。
HTTP觸發器節點使用的調度資源群組,在觸發時間點資源充足。
HTTP觸發器節點處於非凍結狀態。
僅等待觸發狀態下的HTTP觸發器節點才可被觸發(已觸發成功過的再次觸發將不會執行)。
建立HTTP觸發器節點
進入資料開發頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
在資料開發頁面,滑鼠移至上方至表徵圖,單擊 。
您也可以開啟相應的商務程序,按右鍵通用,選擇
。在建立節點對話方塊中,輸入節點名稱,並選擇路徑。
單擊確認。
單擊節點編輯地區右側的調度配置,配置節點的調度屬性,詳情請參見配置基礎屬性。
說明HTTP觸發器節點預設上遊節點為商務程序的根節點,當上遊有其他任務節點時,您需要手動修改為對應的上遊任務節點。
- 儲存並提交節點。重要 您需要設定節點的重跑屬性和依賴的上遊節點,才可以提交節點。
- 單擊工具列中的表徵圖,儲存節點。
- 單擊工具列中的表徵圖。
- 在提交新版本對話方塊中,輸入變更描述。
- 單擊確認。
如果您使用的是標準模式的工作空間,提交成功後,請單擊右上方的發布。具體操作請參見發布任務。 - 任務營運,詳情請參見周期任務基本營運操作。
其他調度系統的觸發配置
在外部調度系統中進行觸發配置時,您可以通過以下三種方式:Java方式、Python方式或API調用方式。
Java方式
安裝Java SDK,詳情可參見開始使用。
其中,DataWorks的SDK請用下面的pom配置。
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dataworks-public</artifactId> <version>3.4.2</version> </dependency>
程式碼範例
您可進入RunTriggerNode的調試頁面,在SDK樣本頁簽查看完整的Java樣本。
Python方式
安裝Python SDK,詳情可參見安裝。
其中,DataWorks的SDK請使用下面的命令安裝。
pip install aliyun-python-sdk-dataworks-public==2.1.2
程式碼範例
您可進入RunTriggerNode的調試頁面,在SDK樣本頁簽查看完整的Python樣本。
API調用方式
API調用方式可參見RunTriggerNode。