본문 바로가기

728x90

DB/MongoDB

(4)
MongoDB Query Language 1. SQL VS MQL SQL(Structured Query Language)은 구조화된 질의어로 보통 DB에서 사용한다. 반면 MongoDB는 MQL(MongoDB Query Language)를 사용하고, SQL과의 차이점은 함수형 인자를 사용한다. 참고로 몽고 shell은 자바스크립트 기반으로 됐다. 그래서 자바 스크립트 명령어가 가능하다. 아래는 SQL과 MQL의 차이 예시다. SQL SELECT * FROM people MQL db.people.find() SQL SELECT id, user_id, status FROM people MQL db.people.find( {}, {user_id:1,status:1} ) SQL SELECT user_id, status FROM people MQL db..
Replica Set 구축하기 1. Atlas와 On-Premises의 차이 Atlas는 mongoDB 클라우드 제품을 뜻하며, 비용을 제공해야 한다. 반면 On-premises는 자체적으로 보유하고 있는 서버에 직접 설치하고 운영하는 방식이다. 비용을 아낄 수 있지만, 몽고 DB를 직접 관리하고 운영해야 한다. 편의를 위해서 Atlas를 사용하였다. 2. Replica Set 구축 위의 형태로 Replica Set을 구축해 보겠다. 1) 데이터 구축 MongoDB Shell을 사용해서 구현해보겠다. 먼저 Replica Set을 구현하기 위해 폴더들을 위의 사진처럼 만들어야 한다. ./mongodb --replSet rs1 --port27017 --bind_ip "0.0.0.0" dbpath "경로/data1" --oplogSize ..
MongoDB의 배포 형태 (2/2) 1. 배포 형태의 중요성 운영 중인 서비스에서 서버를 내려야 하는 상황이 온다면 어떻게 될까? 서버를 내리면 DB에 작업을 할 수 없다. 서비스 자체가 내려가는 문제가 발생한다. 위의 용도는 사실상 Study를 하거나 Test를 할 때만 사용할 수 있다. 하지만 Replica Set을 사용하면 이런 형태로 배포를 만들 수가 있다. 몽고 DB를 3개 설치하여 복제를 시켜서 동일하게 유지한다. 현업에서 가장 많이 사용하는 방식으로 이러면 HA(High Availability). 고가용성이 보장된다. Scale up을 통해 스토리지 용량을 늘릴 수 있지만, 이 방식도 한계가 있을 수가 있다. 데이터와 트래픽에 관한 분산을 해야돼서 scale out으로 확장해야 하는데. 이걸 몽고 DB에서 Sharded Clu..
MongoDB의 구조 (1/2) 1. MongoDB의 구조 기본적인 구조는 비슷하나, 명칭이 다르다. NoSQL은 3가지 database가 있다. admin: 권한 부여 & 일부 관리 작업을 하려면 admin Database 접근이 필요하다. local: 모든 인스턴스는 local database를 소유한다. local database 자체는 복제되지 않는다. config: shared cluster에서 각 shard 정보를 저장한다. DBA 입장에서는 admin을 사용하고, local은 멤버 개별적으로 필요한 정보를 저장한다. 운영이 아닌 개발만 하는 경우. 위의 DB가 보일수도 안 보일수도 있다. 2. 왜 대세가 됐을까? RDS에서 하지 못한 걸 했더니 인기가 많아졌다. MongoDB는 Storage Engine이 있는데 데이터가 ..

728x90