

# Aurora PostgreSQL DB クラスターまたは RDS for PostgreSQL DB インスタンスからデータをロードする
<a name="limitless-load.data"></a>

リソースと認証の設定が完了したら、クラスターエンドポイントに接続し、`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.
```