# Data migration --- ## Goal - 搬移DeviceOn/BI dcg營運站的某個組織下的所有資料 -> Edge365營運站的一個tenant下 ## 摘要 ### 導出 - User - 從root group以下. 統計所有tree node上的user, 整理成一分user list - Device - 從上面統計的user中, 找出該user是owner的device, 整理成一份 device list - 重點是導出deviceId, deviceName, DeviceType 讓新站可以create - 需要一個介面(API)讓使用者勾選(or API)要導出的group, 我們會把這個group & 所有子group下的內容都導出, 導出成一個groups導出檔 - Groups - Objects - Parameters - Alarm rules - Notification settings - alarm group - user group - notification group - channel setting - Plugins - Forwardings - 需要一個backend, 處理導出相關的RAWData/RecordingRate/Hour/Day資料(in Mongo or in Blob) - Blob需要討論 - 使用我們提供的blob - 一定要導出 - 使用Extenal blob - 導出(客戶想換blob) - 不導出(客戶沿用原有blob) - 導出成什麼格式要討論 - 結果是會有一包東西下載到操作者的電腦上? ### 導入 - 需要客戶事先申請好一個tenant - 需要利用devices導出檔, 透過某個介面批量導入device - 導入過程中, 需要產生一個舊deviceID <->新deviceID mapping表 - 需要利用groups導出檔, 透過某個介面批量導入groups以及內部相關內容 - 導入過程中, 需要產生一個舊id<->新id的mapping表, id包含 - Groups - Objects - Parameters - Alarm rules - Notification settings - Plugins - Forwardings ### 資料導入 - RAWData - 利用device id mapping表, 將所有舊數據的deviceId改成新id - 改完後寫入mongo - 改完後寫入blob (不導出的case, 也要換id) - Archived data - 利用groups mapping表, 將所有舊數據的objectId改成新id - 改完後寫入mongo - 改完後寫入blob (不導出的case, 也要換id) --- ###### tags: `Edge365`