問題描述:用戶頻繁報生產事件,原因是查不到保單數據。
此保單數據從五個上游系統(各種保險機構)同步而來(使用datastage同步並調用存儲過程),先會插入到一個臨時表temp_policy,然後有存儲過程將臨時表的數據處理後導入到正式表中regular_policy中。
最開始猜測保單數據丟失的原因爲將臨時表數據導到正式表中的存儲過程耗時過長未執行完。
然後開始查存儲過程代碼,看到有記錄的日誌,查看日誌後發現每次的同步都順利執行完,並無報錯。
繼續查看日誌,發現導入到正式表的日誌隔天才有數據,再看datastage發現每天下午四點的增量同步有很多天都跑到了第二天四點之後,影響了第二天的同步。
增量數據爲什麼耗時如此長呢?繼續查看每天增量數據量,每天都有六百多萬。
六百萬的數據量有些誇張,看日誌注意到幾個月內每天的同步的最小批次號都是不變的。按之前的邏輯來說,每天同步後需清空臨時表,同步批次號應該是要遞增的。
查看臨時表數據,發現幾個月前的數據還在,並沒有清空臨時表。
回去看代碼,發現並沒有調用清空臨時表的代碼。