

# 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` 직접 호출에서 데이터베이스, 스키마 또는 테이블 수준에서 데이터를 로드할 수 있습니다.
+ 데이터베이스 - 각 직접 호출에서 한 번에 하나의 데이터베이스를 로드할 수 있으며, 데이터베이스 내의 스키마 또는 테이블 수에는 제한이 없습니다.
+ 스키마 - 각 직접 호출에서 최대 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.
```