21.11.12 MongoDB 3 넷플릭스 실습 / 고급 활용 기술

2021. 11. 14. 19:18작업/MongoDB

목차 

Flask와 연결 / 세 가지 집계 방법론 / 인덱스 / 복제 세트 이해 / Read-Concern과 Write-Concern / 샤드 클러스터란?

 

Flask 연결 python 이용 mongoDB , Flask 해보기

ObjectId(_id) 로 넘겨야 한다. 그리고 첫번쨰 요소를 넘기므로 [0]

실습 1 넷플릭스 작품 목록 보기

실습 2 넷플릭스 작품 생성하기

세 가지 집계 방법론과 효율성

find 명령어로 평균이나 분포 등 집계를 하지는 못한다.

원본 데이터보다 결과 데이터의 양이 더 적으므로, 집계 연산은 데이터 처리 초기 단계에서 할 수록 유리하다.

처리속도 애플리케이션 < 맵 리듀스 < 집계 파이프라인(c언어)
자유도 애플리케이션 > 맵리듀스 > 집계 파이프라인

맵 리듀스 : 관련된 정보끼리 그룹화,

리듀스 함수: 그룹 내 정보들을 집계 연산

 

집계 파이프라인 : 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 연결된 구조

인덱스 개요 ( 기사 색인 만들기 )

인덱스는 검색과 순서 정렬을 효율적으로 만들어준다.

하지만 인덱스를 만들면 도큐먼트 생성,수정 시 인덱스를 업데이트해야하기 때문에 속도저하가 있다.

하지만 읽기 성능이 높아지기 때문에 대부분은 인덱스를 만들긴 함.

 

단순 인덱스: 하나의 필드를 기준으로 생성한 인덱스

복합 인덱스: 다수의 필드를 기준으로 생성한 인덱스

 

a-b 복합 인덱스는 a 단순 인덱스와 같은 기능을 하므로 대체할 수 있다.

 

 

복제 세트 : 같은 정보를 공유하는 Data Set 이다.

복제 세트를 만드는 이유

 - 높은 가용성

 - 정보의 안전한 보호

 - Read 속도를 빠르게 확장하는 부가적 기능이 있다.

복제세트는 프라이머리, 세컨더리, 아비터 구성원이 있다. 아비터는 정보를 갖고있진 않지만 하트비트를 확인하기 위한 구성원이다.

프라이머리가 무슨 이유에서든지 죽게 되면, 복제 세트 구성원 중 과반수의 세컨더리가 이를 감지하여 선거를 개최하기로 결정한다.

그런데 반대표를 던질 수도 있다. primary가 아직 제대로 작동하거나 후보보다 자신이 더 최신 데이터를 전달받았을 경우 ..

세컨더리로 읽기 기능을 확장할 수 있다. 단 단점은 읽기 지연이 생긴다.

 

Read Concern 과 Write Concern

Read Concern 어느 정도 동기화 수준을 기준으로 정보를 읽어올지 설정한다, level

Write Concern 어느 정도 동기화 수준을 기준으로 쓰기 작업을 마무리할지 설정한다. w wtimeout j

Read Concern 설정: local, majority, linearizable

세컨더리가 지연 등의 문제로 정보 동기화가 어려울 떄에 대비해 level을 설정함.

 

저널링 : 메모리에 저장하면 정전되면 날라감, 메모리에 정보 저장하는 시간이 디스크에 저장하는 것보다 훨씬 빠르다.

 

Write Concern 과 저널링 w, j wtimeout

w 옵션 0, 1, 1보다 큰 자연수, majority

샤드 클러스터

컴퓨터의 모든 장비는 성능이 좋아질 수록 가성비가 안좋아진다.(가격)

즉, 성능 2배 좋은 서버를 쓰는 것보다 2개의 서버를 쓰는 게 경제적이다.

즉, 분업을 위해서는 지휘자가 필요함

app server, shard , config server 

샤드와 컨피그 서버는 복제세트를 가질 수 있음. 

컬렉션별로 어느 샤드에 저장할 지 정할 수 있다.

이 샤드에 분산해서 저장하는 기준을 샤드 키라고 한다.

샤딩은 특정 필드 값을 기준으로 정보를 분산시킨다. 이 때 3가지 기준이 있다.

범위 샤딩, 해시 샤딩, 구역 샤딩

범위 샤딩 : 가장 기본적인 샤딩 방법. 범위에 따라 분산한다.

단점: 남자 키.. 항상 평균 175cm에만 샤딩이 되고 도큐먼트가 쏠릴 수 있다.

 

해시 샤딩 : 장점 한쪽에 몰릴 가능성이 적지만 단점 범위 찾는 쿼리를 수행할 때마다 다수의 클러스터에서 찾아야 한다.

구역 샤딩 : 범위샤딩인데 좀더 커스터마이징 가능한 범위샤딩 느낌.

강사님 : 맛있는 MongoDB 책 읽어보기!

'작업 > MongoDB' 카테고리의 다른 글

21.11.14 8주차 모의테스트  (0) 2021.11.14
21.11.12 MongoDB 2 쿼리 연산자  (0) 2021.11.13
21.11.12 MongoDB 1 개념 이론, MongoDB CRUD 해보기  (0) 2021.11.13