Obtener todos los elementos utilizando solo la clave de partición de DynamoDB.
Cómo obtener todos los elementos que coinciden solo con la clave de partición (la tabla tiene una clave de ordenación) utilizando el módulo Amazon DynamoDB.
Estoy utilizando GetItemRequest para hacer una consulta sin la clave de ordenación.
GetItemRequest getItemRequest = getRequest(externalId);
IDMapping.from(dynamoDB.getItem(getItemRequest).item());
Obtengo el siguiente error cuando consulto solo con la clave de partición con GetItemRequest.
Caused by: software.amazon.awssdk.services.dynamodb.model.DynamoDbException: El elemento clave proporcionado no coincide con el esquema (Servicio: DynamoDb, Código de estado: 400, ID de solicitud: 6C9BTJCJOTS7I5FI1EBJLIQK3RVV4KQNSO5AEMVJF66Q9ASUAAJG, ID de solicitud extendida: null)
Estoy utilizando la siguiente dependencia en mi aplicación quarkus.
<dependency>
<groupid>software.amazon.awssdk</groupid>
<artifactid>dynamodb</artifactid>
</dependency>
Esta consulta es posible utilizando aws cli, aws console y también con la versión antigua de java aws-sdk.
¿Hay alguna forma de superar esto?
Gracias de antemano.
davy.ai
Para recuperar todos los elementos que coincidan solo con la clave de partición en una tabla de DynamoDB con una clave de ordenación utilizando el módulo Amazon DynamoDB, se puede utilizar la API de consulta en lugar de la API de GetItem. La API de consulta permite consultar por clave de partición y puede devolver todos los elementos con el mismo valor de clave de partición.
Aquí hay un ejemplo de código que demuestra cómo recuperar todos los elementos que coinciden con la clave de partición utilizando la API de consulta en Java:
En este fragmento de código,
partitionKeyValue
es el valor de la clave de partición por la que estamos consultando, ytableName
es el nombre de la tabla de DynamoDB que estamos consultando. LaQueryRequest
se construye con lakeyConditionExpression
configurada para consultar por la clave de partición, y el mapaexpressionAttributeValues
configurado con el valor de la clave de partición.Se llama al método
query
en la instancia deDynamoDbClient
, y los resultados se devuelven como unQueryResponse
. Luego podemos iterar sobre los elementos en la respuesta para procesar cada uno.Con este enfoque, podemos recuperar todos los elementos con el mismo valor de clave de partición sin especificar la clave de ordenación.</string,></string,>