본문 바로가기
DB2026년 5월 27일2분 읽기

MongoDB 8 — Time Series + Atlas Search 결합 사후

YS
김영삼
조회 1100
MongoDB 8 — Time Series + Atlas Search 결합 사후

핵심 요약

MongoDB 8 시계열 컬렉션 + Atlas Search 결합으로 4억 row 이벤트 데이터 분석. TimescaleDB 대비 storage 32% 작고 query 1.4배 빠름. text 검색·범위 쿼리·집계가 한 곳. 사후.

1. 시계열 컬렉션 생성

db.createCollection("events", {
  timeseries: {
    timeField: "ts",
    metaField: "user",
    granularity: "minutes"
  },
  expireAfterSeconds: 90 * 86400
})

자동 bucket·columnar 저장. TTL로 자동 삭제.

2. Atlas Search 통합

같은 컬렉션에 search 인덱스 추가 → text 검색과 시계열 집계 단일 query.

db.events.aggregate([
  { $search: { text: { query: "checkout error", path: "msg" } } },
  { $match: { ts: { $gte: ISODate("2026-05-01") } } },
  { $group: { _id: "$user.region", count: { $sum: 1 } } }
])

3. 실측

쿼리MongoDB 8TimescaleDB
1억 row 집계3.8s5.4s
text+범위1.2s4.1s
저장 크기 4억 row82GB120GB

4. 함정

  • 시계열 컬렉션은 update 제한 — append-only, 정정은 보상 이벤트로
  • granularity 변경 불가 — 처음 결정이 중요, seconds/minutes/hours 중
  • Atlas Search 색인 — 별도 비용, 인덱스 큰 트래픽에서 disk 부담
  • Postgres에서 마이그레이션 — 도구 부재, 커스텀 script

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록