# 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 |