프로젝션 표현식 - Amazon DynamoDB

프로젝션 표현식

테이블에서 데이터를 읽으려면 GetItem, Query, Scan 등과 같은 작업을 사용합니다. Amazon DynamoDB는 기본적으로 모든 항목 속성을 반환합니다. 모든 속성 대신 일부 속성만 가져오려면 프로젝션 표현식을 사용합니다.

프로젝션 표현식은 원하는 속성을 식별하는 문자열입니다. 단일 속성을 가져오려면 속성의 이름을 지정합니다. 여러 속성의 경우 이름을 쉼표로 구분해야 합니다.

DynamoDB에서 표현식 사용 시 항목 속성 참조ProductCatalog 항목을 기반으로 한 프로젝션 표현식의 몇 가지 예는 다음과 같습니다.

  • 단일 최상위 속성입니다.

    Title

  • 세 가지 최상위 속성입니다. DynamoDB는 전체 Color 집합을 검색합니다.

    Title, Price, Color

  • 네 가지 최상위 속성입니다. DynamoDB는 RelatedItemsProductReviews의 전체 내용을 반환합니다.

    Title, Description, RelatedItems, ProductReviews

참고

프로젝션 표현식은 프로비저닝된 처리량 소비에 영향을 주지 않습니다. DynamoDB는 애플리케이션에 반환되는 데이터 크기 대신 항목 크기를 기준으로 소비된 용량 단위를 결정합니다.

예약어 및 특수 문자

DynamoDB에는 예약어와 특수 문자가 있습니다. DynamoDB에서는 이름에 이러한 예약어와 특수 문자를 사용하도록 허용하지만, 표현식에서 이러한 이름을 사용할 때마다 별칭을 사용해야 하므로 사용하지 않는 것이 좋습니다. 전체 목록은 DynamoDB의 예약어 단원을 참조하세요.

다음과 같은 경우에는 실제 이름 대신 표현식 속성 이름을 사용해야 합니다.

  • 속성 이름은 DynamoDB의 예약어 목록에 있습니다.

  • 속성 이름이 첫 번째 문자가 a-z 또는 A-Z이고 두 번째 문자(있는 경우)가 a-Z, A-Z 또는 0-9여야 하는 요구 사항을 충족하지 않습니다.

  • 속성 이름에는 #(해시) 또는 :(콜론)이 포함됩니다.

다음은 GetItem 작업과 함께 프로젝션 표현식을 사용하는 방법을 보여주는 AWS CLI 예입니다. 이 프로젝션 표현식은 최상위 스칼라 속성(Description), 목록의 첫 번째 요소(RelatedItems[0]) 및 맵 내에 중첩된 목록(ProductReviews.FiveStar)을 가져옵니다.

aws dynamodb get-item \ --table-name ProductCatalog \ --key '"Id": { "N": "123" } \ --projection-expression "Description, RelatedItems[0], ProductReviews.FiveStar"

이 예제에서는 다음 JSON이 반환됩니다.

{ "Item": { "Description": { "S": "123 description" }, "ProductReviews": { "M": { "FiveStar": { "L": [ { "S": "Excellent! Can't recommend it highly enough! Buy it!" }, { "S": "Do yourself a favor and buy this." } ] } } }, "RelatedItems": { "L": [ { "N": "341" } ] } } }