처음 만난 AWS 문서


13.6 DynamoDB 데이터 조회

지금부터는 DynamoDB의 데이터 조회에 대해서 배워보도록 하겠습니다.

먼저 DynamoDB의 데이터 조회 방식에는 크게 QueryScan이 있습니다.

먼저 Query는 기본 키 값을 기반으로 항목을 찾는 방식입니다.
Query에서는 복합 기본 키가 있는 테이블 또는 보조 인덱스를 쿼리할 수 있습니다.
파티션 키 속성의 이름과 해당 속성의 단일 값을 제공해야 하며, 해당 파티션 키 값을 갖는 모든 항목을 반환하게 됩니다.
그리고 선택적으로 정렬 키 속성을 제공하고, 비교 연산자를 사용하여 검색 결과의 범위를 좁힐 수 있습니다.

반면에 Scan은 테이블 또는 보조 인덱스의 모든 항목을 읽어옵니다.
그래서 기본적으로 테이블이나 인덱스에 속한 항목의 데이터 속성을 모두 반환하게 됩니다.
여기서 ProjectionExpression 파라미터를 사용하면 일부 속성만 가져올 수 있습니다.
Scan은 항상 결과 집합을 반환하는데, 만약 일치하는 항목이 없다면 비어있는 결과 집합이 반환 됩니다.
그리고 단일 Scan 요청은 최대 1MB까지 데이터를 가져올 수 있습니다.이때 옵션으로 필터 표현식을 적용하면 반환되는 결과의 범위를 좁힐 수도 있습니다.

그래서 정리해보면

Query는 키 값으로 찾는 것이고, Scan은 전체 데이터를 가져와서 필터링 하는 것

이라고 할 수 있습니다.

그렇다면 DynamoDB에서 데이터를 조회하기 위해서 어떤 방식을 쓰는 것이 좋을까요?
바로 Query입니다.

대학교에서 학생을 찾는 것을 예시로 들어보면, Query는 학번으로 곧바로 부르는 것이고 Scan은 한 명씩 불러서 학번이 일치하는지 확인하는 것입니다.
누가봐도 Scan 방식이 학생을 찾기까지 더 오래 걸리겠죠?

그래서 데이터를 조회할 때는 되도록이면 Query를 사용하는 것이 좋고, Scan은 속도도 느리고 비싸므로 웬만하면 사용하지 않는 것이 좋습니다.


마지막 업데이트: 2023년 11월 12일 00시 00분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.