本文介紹任務編排功能涉及的變量。
變量介紹
變量是任務流中動態的值,分為系統變量、時間變量、非時間變量,均可以在節點中以${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],MMM將返回一月至十二月。 | 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 | 一個任務節點運行失敗。 |
在條件分支節點中使用運行狀態可以控制任務流在指定的運行狀態下執行后續任務。