다이나모 디비의 키 디자인하는 법을 알아보자.
다이나모 디비를 모델링하고자 하는 분에게 추천한다.
실제 모델링에 관련 없는 분은 안 봐도 좋다.
1
테이블 구조.
아이템
어트리뷰트 = 칼럼
아이템의 필수요소 파티션키
파티션키 = 찾으려고 하는 데이터가 어디 있는지 확인
소프트키 = 1:N 관계 모델링. 등호 연산자등을 이용해 검색.
파티션키 + 소프트키 = 프라이머리키
2
다이나모 디비 작업은?
테이블 단위로 읽고 쓰는 작업을 한다. = 논리적인 단위
실제 물리적인 서버는 파티션으로 컴퓨팅 작업을 한다.
테이블이 또 만들어지면, 물리적으로 나눠진다.
3
각각의 파티션은 초당 처리할 수 있는 최대 용량이 존재한다.
1초에 최대 1천 개의 쓰기, 3천 개의 읽기, 10GB까지 데이터를 저장할 수 있다.
파티션의 이러한 제약사항이 있기 때문에 키 디자인이 중요하다.
특정 파티션으로 데이터 쏠림이 없도록 키 디자인을 해야 한다.
키 디자인을 통해 여러 파티션이 골고루 사용하도록 하는 것이 중요하다.
4
다이나모는 2가지의 세컨더리 인덱스를 제공한다.
첫째, 글로벌 세컨더리 인덱스
테이블의 프라이머리 키 이외에 검색조건이 필요할 때 언제나 추가/삭제가 가능하다.
GSI는 하나하나가 비용이다. 많이 사용하지 않도록 하자.
둘째, 로컬 세컨더리 인덱스.
테이블을 생성하는 시점에서 가능하다. 삭제는 불가능하다.
일반적으로 많이 사용하지 않는다.
다이나도 디비의 키 디자인을 위한 중요한 부분
1
다이나모 디비 키 디자인을 해보자.
2
싱글 테이블 키 디자인?
애플리케이션의 모든 엔티티를 하나의 테이블에서 액세스 할 수 있도록 설계하는 것.
3
첫째. 모든 유즈케이스를 나열해 보자.
사용자 기본 정보 표시 - 간단한 소개, 포스트
팔로잉, 팔로어 카운트
나의 Post목록 조회/생성
Post별 좋아요 카운트
친구들의 최신글 조회 기능
https://brunch.co.kr/@topasvga/3426
감사합니다.