PaaS/Data

(NoSQL) MongoDB 구성요소

armyost 2022. 4. 15. 14:43
728x90


Mongo DB 구성요소

1. Databases

admin Database
admin DB는 관리목적으로 사용되는 DB이며 인증과 인가의 핵심 역할을 수행한다. 

config Database
샤딩과 샤딩을 위한 메타데이타 정보를 저장하기 위해 사용. 단일 구성으로 mongoDB를 올릴경우에는 해당되지 않습니다. Replica Set 기반에 동작하면 해당됩니다.

일반 Database

 

2. 기타 구성요소

Aggregation

Aggregation은 여러 document들을 grouping하여 연산을 수행한 후 하나의 result를 반환하는 연산입니다. MongoDB는 다음과 같은 세가지 방법의 Aggregation을 제공합니다.

Aggregation Pipeline
가장 기본적인 파이프라인 단계는 filter로, document들을 query한 후 특정 필드를 기준으로 grouping하거나 sorting 하는 것입니다. 각 파이프라인 단계에서 operater를 활용하여 평균값 계산이나 스트링 연결과 같은 연산을 수행할 수 있습니다.


Map-Reduce function
Map-Reduce function은 두 가지 단계로 구성되는데, map단계에서 주어진 각 document를 프로세싱 하고, reduce 단계에서 map연산의 결과를 combine합니다. 또한 부가적으로 finalize단계가 존재하는데, 마지막으로 result를 modification하는 단계입니다. 다른 aggregation과 마찬가지로, document들을 filtering하여 선택적으로 input document를 줄 수 있습니다.

Map-Reduce function은 사용자가 정의한 Javascript 함수를 사용할 수 있기 때문에 Aggregation pipeline보다 더 유연한 반면 보다 덜 효율적이고 복잡합니다.

 

single purpose aggregation method

MongoDB는 db.collection.estimatedDocumentCount(), db.collection.count(), db.collection.distinct() 와 같은 메서드를 제공하는데, 이는 하나의 collection에서 aggregation하는 것으로 간단한 반면 aggregation pipeline이나 map-reduce function보다는 성능이다 유연성 측면에서 뒤떨어집니다.

 

 


Documents
튜플. mongoDB는 BSON document를 따라서 데이터를 저장한다. BSON이란 JSON의 binary형태 표현이며, JSON보다 많은 데이터를 저장할 수 있다. 
{
field1: value1.
field2: value2.
field3: value3,
...
fieldN: valueN
}

 

Collection 

엔티티를 뜻한다.

 

※ BSON Types에 대해

Type Number Alias Notes
       
Double
1
"double"
 
String
2
"string"
 
Object
3
"object"
 
Array
4
"array"
 
Binary data
5
"binData"
 
Undefined
6
"undefined"
Deprecated.
ObjectId
7
"objectId"
 
Boolean
8
"bool"
 
Date
9
"date"
 
Null
10
"null"
 
Regular Expression
11
"regex"
 
DBPointer
12
"dbPointer"
Deprecated.
JavaScript
13
"javascript"
 
Symbol
14
"symbol"
Deprecated.
JavaScript code with scope
15
"javascriptWithScope"
Deprecated in MongoDB 4.4.
32-bit integer
16
"int"
 
Timestamp
17
"timestamp"
 
64-bit integer
18
"long"
 
Decimal128
19
"decimal"
New in version 3.4.
Min key
-1
"minKey"
 
Max key
127
"maxKey"
 

 

'PaaS > Data' 카테고리의 다른 글

ElasticSearch 7.10 Cluster 올리기  (0) 2022.07.15
Hadoop 이란?  (0) 2022.07.04
(RDBMS) 인덱스에 대해서  (0) 2022.01.25
(Oralce DB) 유용한 쿼리들  (0) 2021.07.26
(Oracle DB) Oracle2Oralce 다른 스키마로 이관하는 과정  (0) 2021.07.26