在構建資料系統時,如果存在多個平台同時開發且不同平台間的任務存在依賴關係,您可以通過觸發式節點完成依賴配置。例如,演算法開發在A系統,在Dataphin中需要基於A系統某個演算法任務的產出來運行某個周期任務。本文將介紹觸發式節點開發的相關說明。
前提條件
使用外部觸發節點,需要滿足以下前提條件:
已購買Dataphin OpenAPI功能。
發起觸發請求的環境與Dataphin的網路必須連通。
觸發式節點任務基本特點
觸發式節點任務與其他計算任務相同點與不同點如下:
觸發式節點任務的周期執行個體進入運行狀態需要滿足以下條件:
當前系統時間大於或等於執行個體的定時已耗用時間,與其他計算任務一致。
所有上遊節點運行狀態均已成功,與其他計算任務一致。
已收到外部觸發請求,此為觸發式節點專屬的運行條件。
觸發式節點任務的補資料執行個體,不依賴外部觸發請求,與普通計算任務一致。
觸發方式
Dataphin當前僅支援通過OpenAPI方式在Dataphin之外發送觸發請求,即外部觸發。
外部觸發
外部觸發步驟如下:
擷取觸發資訊。
通過外部觸發請求前,需要先擷取以下資訊。
節點ID(node_id):可以在已提交的觸發式節點任務屬性面板的基本資料地區擷取任務ID。如下圖所示:

專案ID(project_id):可以在研發頁面的瀏覽器URL中擷取。例如,URL地址為
https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=309107012。6982117****30048即為專案ID。租戶ID(tenant_id):可以在研發頁面的瀏覽器URL中擷取。例如,URL地址為
https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=309***012。309***012即為租戶ID。
編寫觸發節點代碼。
本文以Java代碼為例。
重要代碼中所需要的Jar包,您可以通過阿里雲相關技術支援人員進行擷取。
DefaultProfile profile = DefaultProfile.getProfile("<Your region>", "<Dataphin accessKey>", "<Dataphin secret>"); DefaultProfile.addEndpoint("<Your region>", "dataphin-public", "<Your openapi endpoint>"); profile.getHttpClientConfig().setIgnoreSSLCerts(true); DefaultAcsClient client = new DefaultAcsClient(profile); ExecuteTriggerNodeRequest request = new ExecuteTriggerNodeRequest(); // 設定需要觸發的節點所在租戶的租戶ID request.setOpTenantId(0L); // 設定需要觸發的周期執行個體對應的業務日期,格式為yyyy-MM-dd request.setBizDate("<bizdate>"); // 設定需要觸發的節點的節點ID request.setNodeId("<node_id>"); // 設定需要觸發的節點所在專案的專案ID request.setProjectId(0L); // 設定環境類型 request.setEnv("PROD"); ExecuteTriggerNodeResponse response = client.getAcsResponse(request); System.out.println(response.getCode());執行觸發節點代碼成功且Dataphin收到後觸發請求後,觸發式節點運行狀態將轉變為成功。