[DynamoDB] Java와 DynamoDB 시작하기
by 뚜부니
1. 테이블 생성
다음과 같은 기본키를 가지는 Movies
라는 테이블을 생성한다.
year
: 파티션키. 숫자에 대한ScalarAttributeType
은N
.title
: 정렬키. 문자열에 대한ScalarAttributeType
은S
.
2. 테이블에 샘플 데이터 로드
Movies
테이블을 샘플 데이터로 채우는 단계이다.
이 시나리오는 인터넷 영화 데이터베이스의 수처 편의 영화 정보를 담은 샘플 데이터 파일을 사용하여 JSON 형식으로 되어있다. 각 영화마다 year
, title
, info
라는 JSON 맵이 있으며, year
와 title
은 기본키이다.
영화 데이터 예는 다음과 같다.
2.1 샘플 데이터 파일 다운로드
아래 링크에 접속하여 moviedata.zip
을 다운받으면 된다.
2.2 영화 테이블에 샘플 데이터 로드
샘플 데이터를 다운로드 한 후 다음 프로그램을 실행하면 Movies
테이블을 채울 수 있다.
3. 새 항목 생성 (Create)
Movies
테이블에 새 항목을 추가는 코드는 다음과 같다.
4. 항목 읽기 (Read)
getItem
메서드를 사용하여 Moives
테이블에서 항목을 읽어올 수 있다. year
와 title
라는 기본키를 알고 있는 경우 Moives
를 읽을 수 있다.
5. 항목 업데이트 (Update)
updateItem
메서드를 사용해 기존 항목을 수정할 수 있다. 기존 속성의 값을 업데이트하거나 새로운 속성을 추가 또는 제거할 수 있다.
이전에 추가했던 항목의 rating
, plot
값을 변경하고, 기존의 info
맵에 actors
라는 새로운 속성을 추가해보려 한다.
바꾸기 전 항목은 다음과 같다.
바꾼 후 항목은 다음과 같다.
항목 업데이트를 위한 코드는 다음과 같다.
6. 원자성 카운터 증가시키기
DynamoDB는 원자성 카운터를 지원한다. updateItem
메서드를 사용하면 다른 쓰기 요청을 방해하지 않고 기존 속성의 값을 증가 또는 감소시킬 수 있으며, 모든 쓰기 요청은 수신된 순서대로 적용된다.
프로그램을 실행할 때마다 rating
속성이 1씩 증가하는 코드를 작성하려 한다.
7. 항목 업데이트 (조건부)
조건이 true
인 경우 업데이트를 하고, 그렇지 않은 경우 업데이트를 하지 않는다. 조건은 ConditionExpression
을 이용한다.
8. 항목 삭제
deleteItem
메서드를 사용해 항목을 삭제할 수 있는데, ConditionExpression
에 조건을 넣고 조건에 만족하지 않는 경우 항목 삭제를 방지하는 옵션을 추가할 수도 있다.
다음 예제는 평점이 5 이하인 항목을 삭제하는 코드이다.
9. Query
아래 코드는 다음과 같은 쿼리를 수행한다.
- 1985년에 개봉한 모든 영화를 조회한다.
- 1992년에 개봉한 영화 중 이름이 "A" 부터 "L"까지의 알파벳으로 시작하는 모든 영화를 조회한다.
10. Scan
scan
메서드는 테이블 전체의 모든 항목을 읽고 테이블의 모든 데이터를 반환한다. filter_expression
을 통해 기준에 대해 일치하는 항목을 반환할 수도 있는데, 필터는 테이블 전체를 스캔한 후에만 적용된다.
다음 예제는 Movies
테이블 전체를 스캔하고 1950년대 이후의 영화를 필터로 추가하여 그에 해당하는 항목만 가져오는 코드이다.
11. 테이블 삭제
다음 예제는 Movies
테이블을 삭제하는 코드이다.
🔗 Reference
'DB > DynamoDB' 카테고리의 다른 글
[DynamoDB] 웹 서비스 설정 (0) | 2021.01.31 |
---|---|
[DynamoDB] 이름 지정 규칙 및 데이터 형식 (0) | 2021.01.30 |
[DynamoDB] DynamoDB API (0) | 2021.01.29 |
[DynamoDB] 핵심 구성 요소 (0) | 2021.01.27 |
블로그의 정보
개발하는 두부
뚜부니