Amazon S3에서 DynamoDB로 가져오기 모범 사례 - Amazon DynamoDB

Amazon S3에서 DynamoDB로 가져오기 모범 사례

다음은 Amazon S3에서 DynamoDB로 가져올 때의 모범 사례입니다.

S3 객체 5만 개 한도 이하로 유지

각 가져오기 작업은 최대 5만 개의 S3 객체를 지원합니다. 데이터세트에 5만 개 이상의 객체가 포함된 경우 이를 더 큰 객체로 통합하는 것을 고려해 보세요.

너무 큰 S3 객체 피하기

S3 객체는 병렬로 가져오게 됩니다. 중간 크기의 S3 객체가 여러 개 있으면 과도한 오버헤드 없이 병렬 실행이 가능합니다. 1KB 미만인 항목의 경우 각 S3 객체에 4백만 개의 항목을 배치하는 것을 고려해 보세요. 평균 항목 크기가 더 큰 경우 각 S3 객체에 비례적으로 더 적은 수의 항목을 배치하세요.

정렬된 데이터 무작위화

S3 객체가 데이터를 정렬된 순서로 보관하는 경우 롤링 핫 파티션을 생성할 수 있습니다. 이 상황은 한 파티션이 모든 활동을 수신한 후에 다음 파티션이 차례로 수신하는 식입니다. 순서가 정렬된 데이터는 가져오기 중에 동일한 대상 파티션에 기록되는 S3 객체의 시퀀스 항목으로 정의됩니다. 데이터 순서가 정렬되는 일반적인 상황 중 하나는 항목이 파티션 키를 기준으로 정렬되어 반복되는 항목이 동일한 파티션 키를 공유하는 CSV 파일입니다.

롤링 핫 파티션을 방지하려면 이러한 경우 순서를 무작위로 지정하는 것이 좋습니다. 이렇게 하면 쓰기 작업을 분산하여 성능을 향상시킬 수 있습니다. 자세한 내용은 데이터 업로드 중 효율적으로 쓰기 활동 배포 단원을 참조하십시오.

데이터를 압축하여 총 S3 객체 크기를 리전 한도 이하로 유지

S3에서 가져오기 프로세스에서는 가져올 S3 객체 데이터의 총 크기 합계에 한도가 있습니다. 한도는 us-east-1, us-west-2, eu-west-1 리전의 경우 15TB, 다른 리전의 경우 1TB입니다. 한도는 원시 S3 객체 크기를 기반으로 합니다.

압축을 통해 더 많은 원시 데이터를 한도 내에 맞출 수 있습니다. 압축만으로는 가져오기를 한도 내에 맞출 수 없는 경우 AWS Premium Support에 문의하여 할당량을 늘릴 수도 있습니다.

항목 크기가 성능에 미치는 영향 파악

평균 항목 크기가 매우 작은 경우(200바이트 미만), 가져오기 프로세스가 큰 항목 크기보다 약간 더 오래 걸릴 수 있습니다.

글로벌 보조 인덱스 없이 가져오기 고려

가져오기 작업의 지속 시간은 하나 이상의 글로벌 보조 인덱스(GSI)가 있는지 여부에 따라 달라질 수 있습니다. 카디널리티가 낮은 파티션 키로 인덱스를 설정하려는 경우 가져오기 작업에 포함하는 것보다 가져오기 작업이 완료될 때까지 인덱스 생성을 연기하면 가져오기 속도가 빨라질 수 있습니다.

참고

가져오기 중에 GSI를 생성하면 쓰기 요금이 발생하지 않습니다(가져오기 후에 GSI를 생성하면 요금이 발생함).