[MongoDB] TimeSeries

SangDosa·2025년 1월 25일

DataBase

목록 보기
1/2

MongoDB

NoSql을 지원하는 데이터 베이스
Bson 기반의 동적 스키마형 문서를 사용
데이터 타입까지 포함되어 이진형태로 인코딩해서 저장

Document

MongoDB의 기본 데이터 단위로 관계형 데이터베이스의 row와 유사
필드와 값 쌍으로 구성

Collection

Document의 그룹이며 관계형 데이터베이스의 테이블과 유사
컬렉션 내의 Document들은 모두 다른 구조로 저장 가능

CRUD

create

insertOne(), insertMany()

db.users.inserOne({
"field" : "value",
"field" : "value"
})

read

find(), findOne()
연산자: $eq, $gt, $lt, $regex

db.users.find({
"age" : {"$gt": 30}
})

update

updateOne(), updateMany(), replaceOne()
연산자: $set, $inc, $push

db.users.updateOne(
{"_id" : "ObjectId("id")"},
{"$set" : {"email" : "new.email@naver.com"}}
)

delete

db.users.delete({
"_id" : "ObjectId("id")"
})

장단점

  1. 장점
    1 ) 고성능, 고가용성 및 쉬운 확장성을 제공
    2 ) 이진 직렬화, 빠른 처리 속도, 다양한 데이터 유형 지원
  2. 단점
    1 ) join을 미지원
    2 ) 수정, 삭제에 대한 속도가 느림
    3 ) 복잡한 트랜잭션을 요구하는 어플리케이션에 어울리지 않음

Time Series

개념

시계열 데이터를 기준으로 데이터 저장
MongoDB에서는 TimeSeries Collection을 사용하여 효율적으로 데이터를 저장

생성

db.collection("collection_name"{
timeseries: {
timeField : "field_name", <- 필수
metaField : "value", <- 옵션
"field" : "value" ... <- 옵션
}
})

저장 방식

TimeField, MetaField 단위로 버킷이 생성되고, 해당 범위 내로 데이터가 들어 올 경우 동일한 버킷에 저장


참조
https://colevelup.tistory.com/45
https://it-creamstory.tistory.com/entry/MongoDB-60%EC%97%90%EC%84%9C-%EC%B6%94%EA%B0%80%EB%90%9C-Time-Series-Collection-%EC%83%9D%EC%84%B1%EB%B6%80%ED%84%B0-%EC%A1%B0%ED%9A%8C%EA%B9%8C%EC%A7%80
https://hello-world.kr/45

profile
조용한 개발자

0개의 댓글