728x90

이번 블로그는 Application에서 지속적으로 변경할 수 있는 가볍고 유연한 스키마를 위한 JSON 데이터 모델에 대해서 살펴 보겠습니다.

 

Couchbase가 기본적으로 사용하는 JSON 데이터 모델의 장점은 다음과 같습니다.

  • 기본적인 데이터 타입 제공 : 숫자, 문자열, 내장 Document, 배열 등
  • 빠른 Serialization/Deserialization을 제공
  • JavaScript와 완벽한 호환
  • 대부분의 REST API 반환 타입으로 웹 어플리케이션 프로그래밍의 적합

 

JSON Document의 특징은 다음과 같습니다.

  • 주로 개별 Document는 어플리케이션에서 특정 오브젝트의 단일 인스턴스를 표현
  • Document는 관계형 테이블의 개별 레코드(로우, Row)에 해당
  • Document 내의 Attribute는 관계형 테이블의 개별 컬럼에 해당
  • JSON Document는 관계형 테이블의 레코드와 달리 유연한 스키마
  • 계층적 데이터 구조를 표현할 수 있는 Nested 구조 지원

 

관계형 데이테 모델과 JSON Document 모델의 차이를 다음처럼 비교할 수 있습니다.

[관계형 데이터 모델]
[JSON Document 모델]

  • 특정한 두 공항 간 비행 스케줄을 검색하는 경우를 예로 들면, 관계형 데이터 모델은 관련 테이블을 조인해야 하고 JSON Document 모델은 관련 정보가 1 개의 JSON Document에 모두 Embedding(특히 스케줄은 배열 형태로 저장)
  • 어플리케이션의 요청에 대한 빠른 응답, 확장성 및 낮은 Latency 제공
  • Document의 쉬운 복제, 다른 Document와 독립적인 높은 Atomicity, 복찹한 노드 간 상호 작업 감소로 경합 최소화 

 

JSON Document 모델은 유연하고 동적인 특징을 가지고 있습니다.

  • JSON Document 모델의 스키마는 어플리케이션 데이터 구조의 결과
  • JSON Document 모델의 스키마는 전적으로 어플리케이션에 의해 정의되고 관리
  • JSON Document 구조는 "Attribute - Value" pair로 내부적으로 구성
  • Couchbase는 스키마에 어떠한 제약 조건도 강제하지 않는 특징
  • 동일한 오브젝트 혹은 Collection을 표현하는 Document도 스키마가 서로 상이할 수 있는 유연성

 

최적의 JSON Document 모델은 Access Pattern과 오브젝트 관리 방식을 고려해야 합니다.

  • 데이터가 복잡하게 Embedding 하여 Document의 수가 감소하는 모델 : 동시에 조회되거나 변경되는 데이터의 그룹인 경우 적합, 단일 작업으로 읽고 쓸 수 있는 장점, 높은 Atomicity, 오브젝트 간 관련성이 적어 확장성 유리
  • 서로를 참조하도록 간결한 Document로 구성하지만 Document 수가 증가하는 모델 : Access Pattern이 예측 가능한 경우 적합, Document 크기 감소, 네트워크 통신 용량 감소, Key를 통한 참조(조인)

 

참고자료

https://docs.couchbase.com/server/current/learn/data/document-data-model.html

'Couchbase 아키텍처' 카테고리의 다른 글

[데이터]인덱스  (0) 2022.08.22
[데이터]Scope, Collection  (0) 2022.08.20
[서비스]Backup 서비스  (0) 2022.08.16
[서비스]Eventing 서비스  (0) 2022.08.16
[서비스]Analytics 서비스  (0) 2022.08.16

+ Recent posts