이전 모델

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1dc1d563-e4c3-474c-a920-29d8358aa248/Untitled.png

⇒ streamId를 중심으로 연결형 데이터베이스 구조를 그대로 사용

(AWS DynamoDB)(NoSQL) 비즈니스에 맞는 스키마 설계 (기본)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7eeb42ab-b2fc-4fdc-9de3-0bc8b106795b/Untitled.png

Example structure를 참고해 수정한 테이블 structure

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/702ee682-3292-470c-9ad5-e0b11d894d63/Untitled.png

table을 하나로 모든 데이터에 한번에 접근이 가능하고 더 깔끔한 테이블 구조를 구성했다.

Sort Key로 어느 특정 항목(uuid, date 등..)을 사용하는 것이 아니라 value 앞에 type을 붙이는 등의 형태로 변형해 그 자체를 Key로 사용하는 것이 핵심이었다.

이제 Global Index를 따로 추가하지 않고도 query를 작성해 모든 데이터에 접근이 가능하며 DynamoDB Stream 기능으로 count가 계속해서 증가하기 때문에 기존에 작성했던 '쿼리문 조건식에 부합하는 항목들의 갯수'를 반환하는 방식보다 효율이 좋을 것으로 예상한다.

실제 DB에 쌓인 데이터 예

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c1c21d9e-4044-4eb1-a03a-009b1ccc527f/Untitled.png