본문 바로가기

플젝 구현내용 정리

그라파나(Grafana), 프로메테우스(Prometheus), MongoDB

728x90
반응형

예전에 PoC(Proof of Concept)로 그라파나와 프로메테우스 그리고 몽고DB를 연계하여 모니터링 서비스를 구축한 적이 있다.

관련 내용을 정리해 보고자 한다.

 

RDBMS와 NoSQL 데이터베이스는 각각의 특성과 장단점이 있어, 프로젝트의 요구사항에 따라 적절한 선택이 필요하다.

RDBMS는 관계형 데이터베이스 관리 시스템으로, 데이터를 테이블 형태로 저장한다.

각 테이블은 고유한 스키마를 가지며, 데이터는 행과 열로 구성된다. RDBMS의 주요 장점은 데이터 무결성과 일관성을 보장하는 강력한 트랜잭션 관리 기능이다. 또한, SQL이라는 표준화된 쿼리 언어를 사용하여 비교적 데이터를 쉽게 조회하고 조작할 수 있다.

그러나 RDBMS는 스키마가 고정되어 있어 데이터 구조가 자주 변경되는 경우 유연성이 떨어질 수 있으며, 대규모 데이터 처리에 있어 확장성이 제한적일 수 있다.

 

반면, NoSQL 데이터베이스는 비관계형 데이터베이스로, 다양한 데이터 모델을 지원한다.

대표적인 NoSQL 데이터베이스로는 문서 지향형, 키-값 저장소, 열 지향형, 그래프 데이터베이스 등이 있다.

NoSQL의 주요 장점은 스키마가 유연하여 데이터 구조가 자주 변경되는 경우에도 유연하게 대응할 수 있다는 점이다. 또한, 수평적 확장이 용이하여 대규모 데이터 처리에 적합하다. 그러나 NoSQL은 데이터 무결성과 일관성 관리가 RDBMS에 비해 상대적으로 약할 수 있으며, 각 데이터베이스마다 고유한 쿼리 언어를 사용하기 때문에 학습 곡선이 있을 수 있다.

 

예전에 수행한 SI 프로젝트에서는 로그 저장용 데이터베이스로 MongoDB를 선택했다. MongoDB는 문서 지향형 NoSQL 데이터베이스로, JSON과 유사한 BSON 형식으로 데이터를 저장한다. 이는 로그 데이터와 같은 비정형 데이터를 저장하고 조회하는 데 매우 유용하다고 생각한다. 또한, MongoDB는 수평적 확장이 용이하여 대규모 로그 데이터를 효율적으로 처리할 수 있는 장점이 있다.

이러한 이유로, 이전 프로젝트의 요구사항에 가장 적합한 로그 저장용 데이터베이스로 MongoDB를 선택했었다.

 

추가로, MongoDB의 데이터 구조를 살펴보면 아래와 같다. 

MongoDB는 데이터를 BSON(Binary JSON) 형식으로 저장한다. BSON이 MongoDB의 기본 데이터 타입 이다.

그리고 BSON은 JSON과 유사한 구조를 가지며, 다음과 같은 데이터 타입을 지원한다:

  • 문자열 (String)
  • 정수 (Integer)
  • 부동 소수점 (Floating point)
  • 배열 (Array)
  • 객체 (Object)
  • 불리언 (Boolean)
  • 날짜 (Date)
  • Null
  • ObjectId
  • 기타 특수 타입 (예: Binary data, Regular expressions)

예를 들어, MongoDB에 저장되는 문서는 다음과 같은 형태를 가질 수 있다:

{
  "_id": ObjectId("507f1f77bcf86cd799439011"),
  "name": "John Doe",
  "age": 29,
  "email": "john.doe@example.com",
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  },
  "phone_numbers": ["555-555-5555", "555-555-5556"],
  "is_active": true,
  "created_at": ISODate("2023-10-01T12:00:00Z")
}

이 문서는 name, age, email, address, phone_numbers, is_active, created_at 필드를 포함하고 있으며, 각 필드는 다양한 데이터 타입을 사용하고 있다.

MongoDB는 이러한 유연한 데이터 구조를 통해 다양한 형태의 데이터를 효율적으로 저장하고 관리할 수 있다.

 

- 끝 -

728x90
반응형