历史版本22 :自訂參數(靜態參數) 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

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. 自訂時間參數编辑

3.1 功能說明

自訂時間參數需要基於系統內建參數 內建參數,透過對 ${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} 所在年份的前年,寫法如下圖所示:

注:預設參數為時間類型。

1)預設參數為時間類型。

2)4.2.12.4 及之後版本,支援為參數新增描述。

3)4.2.12.4 及之後版本,增加預設範本,將日期參數分為「時間格式」、「偏移」兩部分偏移部分,幫助使用者將變數拆成以下三部分:

  • 之前、之後“-”、“+”

  • 偏移N的值

  • 偏移的單位:年、月、日、時、分、秒

目的輸入方式
範例(假設${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

3.2 範例

定義時間參數的一個簡單範例如下:

1)建立一個 ETL 任務,自訂一個 para_time 參數,預設值為 yyyy-mm-1(意為取值為 ${cyctime} 的前一個月)。如下圖所示:

注:參數設定的值類型需要和 SQL 語句中的時間欄位類型一致,比如範例中使用的參數值是yyyy-mm-1,則下面步驟中 SQL 語句中「mytime」日期欄位類型也應該是 yyyy-mm-dd 類型,而不能是 yyyy/mm/dd 類型。

2)任務拖入一個「資料同步」節點,設定資料來源,輸入 SQL 語句,只取出日期欄位中小於參數的資料。

3)點選「資料預覽」,可以看到取出了運作前一個月之前的資料。如下圖所示:

1698113468956133.png

4. 自訂常數參數编辑

除了可以自訂時間參數,使用者還可以自訂常數參數,可以是數字或正文等。

常數參數支援設定的類型有:「正文」、「數值」、「布爾」。

定義常數參數的範例如下:

1)建立一個定時任務,定義一個正文類型的參數「para_a」,預設參數值有多個,用逗號將'銷售經理''銷售代表'分開,如下圖所示:

2)在其他節點的 SQL 語句中可以使用該參數,比如「資料同步」節點中只取出職務為銷售經理銷售代表的資料。如下圖所示:

3)點選「資料預覽」,可查看取出的資料。如下圖所示:

1698114027883253.png