如果您有其他調度系統,希望在調度系統的任務完成后觸發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觸發器的補數據任務執行。
支持的地域:華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、西南1(成都)、中國香港、日本(東京)、新加坡、馬來西亞(吉隆坡)、德國(法蘭克福)、美國(硅谷)。
觸發說明
觸發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,詳情可參見集成SDK。
其中,DataWorks的SDK請使用下面的命令安裝。
pip install aliyun-python-sdk-dataworks-public==2.1.2
代碼示例
您可進入RunTriggerNode的調試頁面,在SDK示例頁簽查看完整的Python示例。
API調用方式
API調用方式可參見RunTriggerNode。