'Nosql/couchbase'에 해당되는 글 3건

  1. 2016.08.02 couchbase java client
  2. 2016.08.01 couchbase 설치
  3. 2016.08.01 couchbase 소개

java client of couchbase  


------------


1. 자바 클라이언트 적용  

- pom.xml 에 관련 dependency 추가  

-

    <dependency>

      <groupId>com.couchbase.client</groupId>

      <artifactId>couchbase-client</artifactId>

      <version>1.2.3</version>

    </dependency>

  - client 호출  

  - 

  public CouchbaseClient getCouchbaseClient(){

    CouchbaseClient couchbaseClient = null;

   

    ArrayList<URI> nodes = new ArrayList<URI>();

    

    // Add one or more nodes of your cluster (exchange the IP with yours)

    nodes.add(URI.create("http://lvm001:8091/pools"));

    

    try {

    couchbaseClient = new CouchbaseClient(nodes, "default", "");

    } catch (Exception e) {

    System.err.println("Error connecting to Couchbase: " + e.getMessage());

    System.exit(1);

    }

   

    return couchbaseClient;

 }

    

2. 자바 클라이언트를 통한 read/write to couchbase  

    - data 저장방식  

- java object : java 에서 생성한 object 그대로 입출력, admin-web 에서 json document 형태로 확인이 가능  

- json object : java object 를 json 형태의 object 로 변환하여 입출력, admin-web 에서 json document 형태로 확인이 가능  

- string : java object 를 string 형태로 변환하여 입출력, admin-web 에서 json document 형태로 확인 불가  

    - example  

    - java object  

        public void setObject(String id, CouchbaseVO couchbaseVO){  

      couchbaseClient.add(id, couchbaseVO);  

      }  

      public CouchbaseVO getObject(String id){

      CouchbaseVO couchbaseVO = null;  

      couchbaseVO = (CouchbaseVO)couchbaseClient.get(id);  

      return couchbaseVO;  

      }

    - json obejct  

        public void setJsonObject(String id, CouchbaseVO couchbaseVO){

      Gson gson = new Gson();  

      couchbaseClient.set(id, gson.toJson(couchbaseVO));  

        }

        public CouchbaseVO getJsonObject(String id){  

        Gson gson = new Gson();  

        CouchbaseVO couchbaseVO = null;  

        couchbaseVO = gson.fromJson((String)couchbaseClient.get(id), CouchbaseVO.class);  

        return couchbaseVO;  

        }

    - string   

        public void setString(String id, CouchbaseVO couchbaseVO){  

            couchbaseClient.set(id, couchbaseVO.toString());  

        }   

        public CouchbaseVO getString(String id){  

        CouchbaseVO couchbaseVO = null;  

        String value = (String) couchbaseClient.get(id);      

        couchbaseVO = CouchbaseVO.convert(value);       

        return couchbaseVO;      

        }   

  

      - 비교

- write : string > java == json  

- read : string > java == json  

- 큰 차이가 존재하지는 않았으나 string 타입으로 처리하는 것이 빠른 속도를 내는 것으로 보였다  

- but  

- string 타입은 web 상으로 값이 구분이 안되기 때문에 잘 데이터 확인이 필요한 수준을 판단해야 한다  

- object 를 string 타입으로 잘 변환할 수 있는 java code 를 구현해야 한다

'Nosql > couchbase' 카테고리의 다른 글

couchbase 설치  (0) 2016.08.01
couchbase 소개  (0) 2016.08.01
Posted by 감각적신사
,

couchbase 설치

Nosql/couchbase 2016. 8. 1. 13:15

couchbase

------------


1. 특징  

    - 간단한 확장성 : admin-web 에서 추가 및 삭제가 용이하다  

    - 일관성 & 고성능 보장  

- write queue 와 replica queue 를 이용하여 일관성을 유지  

- cache 기반의 read / write 를 지원  

    - 24 x 365 무중단 서비스  

    - 유연한 데이터 모델 : document 기반의 schemaless 구조  


2. 설치  

    - 사양 :  

- 최소 : CPU 2 core, Mem 4 GB  

- 권장 : CPU 4 core, Mem 16 GB  

- 디스크 제한사항 : Network filesystems (e.g. CIFS, NFS) 을 지원하지 않음  

    - 다운로드 :  

    - http://www.couchbase.com/nosql-databases/downloads  

    - install on ubuntu  

    - dpkg -i couchbase-server-community_3.0.1-ubuntu12.04_amd64.deb  

    - setting  

               

    - http://serverIP:8091/index.html  

    - cluster 생성 및 기존 cluster 에 추가 가능  

    - bucket 설정, memory 설정, 복제 수 설정, Disk I/O 관련 설정 (low/high) 가능  

'Nosql > couchbase' 카테고리의 다른 글

couchbase java client  (0) 2016.08.02
couchbase 소개  (0) 2016.08.01
Posted by 감각적신사
,

couchbase 소개

Nosql/couchbase 2016. 8. 1. 13:09

description of couchbase  

------------


1. 아키텍쳐  

       

- data manager  

- 데이터 저장 및 접근 관리  

- 데이터 분산 샤드 및 복제 데이터 관리  

- 문서를 '버켓' 에 저장  

- 노드와 직접 통신, 문서에 접근  

- 내장 캐시 : 일관성 있는 대기시간 보장  

- cluster manager  

- 클러스터의 모든 서버의 구성과 작동 관리  

- replication, rebalancing, 내부노드 작동  

- cluster 관리 API 제공  

- 장애발생시, 복제 문서 활성화  

- cluster map 갱신, 다운타임없이 작동  


2. 네트워크  



3. schema design  

- couchbase 는 스키마리스 하기 때문에 정형화된 데이터 구조를 가지지 않지만 데이터 관리를 위해 스키마를 생각하는 것이 좋을 것이다  

- beer with brewery objects  

- beer 를 각각의 document 로 관리  

- 장점 : 하나의 document 의 read/write 에 대한 부하가 적다  

- 단점 : 하나의 brewery 에 대한 전체 beer 를 받아오기 위해서 다수의 call 이 필요하다  

- 추천 : brewery 가 가변적이고 beer 단위의 데이터 입출력이 많을 경우에 좋은 것 같다(내생각)  

        - brewery with beer objects :  

    - 하나의 brewery 의 내부에 다수의 beer 저장, 관리  

    - 장점 : 한번에 많은 정보에 대한 read/write 가 가능  

    - 단점 : 하나의 beer 를 얻기 위해 불필요한 네트워크 사용이 발생  

    - 추천 : brewery 가 고정적이며 데이터의 입출력 단위가 brewery 일 경우에 좋은 것 같다(내생각)  


reference : http://blog.couchbase.com/organizing-document-structure-document-databases

'Nosql > couchbase' 카테고리의 다른 글

couchbase java client  (0) 2016.08.02
couchbase 설치  (0) 2016.08.01
Posted by 감각적신사
,