DynamoDB에 데이터 업로드 중 효율적으로 쓰기 활동 배포 - Amazon DynamoDB

DynamoDB에 데이터 업로드 중 효율적으로 쓰기 활동 배포

일반적으로 다른 데이터 소스에서 데이터를 로드할 때, Amazon DynamoDB는 여러 서버의 테이블 데이터를 파티션합니다. 테이블에 데이터를 업로드할 때 할당된 모든 서버에 데이터를 동시에 업로드하면 성능이 향상됩니다.

예를 들어, UserID를 파티션 키로, MessageID를 정렬 키로 사용하는 복합 기본 키를 사용하는 DynamoDB 테이블로 사용자 메시지를 업로드하는 경우를 가정합니다.

데이터를 업로드하는 방법 중 하나는 각 사용자 별로 한 명씩 모든 메시지 항목을 업로드하는 것입니다.

UserID MessageID

U1

1

U1 2
U1 ...
U1 ... 최대 100

U2

1

U2 2
U2 ...
U2 ... 최대 200

이 경우 문제는 DynamoDB에 대한 쓰기 요청을 파티션 키 값에 분산하지 못한다는 것입니다. 한 번에 파티션 키 값 하나를 취하고 모든 항목을 업로드한 후 다음 파티션 값에서 동일한 작업을 반복합니다.

표시되지는 않지만 DynamoDB는 테이블의 데이터를 여러 서버에 분할합니다. 테이블에 대해 프로비저닝된 모든 처리량 용량을 완전히 활용하려면 워크로드를 파티션 키 값에 분산해야 합니다. 이 경우 불균일한 업로드 작업 양을 파티션 키 값이 모두 동일한 항목으로 전달하면 DynamoDB가 테이블에 대해 프로비저닝한 모든 리소스를 완전히 활용하지 못할 수 있습니다.

정렬 키를 사용하여 업로드 작업을 배포, 각 파티션 키 값으로부터 하나 씩 항목을 로드할 수 있습니다.

UserID MessageID

U1

1

U2 1
U3 1
... ...

U1

2

U2 2
U3 2
... ...

이 시퀀스에서 모든 업로드는 서로 다른 파티션 키 값을 사용하므로, 더 많은 DynamoDB 서버를 동시에 사용하도록 하여 처리량 성능을 향상합니다.