ソース データベースから Spanner にスキーマを移行するには、自動化されたツールと手動の分析と調整を組み合わせた複数のステップのプロセスが必要です。推奨アプローチの大まかな手順は次のとおりです。
スキーマの抽出: ソース データベースからスキーマ定義(DDL)を抽出します。
最初の変換: Spanner 移行ツール(SMT)などの自動スキーマ変換ツールの使用を検討してください。このツールは、基本的なデータ型のマッピングと構造変換の多くを処理できるものです。
スキーマの詳細な確認と調整: ソース データベースのスキーマを、Spanner との互換性が高くなるように、小さな意図的な変更で変換することを検討してください。個別にテストして最適化できるため、すべてを一度に変更するリスクを軽減できます。
- データ型マッピング: SMT によって生成されたデータ型マッピングを確認して調整します。Spanner データ型が、対応するソース データベース型の範囲、精度、セマンティクスを正確に表していることを確認します。
- 主キーとインターリーブ: ソース データベース スキーマに存在する親子関係をモデル化するために、Spanner のインターリーブ テーブルを活用する機会を特定します。UUID の使用など、Spanner に適した主キー戦略を選択します。SMT は、適切な主キー戦略を選択するのに役立ちます。データのローカリティとホットスポットの回避に与える影響を考慮してください。ソース データベースで外部キー制約がどのように使用されているかを評価し、Spanner で外部キー制約を処理する方法を決定します。詳細については、親子テーブルの関係をご覧ください。
- インデックスの最適化: ソース データベース内の既存のインデックスを分析し、クエリのパフォーマンスを最適化するように Spanner インデックスを設計します。使用頻度の低いインデックスは削除することを検討してください。
- 非互換性を削除する: Spanner でサポートされていないソース データベース固有の機能を削除するか、書き換えます。たとえば、Spanner はストアド プロシージャやトリガーをサポートしていません。この場合、アプリケーション コードのリファクタリングが必要となる可能性があります。
スキーマのデプロイ: Spanner スキーマを開発環境またはステージング環境にデプロイします。
反復テストと改良: サンプルデータを読み込み、代表的なアプリケーション インタラクションを使用してスキーマをテストします。パフォーマンスをモニタリングし、改善すべき部分を特定します。テストの結果に基づいてスキーマを調整します。スキーマがアプリケーションのパフォーマンスと機能要件を満たすまで、このプロセスを繰り返します。
スキーマの検証: ソース データベースと Spanner スキーマの構造を比較するスクリプトまたはプロシージャを開発して、変換が正しく実行されたことを確認します。
最終的なスキーマのデプロイ: 検証済みの洗練されたスキーマを Spanner 本番環境インスタンスにデプロイします。
移行元ごとの個別ガイド
- MySQL: MySQL スキーマを移行します。