全部產品
Search
文件中心

Dataphin:觸發式節點開發說明

更新時間:Jan 24, 2026

在構建資料系統時,如果存在多個平台同時開發且不同平台間的任務存在依賴關係,您可以通過觸發式節點完成依賴配置。例如,演算法開發在A系統,在Dataphin中需要基於A系統某個演算法任務的產出來運行某個周期任務。本文將介紹觸發式節點開發的相關說明。

前提條件

使用外部觸發節點,需要滿足以下前提條件:

  • 已購買Dataphin OpenAPI功能。

  • 發起觸發請求的環境與Dataphin的網路必須連通。

觸發式節點任務基本特點

觸發式節點任務與其他計算任務相同點與不同點如下:

  • 觸發式節點任務的周期執行個體進入運行狀態需要滿足以下條件:

    1. 當前系統時間大於或等於執行個體的定時已耗用時間,與其他計算任務一致。

    2. 所有上遊節點運行狀態均已成功,與其他計算任務一致。

    3. 已收到外部觸發請求,此為觸發式節點專屬的運行條件。

  • 觸發式節點任務的補資料執行個體,不依賴外部觸發請求,與普通計算任務一致。

觸發方式

Dataphin當前僅支援通過OpenAPI方式在Dataphin之外發送觸發請求,即外部觸發。

外部觸發

外部觸發步驟如下:

  1. 擷取觸發資訊。

    通過外部觸發請求前,需要先擷取以下資訊。

    • 節點ID(node_id):可以在已提交的觸發式節點任務屬性面板的基本資料地區擷取任務ID。如下圖所示:

      image

    • 專案ID(project_id):可以在研發頁面的瀏覽器URL中擷取。例如,URL地址為https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=3091070126982117****30048即為專案ID。

    • 租戶IDtenant_id):可以在研發頁面的瀏覽器URL中擷取。例如,URL地址為https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=309***012309***012即為租戶ID。

  2. 編寫觸發節點代碼。

    本文以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());
  3. 執行觸發節點代碼成功且Dataphin收到後觸發請求後,觸發式節點運行狀態將轉變為成功