🍀Loader 欄位改了怎麼辦?用最安全的方法修正資料庫歷史資料(給非工程背景也看得懂的完整教學)
前言:為什麼「欄位改了」會讓系統出問題? 在企業系統中,常常會遇到這樣的情況: 原本每天正常匯入資料 某一天因為需求變更, 輸入檔案的欄位或規則被調整 新進資料看起來正常 但舊資料卻顯示錯誤或空白 報表、BI、分析結果開始不一致 這時候很多人會直覺認為: 「我已經把程式改好了,為什麼舊資料沒變?」 這篇文章會用 不需要工程背景 的方式,完整解釋原因與正確做法。 一、什麼是 Loader?用白話講就是「資料搬運工」 你可以把 Loader 想像成一個自動化工人: 從資料夾讀取檔案(例如 CSV、彙總檔) 把檔案內容轉成資料庫可以存的格式 寫入多張資料表 成功就把檔案移到「成功資料夾」 失敗就移到「失敗資料夾」 同時留下「處理紀錄」,方便之後追蹤 重點是: Loader 的主要任務是「處理新資料」,不是「修改舊資料」。 二、Loader 是怎麼分辨 FT1Y 與其他站點的? 很多人會以為程式裡有這種判斷: 「如果是 FT1Y,就做不一樣的事」 實務上其實不是。 真正的做法是: Loader 會從 檔名或檔案內容 中解析出一個「站點代碼」 例如:FT1、FT1Y、RT1、FT2 這個站點代碼會被存成一個欄位(例如:OP_NAME) 之後所有判斷、查詢、報表,都是靠這個欄位來區分 換句話說: 對 Loader 而言,FT1Y 只是「一個值」,不是「一段特殊程式」 三、為什麼「改了程式」卻修不好舊資料? 這是整個問題的核心。 Loader 的基本設計邏輯是: 第一次看到的資料 → 建立新紀錄 已存在的資料 → 只更新統計結果,不重寫欄位 也就是說: 程式邏輯改動後 只會影響未來新進的資料 歷史資料會維持「當初寫進去時的樣子」 所以就會出現: 資料時間 ...