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 모델은 관련 정보가 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 |