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.