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 USER
source_db_username
WITH PASSWORD 'source_db_user_password
'; -
ソースデータベースユーザーに
rds_superuser
ロールを付与します。GRANT rds_superuser to
source_db_username
; -
full_load_and_cdc
モードを使用している場合は、ソースデータベースユーザーにrds_replication
ロールを付与します。rds_replication
ロールは、論理スロットを管理し、論理スロットを使用してデータをストリーミングするアクセス権許可付与します。GRANT rds_replication to
source_db_username
;
送信先データベースの認証情報を作成する
送信先データベースユーザーには、DB シャードグループの送信先テーブルに書き込むためのアクセス許可が必要です。
-
データベースマスターユーザー (または
rds_superuser
ロールを持つ別のユーザー) を使用して、LOGIN
権限を持つ送信先データベースユーザーを作成します。CREATE USER
destination_db_username
WITH PASSWORD 'destination_db_user_password
'; -
送信先データベースユーザーに
rds_superuser
ロールを付与します。GRANT rds_superuser to
destination_db_username
;