調(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ù)界面,通過調(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ù)支持賦值常量,即每次進行任務(wù)調(diào)度時,該參數(shù)傳入同一個值。本文主要基于通過調(diào)度參數(shù)實現(xiàn)代碼動態(tài)入?yún)鼍斑M行說明。
本文為您介紹:了解調(diào)度參數(shù)支持的格式后,您可根據(jù)業(yè)務(wù)需求配置并使用調(diào)度參數(shù),詳情請參見后續(xù):配置及使用調(diào)度參數(shù)

概念介紹

調(diào)度參數(shù)通常會被用于指代某些動態(tài)時間的場景,此場景下,您可基于業(yè)務(wù)日期定時時間進行調(diào)度參數(shù)的取值設(shè)置。配置調(diào)度參數(shù)前,您可先了解這兩個時間概念,便于后續(xù)設(shè)置調(diào)度參數(shù)取值。
概念描述
業(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ù)支持的格式

通常,調(diào)度參數(shù)用于獲取不同的時間數(shù)據(jù),您可根據(jù)業(yè)務(wù)需求,選擇基于業(yè)務(wù)日期或定時時間獲取相應(yīng)時間數(shù)據(jù)。
說明 DataWorks提供了部分內(nèi)置變量,其格式固定,為了使用更加靈活,建議您通過以下方式自定義時間格式。
取值方式參數(shù)格式參數(shù)示例相關(guān)參考
基于業(yè)務(wù)日期獲取時間數(shù)據(jù)。通常,使用大括號${...},結(jié)合yyyyyymmdd自定義組合生成時間參數(shù),獲取業(yè)務(wù)日期前后多少年、月、天。
說明 業(yè)務(wù)日期為定時時間所在日期-1。即${yyyymmdd}的取值與$[yyyymmdd-1]取值一致。
可通過${yyyymmdd}${yyyy-mm-dd}等${...}自定義時間格式獲取,例如:
  • ${yyyymmdd±N}
  • ${yyyymmdd±7*N}
  • ${yy±N}
  • ${mm}
  • ${yyyy-mm-dd±N}
更多賦值示例,請參見自定義參數(shù)${...}
基于定時時間獲取時間數(shù)據(jù)。通常,使用中括號$[...],結(jié)合yyyyyymmddhh24miss自定義組合生成時間參數(shù),獲取定時時間前后多少年、月、天、小時、分鐘、秒。可通過$[yyyymmddhh24miss]$[...]自定義時間格式獲取。例如,取前一天的前一小時,參數(shù)表達式為$[yyyymmdd-1-1/24]
調(diào)度參數(shù)無法覆蓋的場景(即通過上述表達式無法直接獲取預(yù)期格式的參數(shù)賦值),您可先通過上述方式獲取時間格式數(shù)據(jù),再執(zhí)行下表操作獲取相應(yīng)時間。
場景示例操作說明相關(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]
    • $[...]調(diào)度參數(shù)替換值不隨實例實際運行時間改變。

      $[...]根據(jù)實例定時時間取值,調(diào)度參數(shù)替換值在實例生成時已確定,因此調(diào)度參數(shù)的替換值不會隨著實例實際運行時間而改變。詳情請參見附錄:調(diào)度參數(shù)與業(yè)務(wù)日期、定時時間、實際運行時間的關(guān)系

    說明
    • $[...]取小時參數(shù)時,支持取不同時間格式。
    • hh24代表根據(jù)24小時制時間格式取值,hh代表根據(jù)12小時制時間格式取值。
  • ${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。

附錄:調(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)度一次,則:
  • 第一個小時實例定時時間為0點,小時的參數(shù)取值為00
  • 第二個小時實例定時時間為1點,小時的參數(shù)取值為01
調(diào)度參數(shù)與業(yè)務(wù)日期、定時時間的關(guān)系與業(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ù)