MySQL スキーマ移行に Spanner 移行ツールを使用する

このドキュメントでは、Spanner 移行ツール(SMT)を使用して MySQL スキーマを Spanner に移行する方法について説明します。SMT は、MySQL スキーマを読み取り、Spanner スキーマに変換し、重複するインデックスを削除して、スキーマの最適化案を提案できます。

始める前に

SMT がインストールされ、設定されていることを確認します。詳細については、Spanner 移行ツールを設定するをご覧ください。

スキーマを構成する

ソース データベースと Spanner を SMT で接続すると、このツールは MySQL スキーマを読み取り、Spanner スキーマに変換します。このツールは、保存されたプロシージャやトリガーを変換しません。

スキーマ変換に関するレポートを表示するには、ウェブ UI の [スキーマを構成する] ページに移動し、[評価を表示] をクリックします。

このレポートには、スキーマ変換の全体的な評価と、テーブルレベルと列レベルの変換に関する詳細な情報、推奨事項と警告、変換できなかったスキーマ要素のリストが表示されます。

スキーマを変更する

[スキーマを構成する] ページで、ソースの MySQL データベース スキーマと Spanner スキーマのドラフトを表示できます。変換されたスキーマを組織のスキーマ要件に合わせて変更することもできます。

テーブルまたはインデックスを選択して、スキーマを表示、管理できます。

テーブル

ウェブ UI の [Spanner ドラフト] タブで、変更するテーブルを選択します。このタブでは、テーブルの削除と復元を行うことができます。選択したテーブルごとに、次のタブのリストが表示されます。

  • 主キー
  • 外部キー
  • チェック制約
  • SQL

[] タブには、選択したテーブルの列に関する情報が表示されます。列は次の方法で編集できます。

  • 列名を変更する
  • 列を削除する
  • 列のデータタイプを変更する
  • 自動生成された ID を追加する
  • デフォルト値を変更する
  • null プロパティを変更する

Spanner ドラフトで既存の列を編集するだけでなく、選択したテーブルに新しい列を追加することもできます。

主キー

テーブルの主キーは、[主キー] タブで次の方法で表示および編集できます。

  • 主キーから列を追加または削除する
  • 主キーの列の順序を変更する

主キーに自動生成された列を使用することもできます。自動生成列を作成するには、次のいずれかを選択します。

  • UUID 関数: テーブルの主キー default 式の一部として UUID v4 を生成します。
  • ビット反転関数: 既存の整数キーをビット反転シーケンスとしてマッピングします。

外部キー

テーブルの外部キーは、[外部キー] タブで次の方法で表示および編集できます。

  • 外部キー制約の名前を変更する
  • 代わりにインターリーブ テーブルを使用する場合は、外部キーを削除する
  • インターリーブされたテーブルを外部キーに戻す

チェック制約

テーブルのチェック制約を表示および編集するには、[チェック制約] タブを使用して、次の手順で行います。

  • チェック制約の名前または条件を変更する
  • チェック制約を削除する

SQL

GoogleSQL 言語の Spanner データ定義言語は、[SQL] タブで表示できます。

インデックス

ウェブ UI の [Spanner ドラフト] タブで、変更するインデックスを選択します。インデックスは次の方法で編集できます。

  • インデックスを削除または復元する
  • セカンダリ インデックスを追加する
  • [SQL] タブで Spanner DDL を表示します。

移行の準備

スキーマの構成が完了したら、スキーマをテキスト ファイルとしてダウンロードし、DDL を使用してターゲット Spanner インスタンスにスキーマを作成できます。

スキーマをダウンロードするには、ウェブ UI の [移行を準備する] ページに移動し、次の操作を行います。

  1. [移行モード] プルダウンで [スキーマ] を選択します。
  2. [ダウンロード] をクリックして、スキーマ DDL をテキスト ファイルとしてダウンロードします。