1. 概述
1.1 版本
FineDataLink 版本 | 功能變動 |
---|---|
4.0.26 | 新增「逾時限制」和「失敗重試」功能 |
4.0.29 |
|
4.1.1 | 當循環容器中的節點執行錯誤時,若設定失敗重試,則使用當次循環的參數立即重試,不再重試整個循環容器 |
4.1.4 | 提供確認、取消按鈕:進行設定後,可儲存、取消操作 |
1.2 功能簡介
故障容許度機制 Tab 下,可設定「逾時限制」、「失敗重試」、「髒資料容忍」。如下圖所示:
逾時限制 | 當一個任務長時間運作,該任務可能屬於非正常狀態,且會導致資源的佔用 針對此場景,可在「逾時限制」中配置任務的逾時時間,運作時間超過設定的時間後正在執行的任務會被強制殺死 |
失敗重試 | 由於當時的網路波動或者其他原因,導致任務運作中斷,過段時間重新運作任務即可成功執行 針對此場景,可在「失敗重試」中設定重跑次數和兩次重跑之間的間隔,任務在失敗之後會進行自動重試 |
髒資料容忍 | 使用者可設定髒資料臨界值、使任務具備一定故障容許度性 髒資料定義:髒資料 |
2. 失敗重試
由於當時的網路波動或者其他原因,導致任務運作中斷,過段時間重新運作任務即可成功執行。針對此場景,可在「失敗重試」中設定重跑次數和兩次重跑之間的間隔,任務在失敗之後會進行自動重試。
「失敗重試」功能預設是關閉狀態,需要手動開啟。
設定項 | 說明 |
---|---|
重跑次數 | 預設值為 3 次,最大值為 100 次 |
每次間隔 | 預設值為 2 分鐘,最大值為 60 分鐘,粒度為分鐘 |
注意點:
1)「失敗重試」邏輯:是針對單個節點的失敗重試設定
2)發生網路中斷等情況造成無法與資料庫建立連結,導致追加寫入的資料僅寫了一半,但是在重跑的時候會因為主鍵衝突而報錯或者追加寫入重複資料。
3)若 呼叫任務 中設定了失敗重試,是重新執行整個子任務,而非子任務的失敗節點。
4)若定時任務中包括循環容器,且設定了失敗重試:
4.1.1 之前的版本:
若失敗節點在循環容器中,將重跑整個循環容器。
若失敗節點在循環容器中,若一共循環 5 次,循環第二次時失敗,將從第一次循環開始執行。
4.1.1 以及之後的版本:
當循環容器中的節點執行錯誤時,使用當次循環的參數,立即重試,不再重試整個循環容器。
5)若任務設定了失敗重試,重跑次數設定為 3 次,則 3 次都失敗後,該任務才被判定為失敗。
如下圖所示,遠端執行判斷為「資料同步」節點失敗再執行「訊息通知」。若失敗節點為「資料同步」節點,重跑次數設定為 3 次,若 3 次「資料同步」節點都失敗,則「訊息通知」才生效。
3. 逾時限制
當一個任務長時間運作,該任務可能屬於非正常狀態,且會導致資源的佔用。針對此場景,可在「逾時限制」中配置任務的逾時時間,運作時間超過設定的時間後正在執行的任務會被強制殺死。
「逾時限制」功能預設是關閉狀態,需要手動開啟。預設值為 1 小時,最大值為 48 小時。
4. 髒資料容忍
使用者可設定「髒資料臨界值」,使任務具備一定故障容許度性。當任務運作時遇到髒資料,達到「髒資料臨界值」前將繼續執行定時任務,達到「髒資料臨界值」後再報錯。
髒資料定義:
可參見 髒資料
注:定時任務運作程式中,由於資料處理程式異常(例如 JSON 解析失敗等),導致轉換程式中產生若干條髒資料,「髒資料臨界值」暫不支援此類髒資料。
功能說明:
1)「髒資料容忍」按鈕預設關閉,「髒資料臨界值」預設為 1000,輸入範圍為1~1萬。
2)設定「髒資料臨界值」後,預設所有匯出類組件的錯誤資料均進入髒資料佇列,並記錄為對應算子/節點的髒資料。
匯出類組件,需同時滿足下面條件:
注:Redshift(開啟高速裝載)、StarRocks 和 Doris 資料庫受臨界值控制,但統計不到髒資料原因。
「資料轉換」節點中的匯出類算子 、「資料同步」節點
匯出端選擇「DB表匯出」,且寫入端資料庫不是:Hive(hdfs)、GP(開啟並行裝載)、星環資料庫。
3)髒資料臨界值對任務中所有匯出類組件統一生效,例如:配置項中配置 1000 ,則對於該任務中,所有的匯出類組件,均設定節點級別的髒資料臨界值為 1000 。
若任務運作程式中產生髒資料:
1)任務日誌展示區域的「統計」頁將展示髒資料資訊;點選髒資料行數可展開查看各錯誤原因分類下的髒資料條數。
2)「任務維運>運作記錄」處,點選運作實體右側的「查看詳情」按鈕,可重試任務、查看重試記錄。重試任務功能介紹、重試的處理場景請參見:定时任务运维 文檔的 2.2 節內容。