😃NoSQL_DynamoDB
* AWS What is Amazon DynamoDB? - Amazon DynamoDB 를 참고하여 작성했습니다*
특징
- Serverless
- 프로비저닝: 자동사용자의 요구에 맞게 시스템 자체를 제공하는 것 → 인프라, 서비스, 장비
- 온디멘드 용량 모드: '사용하는 만큼만' 가격이 나옴
- NoSQL
- key-value 및 문서 데이터 모델 지원
- JOIN 연산자를 지원하지 않음
- 읽기 일관성
- 최종적 일관성:
- 기본값
- 데이터를 읽을 때, 최신 데이터가 아닐 수 있습니다.
- 강력한 일관성:
- 데이터를 읽을 때 항상 최신 데이터를 제공
- GetItem, Query, Scan 작업에서 사용할 수 있습니다.
- 최종적 일관성:
- ACID 트랜잭션atomicity, consistency, isolation, and durability (ACID)
- 완전 관리형
- 이벤트 기반 아키텍처를 위한 변경 데이터 캡처
인덱스
- 기본 인덱스
- 파티션 키:
- 데이터를 물리적으로 분산 저장하는 데 사용됩니다.
- 파티션 키만 사용한다면. 고유해야 하고,
- 소트키랑 쓰면 동일한 파티션 키 값은 같은 파티션에 저장됩니다.
파티션 키:UserId
(고유해야 함)UserId Name Email 1 Alice alice@example.com 2 Bob bob@example.com 3 Carol carol@example.com - 정렬 키:
- 동일한 파티션 키 내에서 데이터를 정렬합니다.
- 파티션 키와 결합하여 복합 키를 형성하며, 파티션 키가 동일한 항목을 구분하는 역할을 합니다.
파티션 키:CustomerId
/ 정렬 키:OrderId
CustomerId OrderId OrderDate TotalAmount 1 101 2023-01-01 100.00 1 102 2023-01-02 150.00 2 201 2023-01-01 200.00 2 202 2023-01-03 300.00 - 파티션 키:
- 로컬 보조 인덱스
- 기본 테이블의 파티션 키와 동일한 파티션 키 사용. But 다른 정렬키 사용 가능
- 테이블 생성 시에만 설정 가능
- 최대 5개의 LSI
- 강력한 일관성
로컬 보조 인덱스:OrderDateIndex
- 파티션 키:
CustomerId
- 정렬 키:
OrderDate
CustomerId OrderId OrderDate TotalAmount 1 101 2023-01-01 100.00 1 102 2023-01-02 150.00 2 201 2023-01-01 200.00 2 202 2023-01-03 300.00
글로벌 보조 인덱스
- 기본 테이블과는 다른 파티션 키와 정렬 키를 사용 가능
- 테이블 생성 후에도 추가 가능
- 테이블당 최대 20개의 GSI
- 최종적 일관성만
글로벌 보조 인덱스:
NameIndex
- 파티션 키:
Name
- 정렬 키:
UserId
쿼리: Name이 'Alice'인 사용자를 조회
결과:
UserId | Name | |
1 | Alice | alice@example.com |
인덱스 세줄 요약
기본 키: 테이블의 주요 키로, 기본적인 데이터 정렬과 조회를 담당합니다. (파티션 키 + 정렬 키)
로컬 보조 인덱스 (LSI): 기본 테이블의 파티션 키를 사용하면서 다른 정렬 키로 데이터를 조회하고 정렬합니다. (파티션 키 + 다른 정렬 키)
글로벌 보조 인덱스 (GSI): 다른 파티션 키와 정렬 키를 사용하여 데이터를 조회하고 정렬합니다. 이는 테이블 생성 후에도 추가할 수 있습니다. (다른 파티션 키 + 다른 정렬 키)
'BE 공부 > AWS' 카테고리의 다른 글
AWS Credential과 Cognito (2) | 2024.12.12 |
---|---|
Cognito와 KMS(2) (0) | 2024.12.12 |
Cognito와 KMS(1) (0) | 2024.12.12 |
[OpenSearch] OpenSearch Dashboards를 활성화하지 않고 JWT 인증 설정하기 (0) | 2024.09.02 |
[OpenSearch] OpenSearch에서 JWT 인증 사용하기 (2) | 2024.09.02 |
댓글