DynamoDB 설계 2

[DynamoDB] Secondary Index 설계원칙 및 고려사항

1. Secondary Index를 사용하는 이유 다음과 같은 은행 계좌를 관리하는 테이블을 생각해보자. OriginCountry가 Germany인 모든 데이터를 불러온다고 가정하자. Query를 통해서 불러오기 위해선 AccountID와 CreationDate을 알고 있는 상황이어야 하지만 실제 Query상황에서는 이를 알 수 있는 방법이 없기 때문에 scan을 사용해야한다. scan을 사용하면 모든 데이터에 대해 검색을 실행하기 때문에 그만큼 실행속도가 느리다. 그러나 GSI를 사용하게 되면 다음과 같이 Primary Key를 원하는대로 바꿔서 테이블을 새로 생성 할 수 있다. GSI Table(우측 테이블)을 생성하면서 기존 OriginCountry 속성을 Partition Key로 설정하였다. 기..

IT/NOSQL 2020.02.18

[DynamoDB] Partition Key 설계 원칙 및 고려사항

Table of content 1. DynamoDB Partitioning 원리 2. Partition Key 설계시 고려사항 2-1. 분산된 워크로드 2-2. Partition Key에 난수 추가 (Sharding) 2-3. Partition Key를 이용한 효율적인 쓰기 작업 분산 3. 참고문헌 1. DynamoDB Partitioning 원리 DynamoDB는 자체 내부 Hash Function이 있다. Partition Key값을 파라미터로 계산된 Hash Value를 기준으로 DynamoDB Table 내부의 파티션이 결정되어 데이터는 적재된다. Primary Key가 복합키인 경우에도 단일 Partition Key로 이루어진 경우와 같은 방식으로 partition key hash값을 계산하여 ..

IT/NOSQL 2020.01.23