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 직접 호출에서 데이터베이스, 스키마 또는 테이블 수준에서 데이터를 로드할 수 있습니다.

  • 데이터베이스 - 각 직접 호출에서 한 번에 하나의 데이터베이스를 로드할 수 있으며, 데이터베이스 내의 스키마 또는 테이블 수에는 제한이 없습니다.

  • 스키마 - 각 직접 호출에서 최대 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.