將資料遷移至 Spanner Graph

本文件說明將資料和應用程式遷移至 Spanner 圖表的程序。我們會說明遷移階段和各階段的建議工具,具體取決於來源資料庫和其他因素。

將圖形遷移至 Spanner Graph 時,需要進行下列核心階段:

  1. 收集應用程式需求。
  2. 設計 Spanner 圖表結構定義。
  3. 將應用程式遷移至 Spanner Graph。
  4. 測試及調整 Spanner Graph。
  5. 將資料遷移至 Spanner Graph。
  6. 驗證資料遷移作業。
  7. 設定切換和容錯機制。

如要針對效能最佳化結構定義和應用程式,您可能需要逐步設計結構定義、建構應用程式,以及測試及調整 Spanner 圖表。

收集應用程式需求

如要設計符合應用程式需求的結構定義,請收集下列必要條件:

  • 建立資料模型
  • 常見的查詢模式
  • 延遲和處理量要求

設計 Spanner Graph 結構定義

如要瞭解如何設計 Spanner Graph 結構定義,請參閱「Spanner Graph 結構定義總覽」一文,瞭解基本概念,並參閱「建立、更新或刪除 Spanner Graph 結構定義」一文,瞭解更多範例。如要針對常見查詢模式最佳化結構定義,請參閱設計 Spanner 圖表結構定義的最佳做法

將應用程式遷移至 Spanner Graph

請先參閱有關應用程式遷移的一般 Spanner 指南,然後再參閱本節的指南,瞭解 Spanner 圖應用程式遷移指南。

連線至 Spanner Graph

如要瞭解如何以程式設計方式連線至 Spanner Graph,請參閱「建立、更新或刪除 Spanner Graph 結構定義」和「Spanner Graph 查詢總覽」。

遷移查詢

Spanner Graph 查詢介面與 ISO GQL 相容,並提供額外的 openCypher 語法支援。詳情請參閱「openCypher 使用者適用的 Spanner 圖表參考資料」。

遷移變異

如要遷移應用程式的變異邏輯,您可以使用 Spanner 資料表變異機制。詳情請參閱「插入、更新或刪除 Spanner 圖資料」。

測試及調整 Spanner Graph

Spanner 指南說明如何測試及調整結構定義和應用程式效能,這項指南也適用於 Spanner Graph。如要瞭解 Spanner Graph 效能最佳化最佳做法,請參閱「設計 Spanner Graph 結構定義的最佳做法」和「調整 Spanner Graph 查詢的最佳做法」。

將資料遷移至 Spanner Graph

如要從關聯資料庫移動資料,請參閱「遷移資料」。

如要從圖資料庫或非關聯式資料庫移出資料,您可以將來源資料庫中的資料儲存到檔案中,然後將檔案上傳至 Cloud Storage,再使用 Dataflow 匯入檔案。建議的檔案格式包括 AVRO 和 CSV。詳情請參閱「大量遷移作業的建議格式」。

處理限制

如果結構定義在輸入資料表上定義了限制條件,請確認在匯入資料時不會違反這些限制條件。限制包括:

  • 外鍵:您可以為邊緣參照節點定義外鍵限制。
  • 交錯:邊緣輸入資料表可能會交錯在節點輸入資料表中。這項交錯定義了父項-子項關係,其中隱含的限制是父項必須先存在,才能建立子項。

必須先載入交錯機構中的父項,以及外鍵限制中的參照實體。也就是說,您必須先載入圖形中的節點,然後再載入邊。如果您在載入邊緣之前先載入邊緣連結的節點,在載入程序中可能會遇到錯誤,指出某些鍵不存在。

為確保正確的匯入順序,請使用 Google 提供的範本,為每個階段定義個別的 Dataflow 工作,然後依序執行這些工作。舉例來說,您可以執行一個 Dataflow 工作來匯入節點,然後執行另一個 Dataflow 工作來匯入邊。或者,您也可以編寫自訂 Dataflow 工作,用來管理匯入序列。

如要進一步瞭解 Google 提供的範本,請參閱下列資源:

如果匯入順序錯誤,工作可能會失敗,或是只遷移部分資料。如果只有部分資料遷移,請再次執行遷移作業。

提高資料載入效率

為提升資料載入效率,請在將資料匯入 Spanner 後建立次要索引並定義外鍵。這種方法僅適用於初始大量載入作業,或在遷移期間有停機時間。

驗證資料遷移作業

遷移資料後,請執行基本查詢,驗證資料是否正確。請在來源和目的地資料庫上執行下列查詢,確認結果是否相符:

  • 計算節點和邊的數量。
  • 計算每個標籤的節點和邊數量。
  • 計算每個節點和邊緣屬性上的統計資料 (計數、加總、平均值、最小值、最大值)。

設定切換和容錯移轉機制

設定切換和容錯機制

後續步驟