全部產品
Search
文件中心

Dataphin:跨節點輸出參數賦值

更新時間:Jan 14, 2026

跨節點參數功能,允許任務間傳遞訊息。輸出節點(如SQL、Shell、Python任務)能輸出參數,輸入節點可以接收並使用這些參數,解決了通過公用儲存代理訊息的複雜性和低效問題。本文將為您介紹如何為跨節點輸出參數賦值。

背景介紹

Dataphin的節點(任務)依賴關係構成了一個有向非循環圖(DAG)。在過去,DAG的節點之間只能傳遞狀態資訊,即上遊節點的運行狀態會影響其下遊節點,而系統對節點自身的運行內容並不感知,也無法通過DAG將這些內容向下傳遞。如果下遊節點需要消費上遊節點的產出,必須依賴上遊節點將產出寫入公用儲存,隨後下遊節點再從公用儲存中讀取,最常用的公用位置為資料表。然而,通過公用儲存代理訊息存在以下不足:

  • 公用儲存的寫入和讀取操作流程相對複雜,某些類型的節點甚至無法進行操作。例如,邏輯表節點的計算邏輯完全由欄位計算邏輯決定,因此無法單獨讀取公用儲存中的訊息。

  • 將訊息寫入公用儲存並進行讀取的效率較低;若存在多個下遊節點需要使用該訊息,則每個節點均需獨立讀取訊息。此外,若訊息的儲存位置或格式發生變更,所有下遊節點都需同步調整其讀取方式。

  • 中轉的訊息通常非常短小,通過中轉方式傳遞比較繁重。

為瞭解決以上問題,Dataphin引入了跨節點參數來在節點(任務)間傳遞訊息。

  • 輸出節點:輸出參數(向外傳遞訊息)的節點。僅支援Shell、Python和SQL(包括 MaxCompute SQL、Hive SQL、AnalyticDB for PostgreSQL SQL等)類型的計算任務輸出參數。

  • 輸入節點:接收並使用參數的節點。一個輸出節點可以串連多個輸入節點,只要是輸出節點的直接下遊節點,都可以引用輸出節點的跨節點參數。

跨節點輸出參數賦值說明

在跨節點輸出參數中聲明跨節點輸出參數後,可在代碼中對參數賦值。實際使用可參考跨節點參數最佳實務

重要
  • 僅支援Shell、Python和SQL計算任務定義跨節點輸出參數。

  • 整合任務、計算任務、普通/層級維度邏輯表、事實邏輯表的輸入參數支援跨節點變數參數。

任務類型

指派陳述式

右鍵菜單捷徑

Shell任務

在代碼中通過以下命令對跨節點參數賦值:

setv "{參數名稱}" {參數值}

例如:

setv "output_variable" 123

重要
  • setv"{variable_name}" {value}在代碼中對跨節點參數{variable_name}賦值,值為{value},setv是一個Shell函數,須遵循Shell的使用文法。

  • setv為系統保留函數,請避免命名衝突。

在編輯器中滑鼠右鍵單擊並選擇設定跨節點參數image.png

Python任務

在代碼中通過以下命令對跨節點參數賦值:

setv("{參數名稱}", {參數值})

例如:

setv("output_variable", 123)

重要
  • setv"{variable_name}" {value}在代碼中對跨節點參數{variable_name}賦值,值為{value},setv是一個Python函數,須遵循Python的使用文法。

  • setv為系統保留函數,請避免命名衝突。

在編輯器中滑鼠右鍵單擊並選擇設定跨節點參數

image.png

SQL任務

set dataphin.task.result.type = dp_context_param;

select “value” as variable_name; 或其他查詢語句,將取查詢結果的第一行,欄位名稱為參數名,欄位取值為參數值。

在編輯器中滑鼠右鍵單擊並選擇設定跨節點參數

image.png

說明

AnalyticDB for PostgreSQL SQL任務不支援右鍵菜單捷徑,請手動輸入命令。