[개발일지] 230628 AWS DynamoDB Partition

Partition


DynamoDB는 테이블을 생성할 때 partition key와 선택적으로 sort key를 지정할 수 있다. 

DynamoDB는 방금 생성해준 partition key를 기반으로 자동으로 partition(DynamoDB 내부의 물리적 저장소)이라는 물리적 저장 공간을 생성하는데 하나의 partition key는 하나의 partition에만 할당할 수 있다.

하지만 partition에 데이터가 많아질수록 DynamoDB는 partition을 자동으로 분할하여 더 많은 저장 공간을 제공하고 처리량을 늘린다.

 

DynamoDB는 같은 partition key를 가진 item들을 같은 partition에 저장되도록 설계되어 있기 때문에 같은 partition key를 가진 item을 다른 partition에 분산해서 저장할 수 없다.

 

 

Scan


DynamoDB는 테이블의 모든 데이터를 검사하는 scan이라는 기능을 제공하는데 scan 작업을 "Segment"와 "TotalSegments" 파라미터를 이용해 병렬 처리 할 수 있다.

 

병렬 스캔을 하면 검색 시간을 줄일 수 있지만, scan 작업은 테이블 전체를 검색하기 때문에 만일 데이터의 양이 많다면 오히려 시간이 더 소요되기 때문에 가능하면 파티션 키를 이용한 Query 작업을 사용하는게 좋다고 한다.

 

scan기능이 유용한 경우는 테이블의 모든 데이터를 검색해야 할때, 아니면 partition key나 sort key를 몰라서 특정 기준으로 데이터를 찾아야 하는 경우 scan을 사용해야 한다.