ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 쿼리

    1. 질의  : 하나의 쿼리를  명시하는 키워드 mongoDb는  6개정도의  질의를 구현한다.
    • 가. 키- 값 질의   :  특정필드와 맵핑되는 값을 포함하는 문서를 말한다. 주 Key에 대한 값을 리턴하는 경우를 말한다.
    • 나. 범위   :  특정범위에 포함되는 값을 말한다. (비교 연산자)
    • 다. 공간 질의 : 선, 원, 다각형 등에 대한 공간 근사값   [선박, 항공, 제조업, 구글, 포털 사이트(지도) ]
    • 라. 문자열 탐색 질의 :  논리 연산자를 통해서 특정 문자열에 결과값.
    • 마. 집합 질의 : 그룹함수를 지칭하며count, min, max, average 등을 이용한 결과값
    • 바. mapreduce query : java script 로 표현되는 복잡한 데이타를데이타 베이스에 실행해 반환하는 질의를 말한다.
    1. 파일 입 출력  및 변환 작업

    csv [tsv] <-> json  <-> sql 3. 복제 및 샤드 작업   [ index]


    문서정보 --dbpath C:\data\mydata

    1. 외부적인 정보 상태(3.0 ver wt가 추가되어 사용된다)

      1. mongod.lock : 서버의 프로세스 ID를 저장한다.
      2. .0파일 생성 : 메타데이터 네임스페이스 영역 ns 16가 기본
        • 28000개가 기본으로 하나의 네임페이스를 생성한다. (데이터베이서 ← 컬렉션 ← document)
      3. collection.wt : 2GB가 최대이다. 순수한 데이터 파일
      4. index.wt : 2GB가 최대이다.
      5. 데이터를 정적으로 관리한다.
      6. 스파크에 연동되어 집계 또는 스트리밍 작업을 원할 하게 한다.
      7. wt[WiredTiger]
        • 몽고의 DB엔진
        • 스토리지 엔진 + DB엔진(MYSQL)로 구현될 수 있게 분리되는 프레임
        • 메타타입의 정보만 저장되어있다.
    2. 내부적인 정보 상태 db.stats(): 자료를 입력 했을때 몽고드라이버가 동작된다.

      1. 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를 카운팅 해서 관리한다.
      2. 문서를 BSON로 변환
      3. 네트워크 소켓을 통해서 데이터 베이스로 데이터를 전달한다.
    3. 식별

      1. $시작 불가
      2. 255자내의 글자
      3. .연산자 포함 불가
      4. null 중간에 포함 불가
      5. 필드이름은 하나의 컬렉션 내에서 유일한 값으로 존재한다.
      6. 문서의 크기 16M 제한적이다. (네트워크 대역폭)
      7. 만일 문서가 대용량(16M이상)일 경우에 GridFs API를 사용한다.

    'DB > MongoDB' 카테고리의 다른 글

    [MongoDB] 2. MongoDB Sharding 란?  (0) 2020.12.25
Designed by Tistory.