Information Security ˗ˋˏ ♡ ˎˊ˗

OS/Database

[DBMS] Couchbase Database 기본지식 및 설치방법

토오쓰 2022. 1. 17. 13:02

CouchBase Server에 대한 정의 및 특징

모바일 게임 중에 유명한 쿠키런의 경우 카우치베이스를 백엔드로 사용하고 있는데, 안정성이나 성능 등이 매우 뛰어나고, 사용하기 또한 매우 쉽다.

정의

Apache의 CouchDB를 기반으로 새롭게 만든 솔루션이 카우치베이스 Server라는 NoSQL 솔루션이다.

고성능 NoSQL(비 관계형)로 MongoDB와 같이 JSON Document에 저장하는 Document DB이다.

특징

  • NoSQL의 분산 이론인 CAP 이론에서 CP (Consistency & Partition tolerance)의 부분에 해당하여 데이터에 대한 일관성과, 노드 간의 네트워크 장애 시에도 서비스를 제공한다.
  • Memcached 기반의 Level 2 캐시를 내장하여 빠름
  • 모바일 디바이스에 탑재 가능
  • 웹 기반의 GUI 관리 도구를 기본으로 제공
  • RDBMS들이 지원하는 index, grouping, ordering 기능을 지원
  • 데이터센터 간 복제 가능
  • 다양한 언어의 SDK(software development kit)를 지원(JAVA, C#, PHP, C, Python, Ruby 등)
  • 구조: 여러 개의 노드로 이루어진 클러스터로 구성

 

참고할 내용

1) 버킷(Bucket)

일종의 RDBMS의 데이터베이스 같은 공간이다.

JSON Document들이 버킷에 저장된다.

버킷 별로 고유 속성을 가지고 있어 버킷 별로 복제본의 수와 접근할 수 있는 TCP 포트 접근 비밀번호를 지정할 수 있다.

2) vBucket 개념

Logical Data Container

논리적인 1024개의 vBucket으로 구성되며, 실제 데이터와 물리 서버 간의 맵핑을 vBucket이라는 것을 이용해서 관리한다. 카우치베이스는 키가 어디에 저장되어 있는지를 vBucket이라는 단위로 관리한다.

3) 뷰(View)

  • RDBMS의 뷰 개념과 유사하고, 원본 데이터로부터 필터링을 통해 원하는 형태의 데이터로 변환하여 보여주는 읽기 전용 테이블
  • Filtering 뿐만 아니라, Indexing, Grouping, Ordering과 같은 다양한 기능
    • 맵&리듀스(Map&Reduce) 함수
      function(doc,meta){
      emit(doc.role,doc.country);

      }
  • doc는 버킷 내 저장된 개별 데이터로 각 데이터 별로 ID와 JSON Document 값 갖는다.
  • meta는 데이터에 대한 메타데이터(Flag, CAS 값 등)를 리턴한다.

 

노드의 구성

Data Manager Cluster Manager
메모리/물리계층의 데이터관리
직접 데이터에 접근하는 부분으로 SET/GET 메서드를 이용하여 데이터를 저장하거나 뷰에 대한 쿼리를 수행할 때 접근되는 인터페이스
블록 관리
노드에 대한 상태와 클러스터에 대한 상태, 설정 등을 관리

 


Ubuntu에 Couchbase 설치

* Apt 사용하여 설치

 

1) 메타 패키지 다운로드

curl -O https://packages.couchbase.com/releases/couchbase-release/couchbase-release-1.0-amd64.deb

 

* curl 존재하지 않는 경우, 설치

sudo apt install curl 

 

2) 메타 패키지 설치

sudo dpkg -i ./couchbase-release-1.0-amd64.deb

3) sudo apt-get update

4) Couchbase Server 설치

 

5) 웹 브라우저 열고 Couchbase 웹 콘솔에 접근하여 확인

접속: http://localhost:8091 

 

Admin 계정과 비밀번호 지정하면 아래와 같이 Admin페이지가 나온다.

 

6) Document 생성

Create Document 클릭

 

Document ID: test01

- ID는 Key로 사용되기 때문에 고유한 값으로 해야 한다.

 

- JSON 포맷으로 해야 한다.

- ""를 이용하여 문자열을 묶어준다.

 

Loockup ID 버튼을 클릭하여 조회한다.

 

 

 참고 

설치

https://soccerda.tistory.com/122

https://docs.couchbase.com/server/current/install/ubuntu-debian-install.html

* https://soccerda.tistory.com/126

 

내용지식

* https://bcho.tistory.com/924

https://soccerda.tistory.com/122