# 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 감각적신사
,