카우치베이스(Couchbase)란? 장점과 특성
회사에서 프로젝트를 시작하면서
기존 REDIS 를 사용하다 이번에는 NoSQL DB 중 카우치베이스(Cocuchbase) 를 도입하게 되었다.
REDIS 또한 강력한 NoSQL DB 중 하나로써 매우 유연하고 일관성 있으며 쉬운배포가 가능하다.
하지만 이번에 카우치베이스를 도입하면서 카우치베이스란 무엇이고 그 장점과 특성이 무엇인지 보려고 한다.
1. 카우치베이스(Cocuchbase)란 ?
분류 : NoSQL DB
공식 웹사이트 : couchbase.com
카우치베이스는 NoSQL DB 로 분류되며 DB 모델은 Key-value 이고 Schema-less 모델로 문서지향형이다.
저장 데이터 형태는 JSON 과 BLOB 으로 DISK 저장 또는 휘발성 RAM에 저장이 가능하다.
2. 카우치베이스 특성
1) NoSQL DB
Key - value 로 Pair 방식으로 데이터가 들어가 있고 Key는 문자열 Value 는 Json 으로 들어가 있다.
2) Memcached 기반 DB
Cache DB로 검색속도가 매우 빠르다.
3) SQL 지원
매우 큰 특징 중 하나인 SQL 과 유사한 N1QL 로 SQL 을 지원하는 것.
N1QL 을 통해 value 로 들어가있는 데이터를 SELECT 로 조회가 가능하다.
또한 where , order by, group by 를 통해 데이터를 가공할 수 있다.
DML 을 통해서 JSON 문서의 delete, update 가 가능하다.
또한 다른 bucket 또는 자신의 bucket 을 join 하는 기능도 제공하고 있다.
bucket 은 RDBMS의 테이블과 비슷하다.
4) Schema-less
카우치베이스 버킷은 RDBMS의 테이블과 비슷한 개념이지만 스키마가 없기 때문에 유연하게 다른 형식의
데이터도 입력할 수 있다.
5) Indexing
조회가 많은 조건에 대해서는 Indexing을 할 수 있으며 SQL 문으로 index가 가능하다.
6) 쉬운 확장성
Auto Sharding 기능이 있어 쉽게 서버를 추가 할 수 있으며 APP 변경없이 가능하다.
또한 Master-Slave 구조가 아닌 Multi-master 구조 이다.
7) 다양한 SDK 지원
JAVA, C#, PHP, C, Python, Ruby 등 다양한 언어를 제공하고 있다.
관련 예제는 카우치베이스 사이트에 있다.
사용법과 Java 에서 사용한 예제는 추후 정리하여 포스팅 하겠습니다.
Online documentations : https://docs.couchbase.com/home/index.html
Some free online trainings : https://training.couchbase.com/online
CB 030 :Essentials of Couchbase NoSQL Technology
CB 105: CB105Introduction to Data Modeling in JSON
CB 110: Introduction to N1QL Query Language for SQL People
CB 130: Introduction to NoSQL Application Development - choose the programming language you prefer.
CB116o: Introduction to Couchbase for Oracle Experts