定時任務運行時若遇到髒數據,任務會報錯并終止。本文說明如何查看髒數據産生的原因及如何處理髒數據。
注:實時管道任務的髒數據說明請參見:實時管道任務處理髒數據
需注意,字段長度還與編碼有關
PostgreSQL 數據庫的 varchar(60) 和 SQLServer 的 varchar(60) 長度定義是不一樣的,SQLServer表示最多存儲 60 字節,PostgreSQL 是标識,最多存儲 60 個字符
根據編碼的不同,字符占的字節也不一緻,60 個字符計算後肯定超過 60 個字節
1)定時任務運行時,若存在髒數據,日志中将會報錯。如下圖所示:
注:建議将 日志等級 設置爲 INFO,日志信息會更加詳細。
「統計」Tab頁下,可看到髒資料具體條數,點選條數,可看到錯誤類型和錯誤原因。如下圖所示:
2)用戶若想查看到所有髒數據的所有信息,可到%FDL_HOME%\logs\fanruan.log文件中進行查看。
3)用戶若想遇到髒數據就通知給指定用戶,可在結果通知中勾選「髒數據通知」按鈕。如下圖所示:
詳情請參見:任務控制-結果通知
若用戶希望任務具有一定容錯性,即遇到髒數據任務繼續運行,不進行報錯,運行狀态爲成功,且髒數據不寫入到目标表中(正常的數據會順利寫入到目标表中),可設置髒數據阈值(輸入範圍爲1~1萬)。如下圖所示:
詳情請參見:任務控制-容錯機制
注:若不配置「髒數據容忍」,只要遇到髒數據就會導緻任務失敗。
若髒數據條數未超過阈值(最大可設置爲10000),日志信息如下:
髒數據條數超出髒數據阈值後,任務會報錯。
用戶若希望髒數據寫入到目标表,需要根據日志排查髒數據出現原因,修正後重新運行任務或者 重試任務
産生髒數據後,重試任務的處理場景:
動态參數:如:配置 now-1 作爲數據範圍,每次更新前一天數據
在重試時,用戶可以指定本次運行的臨時任務參數值
且用戶的任務設計需要支持幂等,即同一數據範圍的定時任務需要支持多次運行
如:每次任務先從目标表獲取最大的時間戳,作爲本次同步的起始時間
用戶需要手動删除目标表大於本批次的數據,以進行重試
自定義配置表存儲斷點
如:每次任務最後一步存儲本次同步的最大時間至一張表存儲
用戶需要手工修改斷點值,以進行重試
且用戶的任務設計需要支持幂等、即同一數據範圍的定時任務需要支持多次運行
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙