본문 바로가기
DevOps/Cloud

[DynamoDB] DynamoDB란? 파티션키와 정렬키

by 카프리썬 2021. 6. 15.
728x90

DynamoDB란?

완전관리형 NoSQL기반 데이터베이스 서비스.

Key-Value형태를 제공하며 스키마가 따로 정해져 있지 않음.

 

장점 

JSON형태로 데이터를 저장하고, 수평확장(Scale-out)이 쉽고 유연하다.

질의 속도가 빨라 대량의 비정형 데이터처리에 용이

 

이 밖에도 완전관리형 데이터베이스 시스템으로

스토리지가 꽉차면 알아서 늘어난다거나, 일정기간마다 백업을 한다거나, 트래픽이 급증하면 성능을 조절하는 등

개발자는 데이터 조작 및 스키마 정의에만 신경쓰면 된다. 

 

단점

조인이 불가능하므로 연산이 다양하지 못하다

 

2020.01.19 - 정형데이터 vs 비정형데이터 (RDBMS VS NOSQL)

 

DynamoDB 구성

테이블 : 데이터레코드의 집합. 데이터를 테이블에 저장.

 

항목(Item)  :테이블에 있는 하나하나의 레코드 자체.

 

속성(attribute) : 항목이 가지고 있는 key-value형태의 데이터를 속성

 

파티션키(Partition Key)

RDBMS에서 primary key와 같은 역할. 

테이블에 무조건 하나만 존재해야하는 값으로 테이블에 있는 아이템을 어디에 나눌지 정하는 key. 

Hash type Key로 사용하며 키의 기본값은 스칼라 데이터형식. 

파티션키의 해시값을 이용해 저장할 파티션을 결정한다. 

 

파티션을 결정한다...? 샤딩(Sharding)

DynamoDB는 Partition의 크기가 10G를 초과하거나,

Provisioning Throughput이 일정 수준 이상이 되면 데이터에 대한 Partition을 나눈다 

이떄 파티션을 나누는 기준이 파티션키가 된다. 

파티션키가 같은 데이터는 같은 파티션에 저장하는 것이다. 

 

 

일치방식(Equal)의 검색만 지원한다.

 

 

정렬키(Sort Key 또는 Range Key)

파티션키와 정렬키를 조합하여 복합 기본키로 구성할 수 있음.

파티션키로 저장할 파티션공간을 결정하고, 같은 파티션키라면 정렬키 값을 기준으로 정렬되서 저장한다. 

 

일칠검색만 지원했던 파티션키와 달리

일치,부등호,포함 등의 범위를 지정할 수 있는 검색을 지원한다. 

 

sort key를 신중하게 설계하면 b

egins_with, between, >, <등 연산자를 사용하는 범위 쿼리를 사용하여 관련 항목의 필요한 그룹을 검색할 수 있다

 

 

출처 

파티션키 정렬키 

https://kjh107704.github.io/posts/AWS-DynamoDB-%EB%B9%84%EA%B4%80%EA%B3%84%ED%98%95-DB-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-0/

 

DynamoDB의 Hash key와 Sort key

DynamoDB의 Hash key와 Sort key에 대해서 알아보자. 이를 알아보기 전에 먼저 primary key에 대한 이해가 필요하다.

kjh107704.github.io

 

반응형

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });