節點上下文用于支持參數在上游節點和下游節點之間傳遞,本文為您介紹如何定義、使用節點上下文中的輸入參數和輸出參數。
背景信息
在上游節點定義輸出參數及其取值后,在下游節點定義輸入參數(取值引用上游節點的輸出參數),即可在下游節點中使用此參數獲取上游節點傳遞過來的取值。
注意事項
節點上下文參數僅用于上游節點的節點上下文輸出參數作為下游節點的節點上下文輸入參數,無法直接將上游節點的查詢結果傳遞到下游,如果您需要將上游節點的查詢結果傳遞到下游節點,可以使用賦值節點,詳情可參見文檔:賦值節點。部分節點支持賦值參數的功能,賦值參數使用與賦值節點行為大體一致,您可以參考賦值節點使用文檔來進行賦值參數的配置,關于賦值參數的配置可參考下文。
配置節點上下文
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入數據開發。
在數據開發,面板雙擊打開相應節點的編輯頁面。
單擊右側的調度配置,在節點上下文區域配置本節點輸入參數和本節點輸出參數。
各類型節點的調度參數配置,詳情請參見SQL類型節點及離線同步節點。
配置輸出參數
通用場景
您可以在節點上下文中定義本節點輸出參數,輸出參數的取值分為常量和變量兩種類型。
完成輸出參數的定義并提交當前節點后,即可在下游節點中引用,作為下游節點的輸入參數的取值。
不支持在當前節點編寫代碼的方式,對定義的輸出參數進行賦值。
字段 | 含義 | 描述 |
編號 | 編號為系統控制,自動增加。 | 無 |
參數名 | 定義的輸出參數名稱。 | 無 |
類型 | 參數類型。 | 包括常量和變量。 |
取值 | 輸出參數的取值。 | 取值類型包括常量和變量:
|
描述 | 參數的簡要描述。 | 無 |
來源 | 當前參數的來源。 | 包括系統默認添加、自動解析和手動添加。 |
操作 | 提供編輯和刪除兩種操作。 | 當存在下游節點依賴時,不支持編輯和刪除。在下游節點添加對上游節點引用之前,請謹慎檢查,確保上游輸出定義正確。 |
特殊場景:賦值參數
如果您需要將一個任務的查詢結果作為參數傳遞給下游任務進行引用,請在上游節點(該節點需支持使用賦值參數功能)的編輯頁面,單擊右側的調度配置。在該節點的
區域,單擊添加賦值參數,一鍵添加輸出的賦值參數。目前支持使用賦值參數的節點包括:EMR Hive、EMR Spark SQL、ODPS Script、Hologres SQL、AnalyticDB for PostgreSQL和MySQL等。
您需要購買DataWorks標準版及以上版本,才可以在上述支持賦值參數的節點中使用賦值參數功能。
您單擊添加賦值參數后,賦值參數會傳遞上游節點生產的查詢結果。如果產生結果為空,不會阻塞本節點運行,但下游引用的節點可能會失敗。
下游節點需要在輸入參數中添加上游節點的賦值參數,在代碼中通過二維數組的方式引用。其使用方式和賦值語言為ODPS SQL的賦值節點一致,詳情請參見賦值節點。
配置輸入參數
節點的輸入參數可用于獲取其上游節點的輸出參數,添加成功后可以在當前節點代碼中使用,使用方式與調度參數在代碼中的定義變量的方式一致。 當前節點設置依賴某個上游節點后,當前節點才能在本節點輸入參數處將該上游節點的輸出添加為當前節點的輸入參數。
設置上下游依賴關系。
在調度依賴中添加依賴的上游節點。
上游節點配置輸出參數。
在節點上下文中,添加輸出參數定義。配置詳情請參見配置輸出參數。
下游節點配置輸入參數。
在節點上下文中,添加輸入參數定義,取值選擇引用上游節點的輸出參數。
字段
含義
說明
編號
編號為系統控制,自動增加。
無
參數名
定義的輸入參數名稱。
無
取值來源
參數的取值來源,引用上游節點取值。
取值是上游節點輸出參數的具體取值。
描述
參數的簡要描述。
無
父節點ID
父節點ID。
自動從上游節點解析得到。
來源
當前參數的來源。
包括系統默認添加、自動解析和手動添加。
操作
提供編輯和刪除兩種操作。
無
下游節點使用輸入參數
在節點中使用定義的輸入參數的方法和其它系統變量一致,引用方式為${輸入參數名}
。下圖為在Shell節點中進行引用。
執行任務時,您需運行上下游節點所在的業務流程,保證上下游節點按順序執行。否則下游節點使用的輸入參數無效。
系統支持的全局變量
系統變量
系統變量
說明
${projectId}
項目ID。
${projectName}
MaxCompute項目名。
${nodeId}
節點ID。
${gmtdate}
實例定時時間所在天的00:00:00,格式為yyyy-MM-dd 00:00:00。
${taskId}
任務實例ID。
${seq}
任務實例序號,代表該實例在當天同節點實例中的序號。
${cyctime}
實例定時時間。
${status}
實例的狀態:成功(SUCCESS)、失敗(FAILURE)。
${bizdate}
業務日期。
${finishTime}
實例結束時間。
${taskType}
實例運行類型:正常(NORMAL)、手動(MANUAL)、暫停(PAUSE)、空跑(SKIP)、未選擇(UNCHOOSE)、周月空跑(SKIP_CYCLE)。
${nodeName}
節點名稱。
其它參數設置請參見調度參數支持的格式。