[DynamoDB] Partition Key 설계

DynamoDB는 여타 다른 key-value DB와 다르게 설계되여 있다. 이글 에서 언급했다 싶이 Data는 partition key로 분리되여 저장되고 하나의 partition의 최대 크기는 10GB이다.

Partition 키 설계

DynamoDB에는 두가지 방식의 Partition key를 가질 수 있다.

단일 partition key 방식

데이터를 patition key에 의존하는 방식으로 저장된다. 내부에 hash 함수가 있어 partition key로 저장된 item은 hash 함수의 결과에 의하여 지정된 위치에 저장된다. 이 방식을 채용하면 partition내의 데이터는 순서에 관계 없이 저장되고 읽기 동작이 느리다. 최대 장점은 쓰기 동작에 있어 최대한 많이 분산 할 수 있다는 점이다.

조합 키: partition key 과 sort key

두번째 방식은 키를 설계함에 있어서 두개의 key를 같이 사용하는 것이다. 이 방식을 채용면 partition key를 이용하여 partition을 결정하고 sort key 을 이용하여 partition 내의 순서를 결정한다. 이 방식의 최대 장점은 데이터를 어느 정도 분산 시키고 데이터를 순서 있게 저장함으로써 읽기 작업에 최적화 되었다고 볼 수 있다.

 

ref:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.html

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AdditionalResources.html

https://aws.amazon.com/ko/blogs/database/choosing-the-right-dynamodb-partition-key/

https://zuminternet.github.io/DynamoDB/?fbclid=IwAR2GWzCEcnQHqvZdbPlqTdPgqdtid0E-0mVGbOUEZ8LPsFmVLX2sf8Fc3zg

MySQL to DynamoDB

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-modeling-nosql-B.html