# DynamoDB in detail


1. index

- 기본 index : primary key 를 이용 (default)

- Local Secondary Index : 메인 테이블과 별개로 테이블이 생성되는 것은 아니고, 데이터를 저장하는 물리적인 node의 local storage에 색인 데이터가 생성

- Global Secondary Index : 메인 테이블과 별개로 새로운 테이블이 생성되고, 메인 테이블의 일부 item들을 projection한 결과를 저장할 수 있음


2. provisioned throughput

- aws 는 저장용량에 대한 비용 외로 추가적으로 read/write 에 대한 성능을 보장하면서 비용을 더 받는다

- 가격정책은 http://aws.amazon.com/ko/dynamodb/pricing/ 서 확인 가능하다

- Unit : 초당 읽은/쓴 아이템 수 * kb 단위 아이템 크기

- Read Capacity Units

- Eventually Consistent Read * 2 = Strongly Consistent Read

- 200 GetItem = 10 BatchGet (50 times) : api call 수가 아닌 아이템 수 이다...

- Write Capacity Units

- example : 512 byte * 200 read/sec = 1kb * 200 = 200 unit

        - 10TB 이상의 경우 실제 물리 서버가 나뉘게 되는데 이때 throughput 은 나뉘진 물리 서버 갯수만큼 나누어 적용되게 된다

   - example : 10 WCP 의 table 의 경우 node 10개 일 때 각각 1 WC 가 적용된다


3. Get the item

- 2가지 조회 방법이 있으며 두 방법 다 최대 1 mb 까지 조회 가능하다

- scan : 조건 없이 table 내의 모든 item 반환

- query : 조건(primary key)을 통해 해당되는 item 반환


4. Local Test

- http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz

- 압축 해제

- 실행 : java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar 

- 실행옵션

- -port 8888 : 8888 port 로 사용한다 (기본포트는 8000)

- -inMemory : db파일 생성하지 않고 memory 를 사용한다

    - 실행 확인

     - web : http://localhost:8888/shell

     - java client

        client = new AmazonDynamoDBClient(credentials);

               client.setEndpoint("http://localhost:8888");


5. 기타 제약 사항

- http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html

'Nosql > aws dynamoDB' 카테고리의 다른 글

DynamoDB 테이블 설계  (0) 2016.08.26
DynamoDB 소개  (0) 2016.08.02
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 감각적신사
,