데이터베이스

MongoDB 에 대해 알아보겠습니다.

forward error correction Circle 2024. 6. 27. 08:07
반응형

Ⅰ. MongoDB 란? 

 NoSQL 데이터베이스로, 문서 지향(Document-Oriented) 데이터 모델을 채택한 데이터베이스 관리 시스템(DBMS)입니다. 고성능, 확장성, 유연성을 제공하며, 구조화된 스키마가 필요하지 않은 데이터를 저장, 쿼리, 인덱싱하는 데 적합합니다. MongoDB는 특히 대규모 데이터 처리를 필요로 하는 애플리케이션에서 많이 사용됩니다.

Ⅱ. MongoDB 주요 특징

ⅰ. 문서 지향 저장: MongoDB는 데이터를 JSON과 유사한 BSON(Binary JSON) 형식으로 저장합니다. 각 문서는 동적으로 스키마를 정의할 수 있어 유연한 데이터 구조를 가질 수 있습니다.

ⅱ. 스키마리스 데이터 모델: 각 문서는 고유한 구조를 가질 수 있으며, 동일한 컬렉션 내에서도 문서 간의 필드 및 데이터 형식이 다를 수 있습니다.

ⅲ. 고가용성 및 복제: MongoDB는 자동 장애 조치와 데이터 중복을 제공하는 레플리카 세트(replica set)를 통해 고가용성을 보장합니다. 레플리카 세트는 하나의 기본(primary) 노드와 하나 이상의 보조(secondary) 노드로 구성됩니다.

ⅳ. 수평적 확장: 샤딩(Sharding)을 통해 데이터를 여러 서버에 분산하여 저장할 수 있습니다. 이를 통해 대규모 데이터 세트를 효율적으로 관리하고 성능을 향상시킬 수 있습니다.

ⅴ. 강력한 쿼리 기능: MongoDB는 다양한 쿼리 언어를 지원하여 데이터 필터링, 집계, 정렬, 조인 등을 수행할 수 있습니다.

ⅵ. 인덱싱: 다양한 인덱스 타입을 지원하여 빠른 쿼리 성능을 제공합니다. 단일 필드, 복합 필드, 텍스트, 지리공간 인덱스를 생성할 수 있습니다.

ⅶ. 집계 프레임워크: 데이터 집계 작업을 효율적으로 수행할 수 있는 집계 파이프라인을 제공합니다. 파이프라인 단계에서 데이터를 필터링, 그룹화, 변환할 수 있습니다.

Ⅲ. MongoDB 구성 요소

ⅰ. 컬렉션 (Collection): SQL 데이터베이스의 테이블과 유사합니다. 문서의 그룹을 나타내며, 스키마가 없습니다.

ⅱ. 문서 (Document): SQL 데이터베이스의 행(row)과 유사합니다. BSON 형식으로 저장되며, 각 문서는 유일한 _id 필드를 가집니다.

ⅲ. 레플리카 세트 (Replica Set): 데이터 복제를 통해 고가용성과 데이터 안정성을 보장하는 구성 요소입니다.

ⅳ. 샤드 (Shard): 데이터 분산 저장을 위한 단위로, 샤드 클러스터를 구성하여 수평적 확장을 지원합니다.

Ⅳ. MongoDB 설치 및 기본 사용법

ⅰ. 설치: MongoDB는 다양한 플랫폼에서 사용할 수 있습니다. 예를 들어, CentOS 8 에서는 다음 명령어를 통해 MongoDB를 설치할 수 있습니다.

dnf install -y mongodb

 

ⅱ. MongoDB 서버 시작

systemctl start mongod

 

ⅲ. MongoDB 셸 접속

mongo

 

Ⅴ. MongoDB 기본 사용법

ⅰ. 데이터베이스 선택/생성

use myDatabase

ⅱ. 컬렉션 생성 및 문서 삽입

db.myCollection.insert({ name: "Alice", age: 25 })
ⅲ. 문서 조회
db.myCollection.find({ name: "Alice" })
ⅳ. 문서 업데이트
db.myCollection.update({ name: "Alice" }, { $set: { age: 26 } })

ⅴ. 문서 삭제

db.myCollection.remove({ name: "Alice" })

Ⅵ. MongDB 백업 방법

ⅰ. mongodump 사용

 MongoDB에서 가장 많이 사용하는 백업 도구입니다. 데이터베이스나 컬렉션을 BSON 파일로 백업합니다.

 

ⅱ. 기본 전체 백업

mongodump --out /path/to/backup

 

ⅲ. 특정 데이터베이스 백업

mongodump --db database_name --out /path/to/backup

 

ⅳ. 특정 컬렉션 백업

mongodump --db database_name --collection collection_name --out /path/to/backup

Ⅶ. MongDB 복구 방법

ⅰ. mongorestore 사용

 mongodump로 백업한 데이터를 복구할 때 사용합니다.

 

ⅱ. 기본 전체 복구

mongorestore /path/to/backup
 
ⅲ. 특정 데이터베이스 복구
mongorestore --db database_name /path/to/backup/database_name
 
ⅳ. 특정 컬렉션 복구
mongorestore --db database_name --collection collection_name /path/to/backup/database_na

Ⅷ. MongoDB 사용 사례

ⅰ. 빅데이터 애플리케이션: 대규모 데이터 처리가 필요한 애플리케이션

ⅱ. 실시간 분석: 빠른 데이터 입출력과 실시간 분석을 요구하는 경우

ⅲ. 콘텐츠 관리 시스템: 다양한 형식의 데이터를 저장 및 관리하는 시스템

ⅳ. IoT 애플리케이션: 다량의 센서 데이터와 로그를 처리하는 경우

반응형