14E. DynamoDB 데이터 쿼리하기
About 1 min
14E. DynamoDB 데이터 쿼리하기 관련
목차
아마존 웹 서비스를 다루는 기술
14장 - 5. DynamoDB 데이터 쿼리하기
아마존 웹 서비스를 다루는 기술
앞서 설계했던 대로 테이블도 만들고 데이터도 추가했습니다. 이제 원하는 데이터를 얻는 쿼리를 해보겠습니다. 먼저 주간 전체순위를 산출합니다.
UsersLeaderboard
테이블에서 주간 전체 순위를 쿼리합니다.
- Scan, Query: Scan은 테이블의 모든 아이템을 출력하는 것이고, Query는 지정한 조건에 맞은 내용을 출력하는 것입니다.
[Query]
를 선택합니다. - Index Name: 검색할 인덱스입니다.
[Global] Week-TopScore-Index: Week, TopScore
를 선택합니다. - Hash Key: 검색할 해시 키입니다. 인덱스를 선택하면 자동으로 설정됩니다. 기본값 그대로 사용합니다.
- Week equal to: 주 단위로 검색할 것이므로
2014-05-09,2014-05-15
를 입력합니다.
- Week equal to: 주 단위로 검색할 것이므로
- Range Key: 검색할 범위 키입니다. 인덱스를 선택하면 자동으로 설정됩니다. 기본값 그대로 사용합니다.
- TopScore: 최대점수를
99999
라 보고,99999
를 입력합니다. - less than: 범위 키는 검색 조건을 정할 수 있습니다. 지정한 값보다 작은 값을 구하도록
less than
을 선택합니다.
- TopScore: 최대점수를
- Ascending, Descending: 높은 점수가 맨 위에 출력되도록 내림차순(Descending)으로 설정합니다.
범위 키(Range Key) 검색 조건
- equal to: 속성의 값과 같을 때
- less than: 속성의 값보다 작을 때
- less than or equal to: 속성의 값보다 작거나 같을 때
- greater than: 속성의 값보다 클 때
- greater than or equal to: 속성의 값보다 크거나 같을 때
- between: 속성의 값에 포함 될 때
- begins with: 속성의 값이 ~로 시작될 때
이번에는 로컬 보조 인덱스를 사용하여 개인 최고기록을 조회해 보겠습니다. UsersLeaderboard
테이블에서 개인 최고기록을 쿼리합니다.
- Scan, Query:
Scan
은 테이블의 모든 아이템을 출력하는 것이고,Query
는 지정한 조건에 맞은 내용을 출력하는 것입니다.[Query]
를 선택합니다. - Index Name: 검색할 인덱스입니다.
[Local] TopScore-Index: Id, TopScore
를 선택합니다. - Hash Key: 검색할 해시 키입니다. 인덱스를 선택하면 자동으로 설정됩니다. 기본값 그대로 사용합니다.
- Id equal to: John(1) 유저의 점수를 조회할 것이므로 1을 입력합니다.
- Range Key: 검색할 범위 키입니다. 인덱스를 선택하면 자동으로 설정됩니다. 기본값 그대로 사용합니다.
- TopScore: 최대점수를
99999
라 보고,99999
를 입력합니다. - less than: 범위 키는 검색 조건을 정할 수 있습니다. 지정한 값보다 작은 값을 구하도록
less than
을 선택합니다.
- TopScore: 최대점수를
- Ascending, Descending: 높은 점수가 맨 위에 출력되도록 내림차순(Descending)으로 설정합니다.
- All, Projected: All을 선택하면 아이템의 모든 속성이 출력되고, Projected를 선택하면 보조 인덱스를 생성할 때 Projected Attributes에 설정한 속성들이 출력됩니다. 기본값 그대로 사용합니다.
AWS 콘솔에서는 쿼리 출력 개수를 설정할 수 없지만 프로그래밍 언어에서 API로 DynamoDB에 쿼리하는 경우 출력 개수를 설정할 수 있습니다. 쿼리 출력 개수를 1개로 설정하면 개인 최고기록이 되는 것입니다.
FriendsLeaderboards
에서 주간 친구 순위를 산출해보겠습니다.
FriendsLeaderboard
테이블에서 주간 친구 순위를 쿼리합니다.
- Scan, Query:
Scan
은 테이블의 모든 아이템을 출력하는 것이고,Query
는 지정한 조건에 맞은 내용을 출력하는 것입니다.[Query]
를 선택합니다. - Index Name: 검색할 인덱스입니다.
[Global] FriendIdAndWeek-Score-Index: FriendIdAndWeek, Score
를 선택합니다. - Hash Key: 검색할 해시 키입니다. 인덱스를 선택하면 자동으로 설정됩니다. 기본값 그대로 사용합니다.
- FriendIdAndWeek equal to: 3번 유저의
2014-05-09,2014-05-15
주간의 친구 순위를 산출할 것이므로3,2014-05-09,2014-05-15
를 입력합니다.
- FriendIdAndWeek equal to: 3번 유저의
- Range Key: 검색할 범위 키입니다. 인덱스를 선택하면 자동으로 설정됩니다. 기본값 그대로 사용합니다.
- TopScore: 최대점수를
99999
라 보고,99999
를 입력합니다. - less than: 범위 키는 검색 조건을 정할 수 있습니다. 지정한 값보다 작은 값을 구하도록
less than
을 선택합니다.
- TopScore: 최대점수를
- Ascending, Descending: 높은 점수가 맨 위에 출력되도록 내림차순(Descending)으로 설정합니다.
설정이 완료되었으면 [Query]
버튼을 클릭합니다. FriendIdAndWeek
가 3,2014-05-09,2014-05-15
인 아이템들이 TopScore
가 높은 순으로 정렬되어 출력됩니다.