DynamoDBMapper의 구성 설정(선택 사항) - Amazon DynamoDB

DynamoDBMapper의 구성 설정(선택 사항)

DynamoDBMapper의 인스턴스를 생성할 때는 일정한 기본 동작이 있지만 DynamoDBMapperConfig 클래스를 사용하면 이러한 기본 동작을 재정의할 수 있습니다.

다음은 사용자 지정 설정으로 DynamoDBMapper를 생성하는 코드 조각입니다.

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDBMapperConfig mapperConfig = DynamoDBMapperConfig.builder() .withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.CLOBBER) .withConsistentReads(DynamoDBMapperConfig.ConsistentReads.CONSISTENT) .withTableNameOverride(null) .withPaginationLoadingStrategy(DynamoDBMapperConfig.PaginationLoadingStrategy.EAGER_LOADING) .build(); DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig);

자세한 내용은 AWS SDK for Java API 참조에서 DynamoDBMapperConfig를 참조하세요.

DynamoDBMapperConfig 인스턴스에 사용할 수 있는 인수는 다음과 같습니다.

  • DynamoDBMapperConfig.ConsistentReads 열거 값:

    • EVENTUAL - 매퍼 인스턴스가 최종적으로 일관된 읽기 요청을 사용합니다.

    • CONSISTENT - 매퍼 인스턴스가 강력히 일관된 읽기 요청을 사용합니다. 이 옵션 설정은 load, query 또는 scan 작업에 사용할 수 있습니다. 강력히 일관된 읽기는 성능과 결제에 영향을 미칩니다. 자세한 내용은 DynamoDB 제품 세부 정보 페이지를 참조하세요.

    매퍼 인스턴스에 읽기 일관성 설정을 지정하지 않으면 EVENTUAL이 기본값으로 설정됩니다.

    참고

    이 값은 DynamoDBMapper의 queryquerypageload 및 batch load 작업에만 적용됩니다.

  • DynamoDBMapperConfig.PaginationLoadingStrategy 열거 값 - 매퍼 인스턴스가 query 또는scan의 결과와 같은 페이지 매긴 데이터 목록을 처리하는 방식을 제어합니다.

    • LAZY_LOADING - 매퍼 인스턴스는 가능할 경우 데이터를 로드하고, 로드한 결과를 모두 메모리에 저장합니다.

    • EAGER_LOADING - 목록 초기화 직후 매퍼 인스턴스가 데이터를 로드합니다.

    • ITERATION_ONLY - 반복자를 사용해야만 목록에서 읽을 수 있습니다. 반복 단계에서는 다음 페이지를 로드하기 전에 이전 결과가 목록에서 사라집니다. 따라서 로드된 결과는 단일 페이지 목록으로만 메모리에 저장합니다. 이는 목록의 반복 횟수가 1회로 제한된다는 것을 의미하기도 합니다. 이러한 전략은 다수의 항목을 처리하면서 메모리 오버헤드를 줄여야 할 때 바람직합니다.

    매퍼 인스턴스에 페이지 매김 로딩 전략을 지정하지 않으면 LAZY_LOADING이 기본값으로 설정됩니다.

  • DynamoDBMapperConfig.SaveBehavior 열거 값 - 저장 작업 시 매퍼 인스턴스의 속성 처리 방식을 지정합니다.

    • UPDATE - 저장 작업 중 모델링된 속성만 모두 업데이트되고 모델링되지 않은 속성은 업데이트되지 않습니다. 기본적인 숫자 형식(byte, int, long)은 0으로 설정됩니다. 그리고 객체 형식은 null로 설정됩니다.

    • CLOBBER - 저장 작업 중 모델링되지 않은 속성을 비롯하여 모든 속성을 지우고 교체합니다. 즉, 항목을 삭제했다가 다시 생성합니다. 버전이 지정된 필드 제약 조건 역시 무시됩니다.

    매퍼 인스턴스에 저장 동작을 지정하지 않으면 UPDATE가 기본값으로 설정됩니다.

    참고

    DynamoDBMapper 트랜잭션 작업은 DynamoDBMapperConfig.SaveBehavior 열거를 지원하지 않습니다.

  • DynamoDBMapperConfig.TableNameOverride - 객체 매퍼 인스턴스에 클래스의 DynamoDBTable 주석으로 지정한 테이블 이름은 무시하고 대신에 직접 입력하는 다른 테이블 이름을 사용하도록 지시합니다. 이는 런타임에서 데이터를 여러 테이블로 분할할 때 유용합니다.

필요하다면 작업 단위로 DynamoDBMapper의 기본 구성 객체를 재정의할 수도 있습니다.