開發與維運

DataWorks百問百答05:數據同步任務出現髒數據怎麼辦?

什麼樣的數據會判定為髒數據?

同步任務在任務運行過程中遇到插件的所有異常都會作為髒數據進行統計。

  • 數據類型轉換(源端表和目的表字段類型不匹配,大概率)
  • 源端表數據過長
  • 數據源異常
  • Reader/Writer插件異常
  • 數據中有表情符

我該如何排查?

同步任務出現報錯:髒數據條數檢查不通過,限制是[0]條,但實際上捕獲了[141]條。
image.png

【解決方法一】

增大髒數據限制條數,擴大閾值容忍髒數據(源端髒數據仍存在同步到目的端,日誌顯示髒數據記錄,任務不會報錯)。
image.png

【解決方法二】

根據運行日誌定位源端髒數據修復後再同步。
image.png
將日誌複製出來可快速定位,截取1條記錄作為樣例分析。本例情況就是源端第47個字段值"java"為String類型,而目的端對應寫入字段為Long類型,需更改為匹配的類型。
image.png

【案例1】
只有utf8mb4編碼支持同步表情符
例如:添加JDBC格式的數據源時,需要修改utf8mb4的設置,如jdbc:mysql://xxx.x.x.x:3306/database?com.mysql.jdbc.faultInjection.serverCharsetIndex=45。

【案例2】
同步任務髒數據報錯 XXXX command denied to user ‘XXXX’
因為沒有數據源權限造成的問題,聯繫對應DBA申請一下update、insert、delete權限。
其餘Reader/Writer插件問題情況略。


DataWorks百問百答歷史記錄請點擊查看

採購季限時!原價2500元現僅需99元,3分鐘入門DataWorks標準版6大場景!點擊查看

更多DataWorks技術和產品信息,歡迎加入【DataWorks釘釘交流群】

Leave a Reply

Your email address will not be published. Required fields are marked *