1. 概述
1.1 版本
FineDataLink 版本 | 功能變動 |
---|---|
1.7 | 支援自訂參數功能:「參數設定」 |
2.0 | 允許定義值相同的參數,但是會給出提醒,詳情參見本文 4.1 節 |
4.0.19 | 支援定義的參數類型,從日期、字串、整數型態、雙精度型、布林型,改為日期、正文、數值、布爾 |
4.0.24 | 支援參數 yy |
4.1.0 | 原「參數設定」改名為「參數列表」,分為任務內參數、全局參數、內建參數;在「參數列表」介面中,可查看該任務可用的參數 |
1.2 應用場景
業務流程中有時需要根據實際業務情況設定參數便於進行後續的資料處理和開發,FineDataLink 支援使用者自訂參數,在資料開發中直接引用參數即可。
1.3 功能簡介
使用者可在「參數列表」中新增「任務參數」,即自訂參數,定義好的參數可在當前任務中引用。如下圖所示:
每次构建任务运行实例时,静态参数的值会确定下来,实例运行过程中静态参数的值不会发生变化。
2. 注意事項
參數名和參數值中不允許包含${}
使用者新增的「任務參數」只歸屬於當前任務
若參數為整數型態、雙精度型、布林型,直接用${參數名}的方式引用參數。
若參數值為字元類型、日期類型,需要加上單引號引用參數:'${參數名}'
3. 自訂時間參數
自訂時間參數需要基於系統內建參數 內建參數,透過對 ${cyctime} 加減實現時間的自訂,自訂的格式為:${時間格式+N} 或${時間格式-N}。
「時間格式」可以透過 yyyy、yy、mm、dd、hh、mi、ss 自由組合成 yyyy、mm、dd、yyyymm、mmdd、yyyymmdd、yyyy-mm-dd、yyyy-mm-dd hh:mi:ss 等,其中:
注:參數格式不支援:mi:ss、mi、ss
時間格式 | 說明 |
---|---|
yyyy | 表示 4 位的年份,取值為 ${cyctime} 的年份。 |
mm | 表示月,取值為 ${cyctime} 的月份。 |
dd | 表示天,取值為 ${cyctime} 的天。 |
hh | 表示小時(24小時制),取值為 ${cyctime} 的小時。 |
mi | 表示分鐘,取值為 ${cyctime} 的分鐘。 |
ss | 表示秒,取值為 ${cyctime} 的秒。 |
例如要自訂時間參數 para_time,預設值為 ${cyctime} 所在年份的前年,寫法如下圖所示:
注:預設參數為時間類型。
目的 | 輸入方式 | 範例(假設${cyctime}的值為 2021-09-09 20:45:50) |
---|---|---|
後 N 年 | yyyy+N | 若N為 1,則值為 2022 |
前 N 年 | yyyy-N | 若N為 1,則值為 2020 |
後 N 月 | yyyymm+N 或者 yyyy/mm+N | 若N為 6,則值為 202203 |
前 N 月 | yyyymm-N 或者 yyyy/mm-N | 若N為 6,則值為 202103 |
後 N 週 | yyyymmdd+7*N 或者 yyyy/mm/dd+7*N | 若N為 1,則值為 20210916 |
前 N 週 | yyyymmdd-7*N 或者 yyyy/mm/dd-7*N | 若N為 1,則值為 20210902 |
後 N 天,年月日加 N 天 | yyyymmdd+N 或者 yyyy/mm/dd+N | 若N為 1,則值為 20210910 |
前 N 天,年月日減 N 天 | yyyymmdd-N 或者 yyyy/mm/dd-N | 若N為 1,則值為 20210908 |
前 N 小時 | yyyymmdd hh:mi:ss-N/24 或者 yyyy/mm/dd hh:mi:ss-N/24 | 若N為 1,則值為 20210909 19:45:50 |
後 N 小時 | yyyymmdd hh:mi:ss+N/24 或者 yyyy/mm/dd hh:mi:ss+N/24 | 若N為 1,則值為 20210909 21:45:50 |
前 N 分鐘 | yyyy-mm-dd hh:mi:ss-N/24/60 | 若N為 5,則值為 2021-09-09 20:40:50 |
後 N 分鐘 | yyyy-mm-dd hh:mi:ss+N/24/60 | 若N為 5,則值為 2021-09-09 20:50:50 |
前 N 秒 | yyyy-mm-dd hh:mi:ss-N/24/60/60 | 若N為 5,則值為 2021-09-09 20:45:45 |
前 N 小時 (只顯示時分秒) | hh:mi:ss-N/24 | 當前時間為 17:21:43 若 N 為3,則值為 14:21:43 |
後 N 小時 (只顯示時分秒) | hh:mi:ss+N/24 | 當前時間為 17:21:43 若 N 為3,則值為 22:21:43 |
前 N 分鐘 (只顯示時分秒) | hh:mi:ss-N/24/60 | 當前時間為 17:21:43 若N為 5,則值為 17:16:43 |
後 N 分鐘 (只顯示時分秒) | hh:mi:ss+N/24/60 | 當前時間為 17:21:43 若N為 5,則值為 17:26:43 |
前 N 秒 (只顯示時分秒) | hh:mi:ss-N/24/60/60 | 當前時間為 17:21:43 若N為 5,則值為 17:21:38 |
定義時間參數的一個簡單範例如下:
1)建立一個 ETL 任務,自訂一個 para_time 參數,預設值為 yyyy-mm-1(意為取值為 ${cyctime} 的前一個月)。如下圖所示:
注:參數設定的值類型需要和 SQL 語句中的時間欄位類型一致,比如範例中使用的參數值是yyyy-mm-1,則下面步驟中 SQL 語句中「mytime」日期欄位類型也應該是 yyyy-mm-dd 類型,而不能是 yyyy/mm/dd 類型。
2)任務拖入一個「資料同步」節點,設定資料來源,輸入 SQL 語句,只取出日期欄位中小於參數的資料。
3)點選「資料預覽」,可以看到取出了運作前一個月之前的資料。如下圖所示:
4. 自訂常數參數
除了可以自訂時間參數,使用者還可以自訂常數參數,可以是數字或正文等。
常數參數支援設定的類型有:「正文」、「數值」、「布爾」。
定義常數參數的範例如下:
1)建立一個定時任務,定義一個正文類型的參數「para_a」,預設參數值有多個,用逗號將'銷售經理'和'銷售代表'分開,如下圖所示:
2)在其他節點的 SQL 語句中可以使用該參數,比如「資料同步」節點中只取出職務為「銷售經理」和「銷售代表」的資料。如下圖所示:
3)點選「資料預覽」,可查看取出的資料。如下圖所示:
需要注意的是,當參數類型是正文時:
若參數值是單個值,可以直接輸入正文,例如參數名稱為 a,值為:蘋果,使用時需要加單引號:'${a}'
若參數值是多個值,參數值需要用單引號和逗號分開,例如參數名稱為 a ,值為:'蘋果','香蕉',使用時不需要加單引號:${a}