데이터 모델링
이 지점이 DynamoDB가 SQL과 가장 크게 갈라지는 곳입니다. 엔터티마다 테이블 하나로 정규화하지 않습니다. 대신 액세스 패턴에서 출발해 그 패턴을 처리하는 키를 설계하며, 종종 모든 엔터티를 하나의 테이블에 담습니다. 제대로 하면 부모와 그 자식들을 한 번의 Query로 가져올 수 있고, 조인은 필요 없습니다.
잘못하면 쿼리할 수 없는 테이블과 실행할 수 없는 마이그레이션이 남습니다. 그래서 트레이드오프가 중요하며, 이 섹션은 싱글 테이블 디자인이 잘못된 선택이 되는 경우에 대해 솔직하게 다룹니다.
7개 중 0개 읽음퀴즈
싱글 테이블 디자인부터 시작하세요. 그 뒤의 모든 내용이 이 사고 모델을 전제로 합니다.
스키마를 만들기 전에 무료 싱글 테이블 디자인 도구로 스케치해 보세요 — 액세스 패턴 목록을 PK/SK/GSI 계획으로 바꿔 줍니다. 그런 다음 DynoTable 사용해 보기로 이런 레이아웃을 실제 테이블에 모델링하고 둘러보세요 — 그리고 키가 처리하지 못하는 애드혹 질문에는, SQL 워크벤치가 클라이언트 측에서 JOIN, GROUP BY, 집계를 실행해 줍니다.