將結構定義從來源資料庫遷移至 Spanner 的過程需要多個步驟,結合自動化工具與手動分析和精修。以下大略說明建議做法:
結構定義擷取:從來源資料庫中擷取結構定義 (DDL)。
初始轉換:您可以考慮使用自動化結構定義轉換工具,例如 Spanner 遷移工具 (SMT),這類工具可處理許多基本資料類型對應和結構轉換。
詳細檢查及改善結構定義:建議您轉換來源資料庫結構定義,以便與 Spanner 相容,並進行較小的有意義變更,以便個別測試及最佳化,降低一次變更所有項目的風險。
- 資料類型對應:檢查並改善 SMT 產生的資料類型對應。請確認 Spanner 資料類型能準確呈現對應來源資料庫類型的範圍、精確度和語意。
- 主鍵和交錯:找出可使用 Spanner 交錯式資料表的機會,以模擬來源資料庫結構定義中的父項子項關係。為 Spanner 選擇適當的主鍵策略,例如使用 UUID。SMT 可協助您選擇合適的主鍵策略。請考量資料本地性和避免資源使用率不均的影響。評估來源資料庫中外部關鍵限制的使用方式,並決定如何在 Spanner 中處理這些限制。詳情請參閱「父項/子項資料表關係」。
- 索引最佳化:分析來源資料庫中的現有索引,並設計 Spanner 索引來提升查詢效能。考慮刪除不常使用的索引。
- 移除不相容性:移除或重寫 Spanner 不支援的任何來源資料庫專屬功能。舉例來說,Spanner 不支援預存程序或觸發事件。這可能需要您重構應用程式程式碼。
結構定義部署:將 Spanner 結構定義部署至開發或測試環境。
迭代測試及精進:載入範例資料,並使用代表性的應用程式互動測試結構定義。監控成效並找出可改善之處。根據測試結果調整結構定義。重複這個程序,直到結構定義符合應用程式的效能和功能需求為止。
結構定義驗證:開發指令碼或程序,比較來源資料庫和 Spanner 結構定義的結構,確保轉換作業正確執行。
最終結構定義部署作業:將經過驗證及精簡的結構定義部署至 Spanner 正式執行個體。
來源專屬指南
- MySQL:遷移 MySQL 結構定義。