Ajustes de configuración opcionales para DynamoDBMapper - Amazon DynamoDB

Ajustes de configuración opcionales para DynamoDBMapper

Al crear una instancia de DynamoDBMapper, presenta algunos comportamientos predeterminados que se pueden anular mediante la clase DynamoDBMapperConfig.

En el siguiente fragmento de código se crea una clase DynamoDBMapper con ajustes personalizados:

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);

Para obtener más información, consulte DynamoDBMapperConfig en la Referencia de la API de AWS SDK for Java.

Puede usar los argumentos siguientes para una instancia de DynamoDBMapperConfig:

  • Un valor de enumeración DynamoDBMapperConfig.ConsistentReads:

    • EVENTUAL: la instancia de mapeador utiliza una solicitud de lectura consistente final.

    • CONSISTENT: la instancia de mapeador utiliza una solicitud de lectura de consistencia alta. Puede usar este ajuste opcional con las operaciones load, query o scan operations. Las lecturas de consistencia alta afectan al rendimiento y a la facturación; consulte la página detalles del producto de DynamoDB para obtener más información.

    Si no especifica un ajuste de consistencia de lectura para la instancia de mapeador, el valor predeterminado es EVENTUAL.

    nota

    Este valor se aplica en las operaciones queryquerypageload, y batch load de DynamoDBMapper.

  • Un valor de enumeración DynamoDBMapperConfig.PaginationLoadingStrategy: controla cómo la instancia de mapeador procesa una lista de datos paginados, como los resultados de una operación query o scan:

    • LAZY_LOADING: la instancia de mapeador carga los datos cuando es posible y conserva todos los resultados cargados en la memoria.

    • EAGER_LOADING: la instancia de mapeador carga los datos tan pronto como se inicializa la lista.

    • ITERATION_ONLY: solo se puede usar un iterador para leer datos en la lista. Durante la iteración, la lista borrará todos los resultados anteriores antes de cargar la página siguiente, para que la lista conserve como máximo una página de resultados cargados en la memoria. Por consiguiente, la lista solamente se puede recorrer en iteración una vez. Esta estrategia se recomienda para administrar elementos de gran tamaño, con el fin de reducir la sobrecarga de la memoria.

    Si no especifica una estrategia de carga de paginación para la instancia de mapeador, el valor predeterminado es LAZY_LOADING.

  • Un valor de enumeración DynamoDBMapperConfig.SaveBehavior: especifica cómo la instancia de mapeador administrará los atributos durante las operaciones de almacenamiento:

    • UPDATE: durante una operación de almacenamiento, se actualizan todos los atributos modelados y los atributos no modelados no sufren cambios. Los tipos numéricos primitivos (byte, int, long) se establecen en 0. Los tipos de objeto se establecen en null.

    • CLOBBER: borra y sustituye los atributos, incluidos los no modelados, durante una operación de almacenamiento. Para ello, se elimina el elemento y se vuelve a crear. También se descartan las restricciones de los campos con versiones.

    Si no especifica el comportamiento al guardar para la instancia de mapeador, el valor predeterminado es UPDATE.

    nota

    Las operaciones transaccionales de DynamoDBMapper no admiten la enumeración DynamoDBMapperConfig.SaveBehavior.

  • Un objeto DynamoDBMapperConfig.TableNameOverride: indica a la instancia de mapeador que pase por alto el nombre de tabla especificado por la anotación DynamoDBTable de la clase y, en su lugar, use el nombre de tabla alternativo suministrado. Esto resulta útil cuando se particionan los datos en varias tablas en tiempo de ejecución.

Puede anular el objeto de configuración predeterminado para DynamoDBMapper en cada operación, conforme lo necesite.