Aurora PostgreSQL DB クラスターまたは RDS for PostgreSQL DB インスタンスからデータをロードする
リソースと認証の設定が完了したら、クラスターエンドポイントに接続し、postgres_limitless
などの無制限データベースから rds_aurora.limitless_data_load_start
ストアドプロシージャを呼び出します。無制限データベースは、データの移行先の DB シャードグループのデータベースです。
この関数は、コマンドで指定されたソースデータベースにバックグラウンドで非同期に接続し、ソースからデータを読み取り、データをシャードにロードします。パフォーマンス向上のため、データは並列スレッドを使用してロードされます。関数は、SELECT
コマンドを実行して、コマンドで指定されたテーブルのデータを読み取ることで、ポイントインタイムのテーブルスナップショットを取得します。
シャードテーブル、リファレンステーブル、標準テーブルにデータをロードできます。
rds_aurora.limitless_data_load_start
呼び出しでは、データベース、スキーマ、テーブルレベルでデータをロードできます。
-
データベース – 各呼び出しで一度に 1 つのデータベースをロードできます。データベース内のスキーマやテーブルの数に制限はありません。
-
スキーマ – 各呼び出しで最大 15 個のスキーマをロードできます。各スキーマ内のテーブル数に制限はありません。
-
テーブル – 各呼び出しで最大 15 個のテーブルをロードできます。
注記
この機能は、Amazon RDS スナップショットやデータベースのポイントインタイム分離を使用しません。テーブル間で一貫性を保つために、ソースデータベースのクローンを作成し、そのクローンデータベースをソースとして指定することをお勧めします。
ストアドプロシージャでは次の構文を使用します。
CALL rds_aurora.limitless_data_load_start('
source_type
', 'source_DB_cluster_or_instance_ID
', 'source_database_name
', 'streaming_mode'
, 'data_loading_IAM_role_arn
', 'source_DB_secret_arn
', 'destination_DB_secret_arn
', 'ignore_primary_key_conflict_boolean_flag
', 'is_dry_run
', (optional parameter) schemas/tables => ARRAY['name1
', 'name2
', ...]);
入力パラメータは次のとおりです。
-
source_type
– ソースタイプ:aurora_postgresql
またはrds_postgresql
-
source_DB_cluster_or_instance_ID
– ソース Aurora PostgreSQL DB クラスター識別子または RDS for PostgreSQL DB インスタンス識別子 -
source_database_name
– ソースデータベース名。例:postgres
-
streaming_mode
– 変更データキャプチャ (CDC) を含めるかどうか:full_load
またはfull_load_and_cdc
-
data_loading_IAM_role_arn
–aurora-data-loader
の IAM ロールの Amazon リソースネーム (ARN) -
source_DB_secret_arn
– ソース DB シークレット ARN -
destination_DB_secret_arn
– 送信先 DB シークレット ARN -
ignore_primary_key_conflict_boolean_flag
– プライマリキーの競合が発生した場合に続行するかどうか:-
true
に設定すると、データロードで、プライマリキーの競合がある行の新しい変更が無視されます。 -
false
に設定すると、プライマリキーの競合が発生した場合、データロードで送信先テーブルの既存の行が上書きされます。
-
-
is_dry_run
– データロードジョブがソースデータベースと送信先データベースに接続できることをテストするかどうか:-
true
に設定すると、データをロードせずに接続をテストします -
false
に設定すると、データがロードされます
-
-
(オプション)
schemas
またはtables
- ロードするスキーマまたはテーブルの配列。次の値のいずれかを指定できます。-
tables => ARRAY['
形式のテーブルのリストschema1
.table1
', 'schema1
.table2
', 'schema2
.table1
', ...] -
schemas => ARRAY[
形式のスキーマのリスト'schema1
', 'schema2
', ...]
このパラメータを含めない場合、指定したソースデータベース全体が移行されます。
-
出力パラメータは、メッセージを含むジョブ ID です。
次の例は、rds_aurora.limitless_data_load_start
ストアドプロシージャを使用して Aurora PostgreSQL DB クラスターからデータをロードする方法を示しています。
CALL rds_aurora.limitless_data_load_start('aurora_postgresql', 'my-db-cluster', 'postgres', 'full_load_and_cdc', 'arn:aws:iam::123456789012:role/aurora-data-loader-8f2c66', 'arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-source-8f2c66-EWrr0V', 'arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-destination-8f2c66-d04fbD', 'true', 'false', tables => ARRAY['public.customer', 'public.order', 'public.orderdetails']); INFO: limitless data load job id 1688761223647 is starting.