本文介紹任務編排功能涉及的變數。
變數介紹
變數是任務流中動態值,分為系統變數、時間變數、非時間變數,均可以在節點中以${varName}
的形式動態引用。
系統變數
系統預定義的變數。例如當前任務流ID、任務流的已耗用時間等。
除系統變數外,其他變數統稱為自訂變數,自訂變數名不可重複定義,若自訂變數和系統變數重名,則自訂變數的值會覆蓋系統變數的值,即自訂變數的優先順序更高。
時間變數
任務流變數(全域變數):任務流變數基於業務時間(已耗用時間的前一天)進行位移,在當前任務流的所有節點都可使用。
說明您可以給任務流中的任一節點設定任務流變數,其他節點會自動同步該設定。
節點變數:定義時間變數的方式是基於系統內建的時間變數bizdate(T-1)進行位移。節點變數只能在該節點中使用。
例如當前日期為2023年08月22日,變數的時間格式調整為+1日,則此時間變數表示2023年08月23日。
非時間變數
任務流常量(全域變數):任務流常量為固定值,在當前任務流的所有節點中都可使用。
輸入變數:系統自動擷取。您可使用 ${var_name} 的形式在當前節點的SQL語句中引用輸入變數,或者將輸入變數用於條件分支節點中作為判斷變數。輸入變數包括:
輸出變數:輸出變數由當前節點定義並賦值,可被下遊節點查看和引用。
例如,在指令碼代碼節點中增加輸出變數,該輸出變數可以在下遊節點的SQL語句中被引用。
單一實例SQL賦值輸出變數:通過該節點定義SQL查詢的結果集,用該結果集充當二維矩陣,在變數定義過程中任意取出一個元素,或者基於任意一個行向量i、列向量j做基於字元的拼接。
指令碼輸出變數:如果指令碼最後一行輸出的是JSON結構資料,結構格式為
{ key1: value1, key2: value2, … }
,且value是String類型,指令碼任務會自動擷取JSON索引值對,解析出變數名為key的變數,變數key的值為value。變數的引用方式為${key}
。例如,指令碼的最後一行是
echo {"hello": "world"}
,那麼指令碼任務會解析出變數hello,變數hello的值為world。
配置時間變數
配置項 | 說明 |
變數名 | 輸入自訂變數的名稱。 說明 如需刪除已配置的變數,您可以單擊右側的。 |
變數規則 | 配置時間變數的規則。
說明 配置時間變數後,您可以在SQL語句中引用該變數,格式為 |
時間格式
變數支援的時間格式如下:
時間變數 | 描述 | 輸入樣本 | 返回樣本 |
公元 | G表示公元。 | Gyyyy | 公元2021年 |
年 |
| yyyy | 2021 |
月 | M當前年份的第N個月,M的傳回值為[1,12],MM的傳回值為[01,12]。 | MM | 08 |
周 |
| ww | 13 |
天 |
| D | 360 |
周幾 |
| e | 1 |
上午、下午 | a表示上午或下午。傳回值為:上午(00:00-11:59)、下午(12:00-23:59)。 | a | 上午 |
小時 |
| HH | 10 |
分鐘 | m表示分鐘數,m的傳回值[0, 59],mm的傳回值[00, 59]。 | m | 27 |
秒 |
| ss | 08 |
時區 | z表示時區。 | z | UTC+08:00 |
時間格式的組合樣本:
輸入樣本 | 返回樣本 |
| 2021-08-12 |
| 20210801 |
| 11:05:21 |
| 20210812 11:05:21 |
系統變數
變數名 | 描述 | 樣本 |
sys.flow.start.timestamp | 已耗用時間的時間戳記。 | 2021-05-24T11:20:07.562+08:00 |
sys.flow.start.year | 已耗用時間的年份。 | 2021 |
sys.flow.start.month | 已耗用時間的月份。 | 5 |
sys.flow.start.day | 已耗用時間的日期。 | 24 |
sys.flow.start.hour | 已耗用時間的小時。 | 11 |
sys.flow.start.minute | 已耗用時間的分鐘。 | 20 |
sys.flow.start.second | 已耗用時間的秒。 | 7 |
sys.flow.start.milliseconds | 已耗用時間的毫秒數。 | 562 |
sys.flow.start.timezone | 已耗用時間的時區。 | Asia/Shanghai |
sys.flow.biztime | 業務時間,預設為已耗用時間減一天。 | 1621740007562 |
sys.flow.name | 任務流名稱。 | dwd_activity日pv |
sys.node.name | 任務名稱。 | 單一實例SQL-1 |
運行狀態
變數名 | 描述 |
all_success | 任務全部運行成功。 |
all_failed | 任務全部運行失敗。 |
one_success | 一個任務節點運行成功。 |
one_failed | 一個任務節點運行失敗。 |
在條件分支節點中使用運行狀態可以控制任務流在指定的運行狀態下執行後續任務。