このページでは、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 ステートメントのリストを作成して、データベースを再構築します。