Aurora PostgreSQL Limitless Database データロードユーティリティの使用
Aurora は、Aurora PostgreSQL DB クラスターまたは RDS for PostgreSQL DB インスタンスから Limitless Database に直接データをロードするためのユーティリティを提供します。
データロードユーティリティを使用するには、次のステップを実行します。
制限
データロードユーティリティには次の制限があります。
-
次のデータ型はサポートされていません:
enum、ARRAY、BOX、CIRCLE、LINE、LSEG、PATH、PG_LSN、PG_SNAPSHOT、POLYGON、TSQUERY、TSVECTOR、TXID_SNAPSHOT。 -
先頭のゼロ (
0) は、ロード中にVARBITデータ型から削除されます。 -
ソーステーブルに複合プライマリキーがある場合、データ移行は失敗します。
-
送信先テーブルに外部キーがある場合、データ移行は失敗します。
-
RDS for PostgreSQL マルチ AZ DB クラスターからのデータのロードはサポートされていません。
前提条件
データロードユーティリティには、次の前提条件があります。
-
ソースデータベースで、Aurora PostgreSQL または RDS for PostgreSQL バージョン 11.x 以降を使用している。
-
ソースデータベースが、送信先 DB シャードグループと同じ AWS アカウントおよび AWS リージョンにある。
-
ソース DB クラスターまたは DB インスタンスが
available状態にある。 -
ソースデータベースと無制限のデータベースのテーブルが、同じテーブル名、列名、列データ型を持っている。
-
ソーステーブルと送信先テーブルに、同じ列と列の順序を使用するプライマリキーがある。
-
データロードコマンドを実行するには、無制限のデータベースに接続するための環境が必要です。使用可能なコマンドは次のとおりです。
-
rds_aurora.limitless_data_load_start -
rds_aurora.limitless_data_load_cancel
-
-
CDC の場合:
-
ソースデータベースと送信先 DB シャードグループの両方で、同じ DB サブネットグループ、VPC セキュリティグループ、およびデータベースポートを使用する必要があります。これらのセットアップは、ソースデータベースと DB シャードグループ内のルーターの両方へのネットワーク接続用です。
-
ソースデータベースで論理レプリケーションを有効にする必要があります。ソースデータベースユーザーには、論理レプリケーションを読み取る権限が必要です。
-
ソースデータベースの準備
データをロードするためにソースデータベースにアクセスするには、ソースデータベースへの受信ネットワークトラフィックを許可する必要があります。以下のステップを実行します。
ソースデータベースへのネットワークトラフィックを許可するには
AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
[セキュリティグループ] ページに移動します。
-
ソース DB クラスターまたはインスタンスが使用するセキュリティグループのセキュリティグループID を選択します。
例えば、そのセキュリティグループ ID は
sg-056a84f1712b77926です。 -
[インバウンドルール] タブで以下を行います。
-
[インバウンドのルールを編集] を選択します。
-
ソース DB クラスターまたはインスタンスに新しいインバウンドルールを追加します。
-
ポート範囲 — ソースデータベースのデータベースポート。通常は
5432 -
セキュリティグループ ID – この例では
sg-056a84f1712b77926
-
-
-
[アウトバウンドルール] タブで以下を行います。
-
[Edit outbound rules] (アウトバウンドルールの編集) を選択します。
-
ソース DB クラスターまたはインスタンスに新しいアウトバウンドルールを追加します。
-
データベースポート –
All traffic(ポート0-65535を含む) -
セキュリティグループ ID – この例では
sg-056a84f1712b77926
-
-
AWS Management Console にサインインして、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
[ネットワーク ACL] ページに移動します。
-
「デフォルトのネットワーク ACL」の説明に従って、デフォルトのネットワーク ACL 設定を追加します。
送信先データベースの準備
「Aurora PostgreSQL Limitless Database テーブルの作成」の手順に従って、DB シャードグループに送信先テーブルを作成します。
送信先テーブルには、ソーステーブルと同じスキーマ、テーブル名、プライマリキーが必要です。
データベース認証情報の作成
ソースデータベースと送信先データベースにデータベースユーザーを作成し、必要な権限をユーザーに付与する必要があります。詳細については、PostgreSQL ドキュメントの「CREATE USER
ソースデータベース認証情報を作成する
ソースデータベースユーザーは、ロードを開始するコマンドで渡されます。このユーザーには、ソースデータベースからレプリケーションを実行する権限が必要です。
-
データベースマスターユーザー (または
rds_superuserロールを持つ別のユーザー) を使用して、LOGIN権限を持つソースデータベースユーザーを作成します。CREATE USERsource_db_usernameWITH PASSWORD 'source_db_user_password'; -
ソースデータベースユーザーに
rds_superuserロールを付与します。GRANT rds_superuser tosource_db_username; -
full_load_and_cdcモードを使用している場合は、ソースデータベースユーザーにrds_replicationロールを付与します。rds_replicationロールは、論理スロットを管理し、論理スロットを使用してデータをストリーミングするアクセス権許可付与します。GRANT rds_replication tosource_db_username;
送信先データベースの認証情報を作成する
送信先データベースユーザーには、DB シャードグループの送信先テーブルに書き込むためのアクセス許可が必要です。
-
データベースマスターユーザー (または
rds_superuserロールを持つ別のユーザー) を使用して、LOGIN権限を持つ送信先データベースユーザーを作成します。CREATE USERdestination_db_usernameWITH PASSWORD 'destination_db_user_password'; -
送信先データベースユーザーに
rds_superuserロールを付与します。GRANT rds_superuser todestination_db_username;