• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

DB 아키텍처 관련해서 문의 드립니다.

21.07.17 00:40 작성 조회수 89

0

좋은 강의 해 주셔서 감사합니다. 짧은 시간안에 nosql 이해하는데 많은 도움이 되었습니다.

업무에 적용해봤으면 하는게 있어 문의 드립니다.

아래와 같이 예를 들어보면,

매일 한번씩 배우 평점데이터를 수집하여 1년치 평점 변화를 분석 하고자합니다. 

수집되는 배우가 10만명정도되고 한번 수집되는 데이터의 양이 document max size를 초과한다면, 이런 시계열(?) 데이터들은 어떻게 적재를 하는게 맞는건지 문의 드립니다.

{ 배우이름: 조우진, 평점: 4, 수집날짜: 2021-07-17 }

 제가 생각한 방안은 이렇습니다.

1) 한명의 배우는 하나의 Document만 생성. 변경되는 데이터는 배열로 추가. ( 찾아보니 Document max size가 16mb라서.. 데이터가 늘어날수록 제약이 있네요. 한번 수집되는 데이터가 1mb라면 16일만 수집이 되겠네요)

2) 매번 수집되는 배우의 정보를 새로운 Document에 추가. ( 동일한 배우의 여러 Document가 생길경우 비효율적으로 보입니다.  10만명의 배우라면.. 매일 10만개의 document가 생기겠네요..)

3) Collection을 배우별로 분리??

어떻게 구현은 되겠으나, DB 운영경험이 없어..  성능이나 이런 부분에 대해 감이 없네요 ^^;

구성 방향이나 공부해야할 부분에 대해 조언좀 부탁드립니다.

감사합니다!!

답변 1

답변을 작성해보세요.

0

안녕하세요.

mongodb 는 데이터 사이즈가 방대할 경우, 이를 각 서버에 분리해서, 저장하고, 관리하는 기법을 추가로 제공하고 있습니다. 샤드라고 하는데요. 이 부분은 중급 이상의 기술이 필요한 부분이고요. 관리 기술이 좀 다르고, 복잡하다라고 이해해주시면 좋을 것 같습니다. 이 부분은 다음과 같은 링크에서도 참고하시면서, 익혀보실 수 있지만, 조금 많은 경험이 필요해서, 아직 많은 경험이 없으시다면, 추천드리지는 않습니다.

https://andole98.github.io/etc/mongo-shard-conf/

이외에는 말씀하신대로, 우선은 collection 을 특정 단위별로 분리한다든지 해보실 수 있을 것 같습니다. 어떤 단위로 분리할 것이냐는 어떤 정답이 있는 것은 아니라서, 적절히 시도해보시는 것을 추천드립니다.

감사합니다.