数据不一致问题排查1
新接手的一個項目,主要做統計分析,數據來源于另外一個系統,我們系統的數據與對方系統的數據不一致,所以統計結果不準確,客戶對此有很大意見。我接手這項目之前的項目團隊檢查了好幾個月,仍未解決該問題,隨即領導就把這個任務交給我去解決。
我首先畫了個思維導圖,簡單梳理一般數據不一致常見的原因。
一、采集數據問題
1、采集的類型少導致漏采了一部分數據。
2、采集范圍問題,對方有些字段不是必填項,但我們篩選特定字段導致漏采數據。
3、采集頻率問題,采集時間間隔長,期間有數據變動,年報數據基本上不是這個原因導致數據不一致。
4、更新機制問題,新增的合同采集過來了。但修改的合同,未采集或按照新增的合同采集過來,在對方系統中刪除的合同,我們中并沒有同步刪除
二、存儲數據問題
1、自己編輯產生了一些重復的垃圾數據,導致數據不準。通過數據量大小比對。
2、數據展示的SQL撰寫有問題,可能是撰寫思路不對,撰寫錯誤。
后面我經過驗證后,果然不是這些簡單的原因導致的,數據字段差異和數據量差異沒辦法通過這些思路排查出來。隨即又畫了個思維導圖,往深一層思考。
一、對方同步給我們的數據有問題
1、對方系統同步給我們的數據是幾張表拼接的,拼接的唯一標識并不是唯一的(編碼、名稱、編號等不唯一)。導致不同的時間點同步的同一個合同的數據內容不同。
2、對方系統程序邏輯處理有問題,產生新數據后,卻沒更新對應的歸屬字段(如最后更新時間未更新。注:最后發現果然是這個原因。)
二、同步策略失敗
1、同步失敗,如何觸發再次同步數據
2、同步失敗的原因,接口異常、超時、數據未觸發同步。
三、解決思路
1、驗證目前與對方系統存在的差異,并分析可能產生的原因。開展分析,選擇某一些小類,全量查詢相關數據,并與對方系統一一核對。
2、讓對方系統去調整。對方系統調整后,驗證之前的數據,并通過同樣的方法獲取新的數據,看是否存在類似的問題。
3、組建溝通群,把雙方公司專家拉到一個群里,每天在專家群里同步下自己方的進度,并讓對方也反饋進度及計劃。
具體5月8日正式開始驗證問題,首先通過選取選取某一小類,比對雙方數據差異,數據量差異先不考慮,先解決數據字段差異。以對方的數據為基準,通過vlookup代入自己數據庫中查到的數據,查看是否還存在數據量的差異。數據項的差異,登錄對方系統查看這條數據我方最后更新時間在對方系統屬于什么狀態,通過比對發現駁回補正后,對方系統并未把重新提交之后的動態更新同步給我們,信息及更新時間停滯在駁回的狀態及時間上,隨即寫郵件建議對方系統檢查駁回補正流程。(并發送問題截圖)。注:這可能是造成數據不一致的其中一個原因,還需要繼續排查是否存在其他原因。
跟對方多次溝通后,梳理數據同步機制,發現對方存在兩種同步機制,一種是實時變更獲取,通過最后更新時間觸發。另外一種是廣播形式,對方系統某幾個字段變更時,會主動對外分發。(注:此處就能解決我方系統與對方數據字段由于最后更新時間未更新,而產生的數據不一致的問題)。
跟內部的研發討論后,覺得這個接口確實能夠解決該問題,隨即又拉上對方產品和研發一起開會討論,最終決定在原有接口觸發基礎上,再添加一個廣播接口接收數據。另外讓對方提取全量數據的流水號,我們這邊比對差異,分析差異產生的原因。之前發現有一部分數據是我們系統與對方UAT環境接口測試時,從對方UAT環境獲取了一批數據。其它數據需要根據差異進行排查。
如果想繼續了解數據不一致性問題排查2,歡迎關注我的微信公眾號:項目管理的一些事。
總結
以上是生活随笔為你收集整理的数据不一致问题排查1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有调查就没有发言权
- 下一篇: Caused by: org.xml.s