1. 概述
1.1 版本說明
FineDataLink 版本 | 功能變動 |
---|---|
2.0 | ETL 作業新增一種節點類型:「條件分支」 |
4.0.19 | 「條件分支」中,支援定義的參數類型,從日期、字串、整數型態、雙精度型、布林型,改為日期、正文、數值、布爾 |
4.1.0 | 「條件分支」中新增參數時,可透過摺疊樹選擇參數 |
1.2 應用場景
進行資料開發時,需要基於某個變數作為判斷的條件,將節點與上游節點、其他任務建立聯絡,靈活地控制下游節點運作的前提。
例如:
當某個部門銷售額達到一定值時,將該部門標記為優秀。
基於任務 1 執行的結果(success\fail),判斷是否執行任務 2 。
當離職人員資料達到 N 條時,將該部門的穩定性標記為風險。
1.3 功能簡介
「條件分支」節點需要與 参数 配合使用,當參數的值符合某個條件時,運作下游節點或者運作下游節點裏面的哪一個;當參數值不符合某個條件時,跨越執行下游節點,未執行的下游節點不等同於運作失敗,不影響整體任務的運作。
demo 範例詳情參見:https://demo.finedatalink.com/ 「條件分支-複本」
2. 使用說明
2.1 準備參數
參數說明請參見:参数概述
「條件分支」節點需要與參數配合使用,當參數的值符合某個條件時,運作下游節點或者運作下游節點裏面的哪一個。
需注意:
1)若參數值為一個,設定參數後,後接一個「條件分支」節點或直接使用「條件分支」節點判斷如何運作後續節點即可。如下圖所示:
2)若參數值為多個,由於「條件分支」節點每次只能使用一個參數值進行判斷,需要將「條件分支」節點及後續要判斷是否運作的節點放到「循環容器」節點中,由「循環容器」節點遍歷所有參數值。如下圖所示:
2.2 條件分支節點設定項說明
「條件分支」節點設定項如下圖所示:
2.2.1 下游節點
當條件判斷透過時,運作對應下游節點,否則不運作。
2.2.2 判斷條件
1)判斷條件說明:
條件判斷傳回的值為布林型:true 或 false
當回傳值為 true 時,執行下游節點。
當回傳值為 false 時,不執行下游節點。
判斷條件預設傳回 null ,即無判斷,直接執行下游節點。
判斷條件中支援使用內建參數,可直接在條件配置中輸入參數名,格式為${參數名稱}
注:某個條件可以由多個條件用且、或的關係組成。
基於不同的參數類型,提供不同的判斷條件:
注:4.1.1 及之後版本,產品內條件判斷邏輯進行了統一,每個判斷條件的說明可參見:條件判斷邏輯說明
參數類型 | 可選擇的判斷條件 |
---|---|
正文 | 屬於、不屬於、包含、不包含、開頭是、結尾是、開頭不是、結尾不是、為空、非空 |
日期 | 介於、不介於、某個日期之前、某個日期之後、等於、不等於、為空、非空 |
數值(整數型態、雙精度型) | 屬於、不屬於、介於、不介於、大於、小於、大於等於、小於等於、為空、非空 |
布爾 | 為真、為假 |
2)可透過摺疊樹選擇參數:
4.1.0 及之後版本,新增參數時,可透過摺疊樹選擇參數,可選的參數類型:任務內參數、全局參數、內建參數。如下圖所示:
3)常數條件值說明:
直接輸入常數類型的條件值,和定義參數時輸入常數格式保持一致,具體要求如下表所示:
類型 | 範例 | 備註 |
---|---|---|
數字-單個 | 1 | |
數字-陣列 | 1.4,2.6,4.8,5.6 | 數字間用英文逗號隔開 |
正文-單個 | 正文1 | |
正文-多個 | '正文1','正文2' | 正文加單引號,用英文逗號隔開 |
用正文常數值舉個例子,設定如下圖所示:
2.3 設定後續運作節點
使用者根據實際情況設定條件分支後需要運作的節點。
3. 操作步驟
本文範例:每天根據機台的當機次數,將機台對應的維護級別寫到另一張表裏(任務運作當天,日期為2024-08-06)。
3.1 資料庫表說明
範例任務用到兩張表,其表名稱和欄位的說明分別如下:
edown:模擬生產環境,某個機台每天的當機次數會自動錄入該表。
estatus:每天根據 edown 表裏的當機次數,將機台維護級別寫到這個表裏,不同當機次數對應的級別不同,需要進行判別。
機台維護級別說明如下:
當機次數為0:正常級別。
當機次數大於3:嚴重級別。
其他:一般級別。
3.2 設定參數
由於不同當機次數對應的級別不同,需要透過當機次數判斷機台維護級別。因此,需要將當機次數作為參數匯出,便於後續「條件分支」節點根據當機次數判斷機台維護級別。
1)建立定時任務,拖入「參數指派」節點,將當天機台當機次數取出。如下圖所示:
點選「資料預覽」,如下圖所示:
2)將當機次數匯出為參數。如下圖所示:
注:參數建議設定除錯值,便於後續節點引用參數後查看效果;除錯值不參與實際運作。
3)給該節點新增備註:獲取當天當機次數。如下圖所示:
3.3 級別入庫
1)拖入一個「SQL腳本」節點,將當天日期和正常級別寫到 estatus 表裏,並給節點備註為:正常級別入庫。如下圖所示:
2)再拖入一個「SQL腳本」節點,將當天日期和一般級別寫到 estatus 表裏,並給節點備註為:一般級別入庫。如下圖所示:
3)再拖入一個「SQL腳本」節點,將當天日期和嚴重級別寫到 estatus 表裏,並給節點備註為:嚴重級別入庫。如下圖所示:
3.4 設定條件分支
1)在「參數指派」節點和「SQL腳本」節點之間,拖入「條件分支」節點;上游跟「參數指派」節點遠端,下游跟三個「SQL腳本」節點遠端。如下圖所示:
此時點選「條件分支」節點,可以看到多了三個分支,分別對應到下游的三個節點,可以給每個分支設定判別條件,決定執行哪一個。
2)先設定SQL腳本節點的判別條件,當當機次數等於 0 時,就執行該分支。如下圖所示:
相同步驟,設定另外兩個「SQL腳本」節點的執行條件。如下圖所示:
3.5 效果查看
點選「運作」按鈕,任務執行成功後,日誌如下圖所示:
2024-08-05 的當機次數為 6,將只執行嚴重級別入庫的「SQL腳本」節點,剩餘兩個「SQL腳本」節點跨越執行。如下圖所示:
estatus 表資料如下圖所示: