-
[MongoDB] 1. MongoDB란?DB/MongoDB 2020. 12. 15. 00:06
MongoDB
mongoDB는 문서지향 저장소를 제공하는 NoSQL 데이터베이스 시스템으로 NoSQL 점유률 1위이다.
JSON형태의 동적 스키마형 문서를 사용하고 이를 MongoDB 에서는 BSON이라고 부른다.
배열(Array)이나 날짜(Date) 등 기존 RDMS에서 지원하지 않던 형태로도 저장할 수 있기 때문에 JOIN이 필요 없이 한 문서에 이해하기 쉬운 형태 그대로 정보를 저장할 수 있다는 것이 특징
MongoDB 설치 및 저장소 설정
MongoDB 설치
https://www.mongodb.com/try/download/community - 프로그램설치
MongoDB 저장소 사용자 지정
1. C:\\data\\mydata 폴더를 생성 한다음 my.log와 my.cfg파일을 생성한다.
2.해당 로그파일을 저장할 때 사용자가 지정하는 특정위치를 사용하도록 지정한다. . C:\\>echo logpath="C:\\data\\mydata\\log\\my.log" >"C:\\data\\mydata\\log\\my.cfg"
3. 서비스 등록 및 db path mongod --dbpath "c:\\data\\mydata" --logpath "c:\\data\\mydata\\log\\my.cfg" --install --serviceName MyMongo --serviceDisplayName MyMongo
4. 삭제 mongod --dbpath c:\\data\\mydata --logpath c:\\data\\mydata\\log\\my.cfg --remove
5. Net start MongoDB 실행
6. Net stop MongoDB 실행
몽고 DB 쿼리
- 질의 : 하나의 쿼리를 명시하는 키워드 mongoDb는 6개정도의 질의를 구현한다.
- 가. 키- 값 질의 : 특정필드와 맵핑되는 값을 포함하는 문서를 말한다. 주 Key에 대한 값을 리턴하는 경우를 말한다.
- 나. 범위 : 특정범위에 포함되는 값을 말한다. (비교 연산자)
- 다. 공간 질의 : 선, 원, 다각형 등에 대한 공간 근사값 [선박, 항공, 제조업, 구글, 포털 사이트(지도) ]
- 라. 문자열 탐색 질의 : 논리 연산자를 통해서 특정 문자열에 결과값.
- 마. 집합 질의 : 그룹함수를 지칭하며count, min, max, average 등을 이용한 결과값
- 바. mapreduce query : java script 로 표현되는 복잡한 데이타를데이타 베이스에 실행해 반환하는 질의를 말한다.
- 파일 입 출력 및 변환 작업
csv [tsv] <-> json <-> sql 3. 복제 및 샤드 작업 [ index]
문서정보 --dbpath C:\data\mydata
-
외부적인 정보 상태(3.0 ver wt가 추가되어 사용된다)
- mongod.lock : 서버의 프로세스 ID를 저장한다.
- .0파일 생성 : 메타데이터 네임스페이스 영역 ns 16가 기본
- 28000개가 기본으로 하나의 네임페이스를 생성한다. (데이터베이서 ← 컬렉션 ← document)
- collection.wt : 2GB가 최대이다. 순수한 데이터 파일
- index.wt : 2GB가 최대이다.
- 데이터를 정적으로 관리한다.
- 스파크에 연동되어 집계 또는 스트리밍 작업을 원할 하게 한다.
- wt[WiredTiger]
- 몽고의 DB엔진
- 스토리지 엔진 + DB엔진(MYSQL)로 구현될 수 있게 분리되는 프레임
- 메타타입의 정보만 저장되어있다.
-
내부적인 정보 상태 db.stats(): 자료를 입력 했을때 몽고드라이버가 동작된다.
- mongodb에 추가되는 문서의 고유번호 _id로 필드와 값을 생성한다.
- "_id" : ObjectId("5fd70cba 3644a2 2b9e 7471eb")
- 5fd70cba <4byte> 타임스탬프 1970.1.1 표준타임
- 3644a2 <3byte> 서버 ID 서버측 식별자
- 2b9e <2byte> 프로세스 ID
- 7471eb <3byte> 로컬 카운트
- 문서에(db)에 컬렉션(테이블)이 추가되거거나 document에 추가될때마다 id가 생성되며 프로세스에 생성된 ID를 카운팅 해서 관리한다.
- "_id" : ObjectId("5fd70cba 3644a2 2b9e 7471eb")
- 문서를 BSON로 변환
- 네트워크 소켓을 통해서 데이터 베이스로 데이터를 전달한다.
- mongodb에 추가되는 문서의 고유번호 _id로 필드와 값을 생성한다.
-
식별
- $시작 불가
- 255자내의 글자
- .연산자 포함 불가
- null 중간에 포함 불가
- 필드이름은 하나의 컬렉션 내에서 유일한 값으로 존재한다.
- 문서의 크기 16M 제한적이다. (네트워크 대역폭)
- 만일 문서가 대용량(16M이상)일 경우에 GridFs API를 사용한다.
'DB > MongoDB' 카테고리의 다른 글
[MongoDB] 2. MongoDB Sharding 란? (0) 2020.12.25