Aurora PostgreSQL DB クラスターまたは RDS for PostgreSQL DB インスタンスからデータをロードする - Amazon Aurora

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_arnaurora-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.