調(diào)度參數(shù)是DataWorks任務(wù)調(diào)度時使用的參數(shù),可根據(jù)您配置的調(diào)度參數(shù)取值規(guī)則,在每次任務(wù)運行時自動替換為真實的取值,實現(xiàn)任務(wù)調(diào)度時間內(nèi)參數(shù)的動態(tài)替換。本文為您介紹調(diào)度參數(shù)支持的格式及相關(guān)使用。
背景信息
${變量名}
的方式定義變量,并在 界面,通過調(diào)度參數(shù)表達式為代碼中的變量賦值,實現(xiàn)調(diào)度場景下的代碼動態(tài)入?yún)ⅰ2糠止?jié)點的調(diào)度參數(shù)配置存在差異(例如,通用Shell節(jié)點中的變量只能以$1、$2、$3...命名),詳情請參見各類型節(jié)點的調(diào)度參數(shù)配置示例。- 調(diào)度參數(shù)的相關(guān)概念
- 調(diào)度參數(shù)支持的格式
- 使用調(diào)度參數(shù)的注意事項
- 附錄:參數(shù)列表
- 附錄:調(diào)度參數(shù)與業(yè)務(wù)日期、定時時間、實際運行時間的關(guān)系
- 附錄:關(guān)于夏令時說明
概念介紹
概念 | 描述 |
---|---|
業(yè)務(wù)日期 | 指昨天,在離線計算場景下,交易日期為業(yè)務(wù)發(fā)生的日期。DataWorks默認取調(diào)度時間內(nèi),任務(wù)預(yù)期調(diào)度運行時間的前一天(即昨天)的日期為業(yè)務(wù)日期,精確到天。例如,今天統(tǒng)計前一天的營業(yè)額,此處的前一天,指交易發(fā)生的日期,也就是業(yè)務(wù)日期。 |
定時時間 | 指今天,即某業(yè)務(wù)數(shù)據(jù)加工任務(wù)的預(yù)期執(zhí)行時間。DataWorks默認取調(diào)度時間內(nèi),任務(wù)預(yù)期調(diào)度運行的時間點(即今天)為定時時間,精確到秒。任務(wù)預(yù)期執(zhí)行時間,與實際開始執(zhí)行時間并非完全一致。任務(wù)實際開始執(zhí)行時間受多方因素影響。 |
調(diào)度參數(shù)支持的格式
取值方式 | 參數(shù)格式 | 參數(shù)示例 | 相關(guān)參考 |
---|---|---|---|
基于業(yè)務(wù)日期獲取時間數(shù)據(jù)。 | 通常,使用大括號${...} ,結(jié)合yyyy 、yy 、mm 及dd 自定義組合生成時間參數(shù),獲取業(yè)務(wù)日期前后多少年、月、天。說明 業(yè)務(wù)日期為 定時時間所在日期-1 。即${yyyymmdd} 的取值與$[yyyymmdd-1] 取值一致。 | 可通過${yyyymmdd} 、${yyyy-mm-dd} 等${...}自定義時間格式獲取,例如:
| 更多賦值示例,請參見自定義參數(shù)${...}。 |
基于定時時間獲取時間數(shù)據(jù)。 | 通常,使用中括號$[...] ,結(jié)合yyyy 、yy 、mm 、dd 、hh24 、mi 及ss 自定義組合生成時間參數(shù),獲取定時時間前后多少年、月、天、小時、分鐘、秒。 | 可通過$[yyyymmddhh24miss] 等$[...] 自定義時間格式獲取。例如,取前一天的前一小時,參數(shù)表達式為$[yyyymmdd-1-1/24] 。 |
|
場景示例 | 操作說明 | 相關(guān)參考 |
---|---|---|
通過引擎函數(shù)將時間格式的內(nèi)容加工為時間戳。 | 在代碼中使用引擎函數(shù)獲取目標(biāo)時間。 | 調(diào)度參數(shù)返回值二次處理的典型場景 |
${mm}01:獲取每月1號。 | 通過純字符串拼接,獲取目標(biāo)時間。 | 無 |
注意事項
${…}
參數(shù)相關(guān)。取N年前、N月前的時間數(shù)據(jù)需使用${…}參數(shù)。${…}
參數(shù)只能精確到年月日,因此${…}
參數(shù)不支持${yyyy-mm-dd-1/24}
用法。- 如需對年份、月份進行計算,建議使用
${…}
參數(shù)。例如,${yyyy-N}
、${mm-N}
。
$[…]
參數(shù)相關(guān)。- 取N小時前、N分鐘前的時間數(shù)據(jù)需使用
$[…]
參數(shù)。- $[…]參數(shù)基于時分秒進行替換,無法根據(jù)
$[yyyy-N]
、$[mm-N]
時間格式獲取多少年前、多少月前的時間數(shù)據(jù)。單獨取年份、月份,請使用${…}
參數(shù)。 - 如需獲取精確到秒的時間數(shù)據(jù)時,建議使用
$[…]
參數(shù)。例如,$[yyyy-mm-dd-1-1/24]
。
- $[…]參數(shù)基于時分秒進行替換,無法根據(jù)
$[...]
調(diào)度參數(shù)替換值不隨實例實際運行時間改變。$[...]
根據(jù)實例定時時間取值,調(diào)度參數(shù)替換值在實例生成時已確定,因此調(diào)度參數(shù)的替換值不會隨著實例實際運行時間而改變。詳情請參見附錄:調(diào)度參數(shù)與業(yè)務(wù)日期、定時時間、實際運行時間的關(guān)系。
說明$[...]
取小時參數(shù)時,支持取不同時間格式。hh24
代表根據(jù)24小時制時間格式取值,hh
代表根據(jù)12小時制時間格式取值。
- 取N小時前、N分鐘前的時間數(shù)據(jù)需使用
${bizdate}
變量名說明。部分節(jié)點代碼會自帶一個
${bizdate}
變量名,該變量名無特殊含義。您可根據(jù)業(yè)務(wù)需求自定義代碼中的變量名。- 取小時、分鐘時間的跨天問題處理。
取多少小時、分鐘,可能存在跨天問題,跨天時間的參數(shù)處理,詳情請參見調(diào)度參數(shù)往前取一個小時,如何處理跨天參數(shù)替換的問題。
附錄:參數(shù)列表
自定義參數(shù)${...}及$[...]的功能差異,詳情請參見${…}和$[…]參數(shù)的功能差異。- 自定義參數(shù)${...}常用取值示例如下。
日期加減周期 獲取方式 前/后N年 ${yyyy±N}
前/后N月 ${yyyymm±N}
前/后N周 ${yyyymmdd±7*N}
前/后N天 ${yyyymmdd±N}
年月日加/減N天 ${yyyymmdd±N}
加/減N年(yyyy格式) ${yyyy±N}年
加/減N年(yy格式) ${yy±N}年
重要- 單獨獲取
多少月前
、多少年前
等時間數(shù)據(jù),建議使用${...}
參數(shù)。 ${…}
參數(shù)僅支持對天、月、年時間進行加減。
- 單獨獲取
- 自定義參數(shù)$[...]常用取值示例如下。
時間加減周期 獲取方式 后N年 $[add_months(yyyymmdd,12*N)]
前N年 $[add_months(yyyymmdd,-12*N)]
后N月 $[add_months(yyyymmdd,N)]
前N月 $[add_months(yyyymmdd,-N)]
前/后N周 $[yyyymmdd±7*N]
前/后N天 $[yyyymmdd±N]
前/后N小時 獲取該時間數(shù)據(jù)包含如下方式: $[hh24miss±N/24]
、$[hh24±N/24]
$[自定義時間格式±N/24]
。例如,取前一個小時的不同時間格式:- 取月:
$[mm-1/24]
。 - 取年:
$[yyyy-1/24]
。 - 取年月:
$[yyyymm-1/24]
。 - 取年月日:
$[yyyymmdd-1/24]
。 - 取前一天且前一小時:
$[yyyymmdd-1-1/24]
- 取月:
前/后N分鐘 獲取該時間數(shù)據(jù)包含如下方式: $[hh24miss±N/24/60]
$[yyyymmddhh24miss±N/24/60]
$[mi±N/24/60]
$[自定義時間格式±N/24/60]
。例如,取定時時間15分鐘前的不同時間格式:$[yyyy-15/24/60]
$[yyyymm-15/24/60]
$[yyyymmdd-15/24/60]
$[hh24-15/24/60]
$[mi-15/24/60]
hh24
表示小時(12進制使用hh
),由于$cyctime
精確到時分秒,因此$[…]
參數(shù)可以精確到時分秒。您可以結(jié)合引擎函數(shù),獲取更多參數(shù)取值,詳情請參見調(diào)度參數(shù)返回值二次處理的典型場景。重要- 獲取
多少小時
、多少分鐘
前等時間數(shù)據(jù)請使用$[...]
參數(shù)。 - 調(diào)度參數(shù)替換值在實例生成時已經(jīng)確定,因此調(diào)度參數(shù)的替換值不會隨著實例實際運行時間而改變。
- 系統(tǒng)內(nèi)置參數(shù)DataWorks支持下表的系統(tǒng)參數(shù),可用于設(shè)置調(diào)度參數(shù)的取值。但該方式靈活性差,建議參考上文描述,使用自定義參數(shù)的方式設(shè)置調(diào)度參數(shù)取值。
內(nèi)置參數(shù) 定義 $bizdate 業(yè)務(wù)日期,格式為 yyyymmdd
,與自定義參數(shù)${yyyymmdd}
取值一致。該參數(shù)的應(yīng)用較為廣泛,日常調(diào)度中默認任務(wù)預(yù)期運行時間的前一天為業(yè)務(wù)日期。
$cyctime 任務(wù)的定時時間,格式為 yyyymmddhh24miss
,與自定義參數(shù)$[yyyymmddhh24miss]
取值一致。$gmtdate 當(dāng)前日期,格式為 yyyymmdd
。該參數(shù)默認取當(dāng)天日期,執(zhí)行補數(shù)據(jù)操作時輸入的日期為
業(yè)務(wù)日期+1
。$bizmonth 業(yè)務(wù)月份,格式為 yyyymm
。- 如果業(yè)務(wù)日期的月份與當(dāng)前月份一致,則
$bizmonth=業(yè)務(wù)日期月份-1
。 - 如果業(yè)務(wù)日期的月份與當(dāng)前月份不一致,則
$bizmonth=業(yè)務(wù)日期月份
。
$jobid 任務(wù)所屬的業(yè)務(wù)流程ID。 $nodeid 節(jié)點ID。 $taskid 節(jié)點產(chǎn)生的實例ID。 - 如果業(yè)務(wù)日期的月份與當(dāng)前月份一致,則
附錄:調(diào)度參數(shù)與業(yè)務(wù)日期、定時時間、實際運行時間的關(guān)系
關(guān)系類別 | 說明及示例 |
---|---|
調(diào)度參數(shù)與實際運行時間的關(guān)系 | 調(diào)度參數(shù)替換值在實例生成時已確定,因此,調(diào)度參數(shù)的替換值不會隨著實例實際運行時間的改變而產(chǎn)生變化。 |
調(diào)度參數(shù)與任務(wù)定時時間的關(guān)系 | 當(dāng)調(diào)度參數(shù)取小時、分鐘時,參數(shù)替換值由實例的定時時間決定,即由節(jié)點調(diào)度配置的定時調(diào)度時間決定。 例如,當(dāng)前節(jié)點為小時調(diào)度節(jié)點,并且設(shè)置定時調(diào)度時間為 00:00 ~23:59 ,每小時調(diào)度一次,則:
|
調(diào)度參數(shù)與業(yè)務(wù)日期、定時時間的關(guān)系 |
附錄:關(guān)于夏令時說明
DataWorks可保障在進入和退出夏令時當(dāng)天,任務(wù)能夠正確運行。進入與退出夏令時切換產(chǎn)品側(cè)的解決方案詳情,請參見場景:夏令時切換對調(diào)度任務(wù)運行的影響。為避免夏令時切換對您任務(wù)執(zhí)行造成額外理解成本,建議實施夏令時的地域優(yōu)先查看此文檔。后續(xù):配置及使用調(diào)度參數(shù)
了解調(diào)度參數(shù)支持的時間格式后,您可基于業(yè)務(wù)需求配置并使用調(diào)度參數(shù),詳情請參見配置并使用調(diào)度參數(shù)。