반응형

dynamodb

    dynamoDbEnhancedClient range query condition 사용 시 The provided starting key does not match the range key predicate 에러 발생

    이전글에서 QueryConditional에서 range로 requestDateTime의 값을 sortkey로 구간 조건으로 조회를 했었다. 근데 dynamodb 특성상 페이징을 하기 위해서는 exclusiveStartKey값을 이용해서 마지막 이후 부터 값을 읽도록 쿼리를 수행해야한다. 하지만 작성한 쿼리로 로직을 수행하던중 The provided starting key does not match the range key 에러가 발생했다. 삽질을 계속 하던 중 query condition에서 사용했던 sortkey range구간을 벗어나는 값을 넣었을 경우에 발생했다. 만약 range query condition을 사용할 경우 range구간을 벗어나는 값을 exclusiveStartKey값으로 넣지 않도..

    dynamoDbEnhancedClient에서 QueryConditional에서 sort key range 조회하기

    아래와 같이 데이터가 존재하는 상황을 가정해보자. import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbPartitionKey; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbSortKey; @Getter @Setter ..

    Dynamodb enhanced client

    dynamodb enhanced client 기존에 dynamodb를 조작하기 위해서 aws에서 제공되던 sdk를 사용할 때 DynamodbDBMapper를 사용해서 객체-테이블 매핑하여 질의해서 사용하였는데 생각보다 사용하기 번거로웠던 기억이 있었다. (마지막으로 프로젝트에서 사용한지 벌써 2년이 지나서 자세한 불편내용은 기억이 나진 않지만 사용에 편리하지 않았던 기억은 명확하게 남아있다.) 그래서 이번에 dynamodb를 프로젝트에서 사용하게 되었을 때 조금 더 편하게 사용할 수 있는 방법이 없을까 찾아봤고 dynamodb sdk for Java version 2에서 제공되는 DynamoDb Enhanced를 사용해보기로 했다. 사용법 gradle import plugins { id 'org.spri..

반응형