如何在DataWorks V2.0 的 ODPS SQL任務中使用調度參數

在ODPS SQL 中使用調度參數

DataWorks的調度參數分爲兩種,一種是系統調度參數,另一種是自定義點都參數。

系統調度參數只有兩個:
bizdate:獲取到業務日期,展示格式爲:yyyymmdd;
cyctime:獲取到任務實例的定時時間,格式爲:yyyymmddhh24miss;

在SQL節點中使用系統調度參數

以下是在SQL代碼中的用法,並設置該任務的定時運行時間爲00:23分。
image

image

請注意:當代碼中使用了調度參數,在界面上直接運行的時候,需要傳入一個具體的值,因爲直接運行不會經過調度系統,所以參數不會轉換,需要輸入一個具體的值,該值僅本次運行有效。
image

當任務提交後,點擊冒煙測試運行,選擇傳入的業務日期時間,點擊確認。
image

運行結果如下:
image
可以看到,時間都已經被替換了,bizdate獲取到了我們傳入的業務日期,cyctime獲取到了任務的定時時間。

在SQL中使用自定義調度參數

DataWorks 除了支持系統默認調度參數外,還支持自定義調度參數,可以對時間的展示格式進行選擇,而且可以在時間數值上進行相加減。

使用自定義調度參數的方法還是一樣,先在代碼中聲明變量,然後給變量賦值。
image

運行結果如下:
image

特別注意:花括號和中括號的用途

image
若對時間表達式的格式有要求,可自行修改,比如:$[yyyy-mm-dd],
注意,如果是DATETIME格式,請拆開成兩個變量組合一下,中間用空格隔開。
image

在給參數賦值時,$[] 中寫時間表達式即可。

獲取+/-週期的方法:

後N年:$[yyyy+N]

前N年:$[yyyy-N]

後N月:$[yyyymm+N]

前N月:$[yyyymm-N]

後N周:$[yyyymmdd+7*N]

前N周:$[yyyymmdd-7*N]

後N天:$[yyyymmdd+N]

前N天:$[yyyymmdd-N]

後N小時:$[yyyymmddhh24miss+N/24]

前N小時:$[yyyymmddhh24miss-N/24]

後N分鐘:$[yyyymmddhh24miss+N/60/24]

前N分鐘:$[yyyymmddhh24miss-N/60/24]

關於在SQL中使用調度參數,還有任何疑問,可以加入DataWorks的釘釘羣,羣號如下:
DataWorks數加交流0羣(羣號:11718465)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章