DB

AWS Dynamo DB 개념

91cm 2021. 4. 25. 12:41

AWS Dynamo DB를 처음 접하므로, 개념 정리글!

기존의 RDBMS와는 다른 관점에서 접근해야하는 듯하다!

 

쿼리를 먼저생각하고 스키마를 설계하는 방식!

 

 

1.기본 키 

파티션키와 정렬키가 있음.

구성을 파티션키로만 사용할지, 파티션키+정렬키를 기본키로 사용할 지 선택 가능.

파티션키(해시키), 정렬키(선택사항)

 

1-1. 파티션키란?

-파티션 키는 유일해야함

-RDB의 PK정도로 이해하면됨

-테이블내에 필수!

-조건문으로 일치하는 값(=)만 가져 올 수 있음.

 

1-2. 정렬키란?

-필수는 아님!

-조건문으로 사용가능 한 것들 =, >, <, between, begin_with....

 

1-2. 파티션키+정렬키(복합키)

-동일한 파티션키 값을 갖을 수 있으며, 두 아이템의 정렬키가 달라야함

-파티션키가 동일할 경우, 모든 항목은 정렬키값 기준으로 정렬됨.

 

주의사항 : 파티션키와 정렬키는 한번 정해지면 바꿀 수 없음

 

2.데이터타입

Scalar Type (N) Number, (S) String, (B)Binary, Boolean, Null
Document  List , Map
Set Types Number Set, String Set, Binary Set

 

3.보조인덱스

-SQL의 인덱스와 비슷한 역할.

 

3-1.보조인덱스 종류

글로벌 보조 인덱스 와 로컬 보조 인덱스가 있다(일반적으로 글로벌 보조 인덱스를 사용한다.)

 

3-1-1. Global Secondary Index(글로벌 보조 인덱스) :

-파티션키와 정렬키가 둘다 다른 것

-테이블당 20개 까지만 생성가능

-인덱스 생성후 추가 생성,삭제 가능

 

3-1-2. Local Secondary Index(로컬 보조 인덱스)

-파티션키는 같지만, 정렬키는 다른 인덱스

-테이블당 5개까지만 생성가능

-한번 생성후 추가,삭제,수정 불가능

 

4.조인은 있을까?

-없다

 

5.정렬은?

-한번에 다중정렬은 불가능!

 

6.내포속성이란?

-테이블내에 depth를 가지고 있는 속성을 말함.

- Dnynamo DB는 32 depth까지 지원한다고 함

 

7.단점?

-Dynamo DB는 사용량에 따라 요금이 부과되서, 쿼리수 최적회에 신경을 많이 쓴다고함

하지만 특정 필드만 지정해서 select 가 불가능하다고함.

 

8.용량유닛이란?(Capacity Units)

-1초당 읽거나, 쓸수 있는 데이터 단위

-DB가 얼마나 일을 많이하고 있는지 확인하는 항목=과금량

-읽기용량과 쓰기용량 각각 독립적으로 요금을 먹임

 

 

 

 

 

 

 

 

 

참고

AWS 정렬 키를 사용하여 데이터 정리하는 모범 사례docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/bp-sort-keys.html

 

조건식

docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html

 

AWS Dynamo DB 핵심구성요소

docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html

 

Dynamo DB 설계방법

changhoi.github.io/posts/backend/dynamodb-single-table-design/