移行の概要

このページでは、AlloyDB for PostgreSQL との間でデータを移行する方法の概要について説明します。

データのインポート

データを AlloyDB に移行するには、次の 2 つの方法があります。

  • データを含むファイルを手動でインポートする。

  • Google Cloud Database Migration Service を使用して、アクティブな PostgreSQL インスタンス全体のコンテンツを新しい AlloyDB クラスタに移行します。

アーカイブされたデータをファイルからインポートする

AlloyDB では、Cloud Storage バケットにあるファイルからデータをインポートできます。AlloyDB は、次のようなさまざまなファイル形式のデータのインポートをサポートしています。

  • CSV: ファイルごとに 1 つのテーブルの内容が psql を使用して読み込まれます。

  • DMP: pg_restore を使用してインポートされた PostgreSQL データベース全体のバイナリ アーカイブ。

  • SQL: psql で処理された PostgreSQL データベースのプレーンテキスト再構築。

Database Migration Service を使用してアクティブなインスタンスを移行する

データダンプ ファイルを手動でインポートする代わりに、AlloyDB 用の Database Migration Service を使用できます。このサービスを使用すると、アクティブな PostgreSQL インスタンスのコンテンツ全体(すべてのデータベースとメタデータを含む)を新しい AlloyDB クラスタに移行できます。Database Migration Service を使用すると、ダウンタイムを最小限に抑えながら、既存のアプリケーションを AlloyDB を新しいデータストアとして使用するように移行できます。

インポートされたデータでサポートされている言語 / 地域

AlloyDB は、次の言語 / 地域をサポートしています。

  • ICU が提供するロケールの完全なセット。
  • libc から提供される限定的なロケール セット:
    • C.UTF-8
    • en_US.utf8

AlloyDB にインポートするデータベースのデフォルトが、ここで説明する 2 つ以外の libc ロケールになっている場合でも、データをインポートできますが、そのデフォルトは引き継がれません。ORDER BY を使用する SQL クエリで結果が正しく並べ替えられるようにするには、データのインポート後に追加の手順が必要になる場合があります。

新しいデータベースで AlloyDB のデフォルトの言語 / 地域(libc が提供する C.UTF-8)を使用することをおすすめします。次に、アプリケーションのクエリで ORDER BY 句に関連する可能性のある列に照合順序を関連付け、それぞれに適切な ICU ベースの照合順序の名前を付けます。これを行うには、次のような ALTER TABLE DDL クエリを使用します。

ALTER TABLE TABLE_NAME
    ALTER COLUMN COLUMN_NAME
    SET DATA TYPE COLUMN_DATA_TYPE
    COLLATE "COLLATION_NAME";

新しい AlloyDB クラスタでは、ICU 提供のロケールに基づいて数百の照合が定義されます。PostgreSQL の CREATE COLLATION 機能を使用して、さらに追加できます。AlloyDB クラスタで定義されている ICU ベースの照合名の完全なリストを表示するには、任意のインスタンスで次のクエリを実行します。

SELECT collname FROM pg_collation WHERE collprovider = 'i';

AlloyDB は、ICU ベースの照合に加えて、ucs_basic という名前の PostgreSQL 組み込み照合をサポートしています。この照合では、Unicode コードポイントの標準順序を使用して、特に効率的な並べ替えを実現しています。適切な並べ替え順序が Unicode コードポイント リストと一致する列で使用することをおすすめします。

データのエクスポート

コマンドライン ユーティリティを使用して、AlloyDB データをさまざまな形式で Cloud Storage バケットに保存されているファイルにエクスポートできます。

  • CSV: psql を使用して、ファイルごとに 1 つのテーブルをエクスポートします。

  • DMP: pg_dump を使用して、データベース全体のポポータブルなバイナリ アーカイブを作成します。

  • SQL: pg_dump を使用して DDL ステートメントと SQL ステートメントのリストを作成して、データベースを再構築します。