DynamoDB

katrina·2021년 11월 9일
0

DynamoDB

  • NoSQL(Not only SQL) 데이터베이스
  • 매우 빠른 쿼리 속도
  • auto-Scaling 기능 탑재
  • key-value 데이터 모델 지원
  • 테이블 생성시 스키마 생성 필요 없음
  • 모바일, 웹 iot 데이터 사용시 추천됨
  • SSD 스토리지 사용

Primary Kye(PK)

  • pk를 사용하여 데이터 쿼리
  • DynamoDB에는 두가지의 PK 유형이 있음
  • partition key
    고유 특징(Unique Attribute)
    실제 데이터가 들어가는 위치를 결정해줌
    파티션키 사용시 동일한 두개의 데이터가 같은 위치에 저장될 수 없음.
  • Composite Key 복합키
    partition key + sort key
    예시 : 똑같은 고객이 다른 날짜에 다른 물건을 구매
    파티션 키 : 고객id, 정렬키 : tiemStamp
    같은 파티션키의 데이터들은 같은 장소에 보관, 그다음 정렬키에 의해 데이터가 정렬됨.

DynamoDB 데이터 접근 관리

AWS IAM으로 관리 가능.
테이블 생성과 접근 권한을 부여할 수 있음.
특정 테이블만, 특정 데이터만 접근 가능케 해주는 특별한 IAM 역할 존재

Index

특정 컬럼만을 사용하여 쿼리
테이블 전체가 아닌 pivot을 사용해 쿼리가 이뤄짐.
매우 큰 쿼리 성능 효과
두가지의 Index 유형 존재

  • Local Secondary Index
  • Global Secondary Index

Local Secondary Index(LSI)
테이블 생성시에만 정의해줄 수 있음.
따라서 테이블 생성 후 변경, 삭제 불가능.
똑같은 파티션키 사용 그러나 다른 정렬키 사용.

Global Secondary Index(GSI)
테이블 생성 후에도 추가, 변경, 삭제 가능
다른 파티션키, 정렬키 사용

Query

  • pK를 사용하여 데이터 검색
  • query 사용시 모든 데이터(컬럼) 반환
  • ProjectionExpression 파라미터로 필요한 데이터만 쿼리 가능

Scan

  • 모든 데이터를 불러옴(pk x)
  • ProjectionExpression 파라미터
  • lookup용

scan은 불필요한 데이터까지 조회하게 될 경우가 많기 때문에 성능/비용 측면에서 query를 추천.
Scan은 pk가 없고 데이터가 많지 않을때 사용.

Reference
DynamoDB

0개의 댓글