Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DynamoDB로 NoSQL Table 설계하기 #72

Open
utterances-bot opened this issue Jan 25, 2021 · 2 comments
Open

DynamoDB로 NoSQL Table 설계하기 #72

utterances-bot opened this issue Jan 25, 2021 · 2 comments
Labels
comment Further information is requested

Comments

@utterances-bot
Copy link

DynamoDB로 NoSQL Table 설계하기

사내 MSA 환경에서 개발을 진행하며, 기존 제너럴하게 구성되어있던 데이터 모델을 특정 도메인으로 구체화하여 마이크로 서비스로 분리하는 작업을 진행하였습니다.해당 작업 진행 중 데이터베이스로 DynamoDB를 선택해서 사용하게 되었는데, 그에 따라 공부한

https://wnsgml972.github.io/database/2021/01/10/DynamoDB-Table-Design/

Copy link

정말 자세한 설명 좋았어요. 항상 RDB 관점에서만 생각했는데 신기하네요.
범용적인 쿼리를 빠르고 저렴하게 수행하는 스키마 설계가 글 전체를 잘 요약해 줘서 좋았습니다,
설계에서 데이터 모양이 쿼리 대상과 일치하도록 구성한다는 것이 어떤이야기인가요? aws dynamo 들어가서 봣는데 잘 모르겠어요.
요즘 mongodb, elk 공부하고 있어서 관심있던 주제였는데 진짜 잘 읽었습니다. 좋은글 감사합니다 :)

@wnsgml972
Copy link
Owner

wnsgml972 commented Jan 25, 2021

@MightyTedKim

설계에서 데이터 모양이 쿼리 대상과 일치하도록 구성한다는 것이 어떤이야기인가요? aws dynamo 들어가서 봣는데 잘 모르겠어요.

RDB에서는 범용적으로 설계하고 테이블 속에서 적절히 쿼리를 사용하지만, NoSQL 상에서는 어떻게 쿼리 할 건지 미리 생각하며 그 쿼리의 모양에 영향받아 디비 테이블이 구성되어야 한다는 말이었습니다.

예를 들어 근로자 파티션 키가 부서이고, 정렬 키가 근로자 아이디인 NoSQL 근로자 테이블에서 근로자를 부서, 근로자 ID로 쿼리 한다고 한다고 가정합니다.

만약 해당 도메인에서 A 파티션에 근로자의 99%가 있고 나머지에 1%가 있다면, 위 예시 테이블에서 쿼리 시 특정 파티션에만 모이게 되므로 옳지 못한 쿼리가 됩니다. 그렇다면 적절한 설계의 예시로 근로자 아이디만 단일 PK로 구성하고 부서 값은 기본 속성 값으로 내리는 등 설계를 재구성할 수 있습니다.

실제로는 쿼리 대상이 하나가 아니기 때문에 적절한 인덱스를 포함하여 설계하는 등의 고려가 필요합니다.

@wnsgml972 wnsgml972 added the comment Further information is requested label Jan 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comment Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants