[DynamoDB] DynamoDB API
by 뚜부니
Amazon DynamoDB를 사용하려면 애플리케이션에서 간단한 API 작업을 몇 가지 사용해야 한다.
1. 제어 플레인
제어플레인은 DynamoDB 테이블을 생성하고 관리하도록 해주며, 인덱스, 스트림 및 테이블에 따라 다른 객체를 사용하도록 해준다.
Table | Description |
CreateTable | 새 테이블 생성. 하나 이상의 보조 인덱스를 생성하고 테이블에 DynamoDB 스트림 설정도 가능. |
DescribeTable | 기본 키 스키마, 처리량 설정, 인덱스 정보와 같은 테이블에 대한 정보 반환 |
ListTables | 모든 테이블의 이름을 목록으로 반환 |
UpdateTable | 테이블의 설정이나 인덱스를 수정하거나, 테이블의 새 인덱스 생성 또는 제거, 테이블의 DynamoDB 스트림 설정을 수정. |
DeleteTable | 테이블 및 해당 종속적 객체 모두 제거 |
2. 데이터 플레인
데이터 플레인 작업은 테이블의 데이터에 대해 CRUD (Create, Read, Update Delete) 작업을 수행하도록 해준다. 데이터 플레인 작업의 일부는 보조 인덱스로부터 데이터를 읽도록 해주기도 한다.
Amazon DynamoDB용 PartiQL (SQL 호환 쿼리 언어)을 사용하여 이러한 CRUD 작업을 수행하거나 별개의 API 호출로 구분하는 DynamoDB의 클래식 CRUD API를 사용할 수 있다.
2.1 PartiQL- SQL 호환 쿼리 언어
ExecuteStatement
: 테이블에서 여러 항목을 읽고, 단일 항목을 쓰거나 업데이트 할 수 있다. 단일 항목을 쓰거나 업데이트할 때는 기본 키 속성을 지정해야 한다.BatchExecuteStatement
: 테이블에서 여러 항목을 쓰거나 업데이트하거나 읽는다. 응용 프로그램은 항목을 쓰거나 읽으려면 단일 네트워크 왕복만 필요하므로ExecuteStatement
보다 효율적이다.
👉 더 자세한 내용은 아래 링크로
2.2 클래식 APIs
- 데이터 생성
PutItem
: 테이블에 단일 항목으로 쓰며, 기본 키 속성은 꼭 지정해야 하지만 다른 속성은 지정하지 않아도 된다.BatchWriteItem
: 테이블에 최대 25개의 항목을 쓰며, 항목을 쓸 때 애플리케이션이 네트워크를 한 번만 왕복하면 되므로PutItem
을 여러 번 호출하는 것보다 효율적이다.
- 데이터 읽기
GetItem
: 테이블에서 단일 항목을 가져오며, 원하는 항목의 기본키를 지정해야 한다. 전체 항목 또는 속성 일부만 가져올 수 있다.BatchGetItem
: 하나 이상의 테이블에서 최대 100개의 항목을 가져오며, 항목을 읽을 때 애플리케이션이 네트워크를 한 번만 왕복하면 되므로GetItem
을 여러 번 호출하는 것보다 효율적이다.Query
: 특정 파티션키가 있는 모든 항목을 가져오며, 파티션키 값을 지정해야 한다. 전체 항목 또는 속성 일부만 가져올 수 있다. 경우에 따라 정렬키 값에 조건을 적용하여 파티션키가 동일한 데이터의 하위 집합만 검색할 수도 있다. 테이블이나 인덱스에 파티션키와 정렬키가 모두 있는 경우 이 작업을 테이블이나 인덱스에 사용할 수 있다.Scan
: 지정한 테이블 또는 인덱스의 전체 항목 또는 속성 일부를 가져올 수 있다. 필터링 조건을 적용하여 필요한 값만 반환하고 나머지는 버릴 수도 있다.
- 데이터 업데이트
UpdateItem
: 항목에서 하나 이상의 속성을 수정하며, 수정하려는 항목의 기본키를 지정해야 한다. 여기서 수정은 새로운 속성 추가, 기존 속성 수정 또는 제거를 의미한다.사용자 정의 조건을 만족할 때 업데이트가 수행되는 조건부 업데이트도 가능하다.
- 데이터 삭제
DeleteItem
: 테이블에서 단일 항목을 삭제하며, 삭제하려는 항목의 기본키를 지정해야 한다.BatchWriteItem
: 하나 이상의 테이블에서 최대 25개의 항목을 삭제한다.
3. DynamoDB 스트림
DynamoDB 스트림 작업을 사용하면 테이블에 스트림을 설정 또는 해제할 수 있으며, 스트림에 포함되어 있는 데이터 수정 레코드에 액세스할 수 있다.
ListStreams
: 모든 스트림 목록 또는 특정 테이블의 스트림만 반환한다.DescribeStream
: ARN( (Amazon Resource Name) 및 애플리케이션이 첫 스트림 레코드를 읽기 시작할 수 있는 위치와 같은 스트림에 대한 정보를 반환한다.GetShardIterator
: 애플리케이션이 스트림으로부터 레코드를 가져오는 데 사용하는 데이터 구조인Shard iterator
를 반환한다.GetRecords
: 지정된Shard iterator
를 사용하여 하나 이상의 스트림 레코드를 가져온다.
4. Transactions
트랜잭션은 원자성, 일관성, 격리 및 내구성(ACID)을 제공하여 애플리케이션에서 데이터 정확성을 더 쉽게 유지할 수 있다.
4.1 PartiQL - SQL 호환 쿼리 언어
ExecuteTransaction
: 테이블 내부 및 전체의 여러 항목에 대해CRUD
작업을 모두 수행하거나 아무것도 수행하지 않는 결과를 보장하는 배치 작업이다.
4.2 클래식 APIs
TransactWriteItems
: 테이블 내부 및 전체의 여러 항목에 대해Put
,Update
,Delete
작업을 모두 수행하거나 아무것도 수행하지 않는 결과를 보장하는 배치 작업이다.TransactGetItems
:Get
작업을 통해 하나 이상의 테이블에서 여러 항목을 검색할 수 있는 배치 작업이다.
🔗 Reference
'DB > DynamoDB' 카테고리의 다른 글
[DynamoDB] Java와 DynamoDB 시작하기 (0) | 2021.02.03 |
---|---|
[DynamoDB] 웹 서비스 설정 (0) | 2021.01.31 |
[DynamoDB] 이름 지정 규칙 및 데이터 형식 (0) | 2021.01.30 |
[DynamoDB] 핵심 구성 요소 (0) | 2021.01.27 |
블로그의 정보
개발하는 두부
뚜부니