DynamoDB

Seoyul Kim·2021년 3월 5일
0

DynamoDB

목록 보기
1/1

DynamoDB

Naming Rules

  • 대소문자를 구별하며 테이블 이름 및 인덱스 이름은 3자 이상 255자 이하로 이루어져 있어야 한다.
  • 테이블 이름 및 인덱스 이름은 a-z, A-Z, 0-9, _(underscore), -(dash), .(dot) 만 포함할 수 있다.

Data Types

Scalar Type: 하나의 값만 표현하며 숫자, 문자열 binary, boolean, null이 포함된다.

  • Number: 최대 38자리 까지 지원하며 DynamoDB에서 숫자는 가변 길이로 표현되며 0으로 시작하거나 끝나면 0은 잘린다. 숫자형을 사용해 날짜 또는 타임스탬프를 표현할 수 있다.
  • String: UTF-8 인코딩을 사용하며 문자열의 길이는 0을 초과해야한다. DynamoDB는 문자 코드 값의 크기로 문자열 비교를 수행한다.("a"는 "A"보다 크다.) 문자열을 이용하여 날짜 혹은 타임 스탬프를 표현할 수 있다.

  • Binary: 실행 파일이나 압축 파일, 이미지와 같은 모든 이진 데이터를 저장하기 위한 타입으로 비교시에는 각 바이트를 unsigned char로 간주하여 대소를 비교한다. 어플리케이션에서 binary data를 DynamoDB로 보내기 전에는 Base64로 인코딩해야한다.

  • Boolean: true or false

  • Null: unknown or undefined

Document Type: 트리 형태로 표현 가능한 중첩된 구조로 List 와 Map이 있다. 32단계까지 중첩 가능하며 속성 값이 빈 문자열이나 공집합은 허용되지 않지만 빈 리스트나 빈 맵은 허용된다.

  • List: 순서가 있는 값들의 모음
  • Map: unordered key-value의 모음

Set Type: 포함된 항목들이 고유한 집합으로 숫자 집합, 문자열 집합, 이진수 집합을 지원한다. 집합 내 모든 원소의 타입은 동일해야하며, 집합 내 원소들은 유일해야한다.

DynamoDB Stream

  • 데이블의 데이터 수정 이벤트를 캡쳐하는 선택적 기능으로, 각 이벤트는 스트림 레코드에 나타나게 된다. 테이블에 스트림을 활성화하면 1. 테이블에 새로운 항목이 추가될 경우 모든 속성을 포함하여 캡쳐, 2. 항목이 업데이트 되면 수정 이전의 인스턴스, 수정 이후의 인스턴스 캡쳐, 3. 항목이 삭제되면 삭제 직전에 전체 항목 캡쳐
    할 수 있다.

  • 각 스트림 레코드에는 테이블의 이름, 이벤트 타임스탬프와 같이 다른 메타 데이터들도 포함되어 있으며, 스트림 레코드는 24시간 TTL을 갖고 있다.

  • 스트림과 Lambda를 이용하여 트리거를 만들 수 있다.(테이블에 스트림을 설정한 다음 람다 함수와 연결할 수 있다.)

Key

Partition Key

  • 하나의 속성으로 구성되는 기본키로 해시 키라고도 불린다. DynamoDB가 내부적으로 Item을 저장할 파티션을 결정할 떄 해시 함수에 파티션 키를 넣은 결과를 사용하기 떄문이다.

DynamoDB 개념정리
AWS-DynamoDB : 데이터 조회하기
서버리스 앱 개발하기 2 - 아마존 DynamoDB 시작하기. CRUD부터 Scan까지
AWS DynamoDB 사용기_보조 인덱스 사용 위주로
Reducing database queries to a minimum with DataLoaders

0개의 댓글