DynamoDB 쿼리 예제

Dynamodb Kwoli Yeje



데이터베이스는 데이터 모음입니다. DynamoDB도 예외는 아닙니다. 데이터베이스에는 미리 정의된 메커니즘 없이 검색하기 어려울 수 있는 많은 데이터가 포함되어 있습니다. 여기에서 쿼리 명령이 중요한 역할을 합니다.

다른 데이터베이스 관리 시스템과 마찬가지로 DynamoDB는 시스템과 상호 작용하여 데이터에 액세스하고 조작할 수 있는 다양한 쿼리 방법을 제공합니다. DynamoDB의 쿼리는 쿼리 명령과 관련된 항목 또는 항목 그룹을 검색할 수 있는 매우 강력한 도구입니다.

이 문서에서는 DynamoDB 쿼리 작업의 주요 예를 간략하게 설명합니다.







일반적인 DynamoDB 쿼리 예

DynamoDB에서 쿼리 작업의 기본 동작은 쿼리 항목과 연결된 모든 항목을 반환하는 것입니다. 흥미롭게도 DynamoDB의 쿼리 명령은 테이블 또는 보조 인덱스와 함께 사용할 수 있습니다.



어떤 경우든 항상 파티션 키 값에 대한 동등 조건을 지정해야 합니다. 다시 말하지만 명령에서 정렬 키를 사용하는 경우 정렬 키에 대해 다른 조건을 제공해야 할 수 있습니다.



DynamoDB를 쿼리할 때 보게 되는 다른 파라미터에는 KeyConditionExpression 및 FilterExpression도 포함됩니다. KeyConditionExpression은 쿼리하려는 키 값을 지정합니다. 반면에 FilterExpression은 응답을 받기 전에 쿼리 결과에서 항목을 제거합니다. 언급된 식 매개 변수에 대한 자리 표시자로 ExpressionAttributeValues를 사용합니다.





DynamoDB 쿼리 예제는 다음과 같습니다.

기본 키를 기반으로 테이블에서 단일 항목 찾기

DynmoDB의 Query 유틸리티를 사용하여 항목의 파티션 키와 정렬 키 값의 조합을 사용하여 단일 항목을 찾을 수 있습니다. 이러한 작업의 구문은 다음과 같습니다.



AWS dynamodb 쿼리 \

--테이블 이름 MyTableName \

--키 조건식 '파티션키 = :pk AND 정렬키 = :sk' \

--expression-attribute-values '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

위 쿼리 유틸리티는 MyTableName 테이블에서 파티션 키 값 a1234b 및 정렬 키 값 odef456b가 있는 항목을 검색하는 것을 목표로 합니다. 예를 들어 위의 유틸리티를 사용하여 '주문' 테이블에서 항목을 찾을 수 있습니다. 항목의 파티션 키 값은 다음과 같을 수 있습니다. wr546gg Customer_ID를 나타내는 반면 정렬 키 값은 24536433 주문 번호를 나타냅니다.

결과는 다음과 같습니다.

위의 결과는 파티션 키 값이 wr546gg이고 정렬 키 값이 24536433인 유일한 항목으로 Holiday Books를 다시 가져옵니다. 또한 항목과 연결된 다른 모든 추가 특성을 가져옵니다. 이 그림에서는 인보이스 번호와 지불 금액을 다시 표시합니다.

특히 쿼리 명령은 지정된 기본 키 값과 일치하는 항목이 없는 경우 빈 목록을 다시 가져옵니다.

검색하다 특정 속성 값과 일치하는 DynamoDB 테이블의 모든 항목

필터 표현식을 사용하여 특정 DynamoDB 테이블에서 유사한 속성 값을 가진 모든 항목을 검색합니다.

이 쿼리 작업에 대한 명령은 다음과 같습니다.

AWS dynamodb 쿼리 \

--테이블 이름 MyTableName \

--필터 표현식 '기타속성1 = :값' \

--expression-attribute-values '{':val':{'S':'값1'}}'

예를 들어 위의 쿼리 명령을 사용하여 Music 테이블에서 5분 이상 재생되는 노래를 검색할 수 있습니다. 이를 위해 OtherAttribute1 값을 5.00으로, MyTableName을 Music으로 설정합니다.

결과는 아래와 같을 수 있습니다.

간결함을 위해 목록을 잘라야 합니다. 그러나 결과에서 쿼리 명령은 DynamoDB Music 테이블에서 filterexpression 값이 5.00인 11개 항목을 검색했습니다.

특정 범위의 속성 값을 가진 모든 항목 검색

아래 명령은 특정 테이블 내에서 항목을 검색할 때 유용합니다.

AWS dynamodb 쿼리 \

--table-name <테이블 이름> \

--키 조건식 'attribute_name BETWEEN :val1 AND :val2' \

--expression-attribute-values '{':val1':{'N':'<값1>'},':val2':{'N':'<값2>'}}'

물론 다른 명령줄과 마찬가지로 모든 특성을 사용자 지정 자격 증명으로 바꿔야 합니다. 예를 들어 '나이'라는 범위 키 속성이 있는 Employee 테이블을 사용합니다. 30세에서 42세 사이의 고용주를 회수하는 것을 목표로 합니다.

새로운 명령줄은 다음과 같습니다.

AWS dynamodb 쿼리 \

--테이블 이름 사용자 \

--키 조건식 ':val1과 :val2 사이의 나이' \

--expression-attribute-values '{':val1':{'N':'30'},':val2':{'N':'42'}}'

위의 유틸리티를 실행하면 아래 그림과 유사한 응답이 나타납니다.

위의 그림은 쿼리가 각 쿼리의 속성 값을 나타내는 6개 항목을 반환했음을 보여줍니다. ScannedCount는 테이블에서 스캔된 항목의 수이고 CapacityUnits는 작업 중에 소비된 단위의 양입니다.

결론

DynamoDB는 NoSQL 데이터베이스이므로 쿼리 작업은 일반 AQL 데이터베이스처럼 작동하지 않습니다. 그러나 일단 작업을 수행하면 작업이 매우 강력하고 데이터베이스와의 상호 작용이 원활해짐을 알게 될 것입니다.