Amazon S3 대상 데이터 검증 - AWS Database Migration Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 대상 데이터 검증

AWS DMS는 Amazon S3 대상에서 복제된 데이터의 검증을 지원합니다. AWS DMS는 Amazon S3에 복제된 데이터를 플랫 파일로 저장하므로, Amazon Athena CREATE TABLE AS SELECT(CTAS) 쿼리를 사용하여 데이터를 검증합니다.

Amazon S3에 저장된 데이터에 대한 쿼리는 컴퓨팅 집약적입니다. 따라서 AWS DMS는 변경 데이터 캡처(CDC) 중 하루에 한 번 (00:00) UTC에 Amazon S3 데이터에 대한 검증을 실행합니다. AWS DMS가 매일 실행하는 각각의 검증을 간격 검증이라고 합니다. 간격 검증 과정에서 AWS DMS는 지난 24시간 동안 대상 Amazon S3 버킷으로 마이그레이션된 모든 변경 레코드를 검증합니다. 간격 검증의 제한 사항에 대한 자세한 내용은 S3 대상 검증 사용에 대한 제한 사항 섹션을 참조하세요.

Amazon S3 대상 검증은 Amazon Athena를 사용하므로 추가 비용이 적용됩니다. 자세한 내용은 Amazon Athena 요금을 참조하세요.

참고

S3 대상 검증을 사용하려면 AWS DMS 버전 3.5.0 이상이 필요합니다.

S3 대상 검증 사전 조건

S3 대상 검증을 사용하기 전에 다음과 같은 설정 및 권한을 확인합니다.

  • 엔드포인트의 S3Settings에 대한 DataFormat 값을 parquet로 설정합니다. 자세한 설명은 S3의 Parquet 설정 섹션을 참조하세요.

  • 마이그레이션 태스크를 생성하는 데 사용된 사용자 계정에 할당된 역할은 올바른 권한 집합을 보유하고 있어야 합니다. 아래의 권한 섹션을 참조하세요.

지속적 복제(CDC)를 사용하는 태스크의 경우 다음 설정을 확인하세요.

S3 대상 검증을 사용하기 위한 권한

S3 대상 검증을 위한 액세스 권한을 설정하려면 마이그레이션 작업 생성에 사용된 사용자 계정에 할당된 역할은 다음과 같은 권한 집합을 보유하고 있어야 합니다. 샘플 값을 내가 생각한 값으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:CreateWorkGroup" ], "Resource": "arn:aws:athena:<endpoint_region_code>:<account_id>:workgroup/dms_validation_workgroup_for_task_*" }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetTables", "glue:CreateTable", "glue:DeleteTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<endpoint_region_code>:<account_id>:catalog", "arn:aws:glue:<endpoint_region_code>:<account_id>:database/aws_dms_s3_validation_*", "arn:aws:glue:<endpoint_region_code>:<account_id>:table/aws_dms_s3_validation_*/*", "arn:aws:glue:<endpoint_region_code>:<account_id>:userDefinedFunction/aws_dms_s3_validation_*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<bucket_name>", "arn:aws:s3:::<bucket_name>/*" ] } ] }

S3 대상 검증 사용에 대한 제한 사항

S3 대상 검증을 사용할 때 적용되는 아래의 추가적인 제한 사항을 확인합니다. 모든 검증에 적용되는 제한 사항은 제한 사항 섹션을 참조하세요.

  • DatePartitionSequence 값에는 '일' 구성 요소가 필요합니다. S3 대상 검증은 YYYYMM 형식을 지원하지 않습니다.

  • CDC 중에 간격 검증을 실행하면 awsdms_validation_failures_v1 표에 거짓 검증 오류가 표시될 수 있습니다. 이러한 오류가 발생하는 이유는 AWS DMS가 간격 검증을 진행하는 중에 도착한 변경 사항을 익일 파티션 폴더로 마이그레이션하기 때문입니다. 일반적으로 이러한 변경 사항은 당일의 파티션 폴더에 작성됩니다. 이러한 거짓 오류는 동적 소스 데이터베이스에서 정적 대상(예: Amazon S3)으로 복제된 항목을 검증하는 과정에서 발생하는 제한 사항입니다. 이러한 거짓 오류를 조사하려면 이런 오류가 일반적으로 나타나는 검증 기간이 종료되는 시점에(00:00 UTC) 레코드를 확인합니다.

    거짓 오류의 수를 최소화하려면 태스크에 대한 CDCLatencySource가 낮아야 합니다. 모니터링 지연 시간에 대한 내용은 복제 작업 지표 섹션을 참조하세요.

  • failed 또는 stopped 상태의 태스크는 전날의 변경 사항을 검증하지 않습니다. 예상치 못한 실패로 인한 검증 오류를 최소화하려면 동일한 테이블 매핑, 소스 및 대상 엔드포인트가 포함된 별도의 검증 전용 태스크를 생성합니다. 검증 전용 태스크에 대한 자세한 내용은 S3 대상 검증과 함께 검증 전용 태스크 사용 섹션을 참조하세요.

  • 테이블 통계의 검증 상태 열에는 가장 최근의 간격 검증 상태가 반영됩니다. 따라서 불일치 항목이 있는 테이블은 다음 날 간격 검증이 끝난 후에 검증된 것으로 표시될 수 있습니다. 대상 Amazon S3 버킷의 s3_validation_failures folder를 검사하여 하루 이상 전에 발생한 불일치 항목이 있는지 확인합니다.

  • S3 검증은 Amazon Athena의 버킷 테이블 기능을 사용합니다. 이를 통해 S3 검증에서 대상 테이블 데이터의 버킷 사본을 만들 수 있습니다. 즉, 테이블 데이터의 복사본은 DMS 검증의 내부 파티셔닝과 일치하는 하위 집합으로 분할됩니다. Athena 버킷 테이블의 최대 버킷 수는 100,000개입니다. S3 검증이 시도하는 테이블 중 이 한도를 초과하는 모든 테이블은 검증에 실패합니다. S3 검증이 생성하려고 시도하는 버킷 수는 다음과 같습니다.

    (#records in the table) / (validation partition size setting)

    이 제한을 해결하려면 S3 Validation에서 생성되는 버킷 수가 100,000개 미만이 되도록 검증 파티션 크기 설정을 늘리십시오. 버킷팅에 대한 자세한 내용은 Amazon Athena 사용 설명서의 Athena에서의 파티셔닝 및 버켓팅을 참조하십시오.

S3 대상 검증과 함께 검증 전용 태스크 사용

검증 전용 태스크는 마이그레이션을 실행하지 않고 마이그레이션할 데이터에 대한 검증을 실행합니다.

마이그레이션 태스크가 중지되더라도, 검증 전용 태스크는 계속 실행되므로 AWS DMS는 00:00 UTC 간격 검증 기간을 누락하지 않습니다.

Amazon S3 대상 엔드포인트에서 검증 전용 태스크를 사용할 경우 다음과 같은 제한 사항이 적용됩니다.

  • 검증 전용 설정이 활성화된 전체 로드 태스크에 대해 Amazon S3 검증이 지원되지만, 다른 엔드포인트의 전체 로드 및 검증 전용 태스크와는 다르게 작동합니다. S3를 대상으로 하는 경우, 이 유형의 태스크는 S3 대상의 전체 로드 데이터에 대해서만 검증을 수행하며 CDC 마이그레이션의 일부로 마이그레이션된 데이터에 대해서는 검증을 수행하지 않습니다. 이 기능은 전체 로드 전용 태스크로 생성된 데이터를 검증할 때만 사용하세요. 이 모드를 사용하여 활성 CDC 태스크가 실행 중인 대상의 데이터를 검증하면 효과적인 검증이 이루어지지 않습니다.

  • 검증 전용 태스크는 마지막 간격 검증 기간(00:00 UTC) 이후의 변경 사항만 검증합니다. 검증 전용 태스크는 전날의 전체 로드 데이터 또는 CDC 데이터를 검증하지 않습니다.