DynamoDB: agregación
DynamoDB no proporciona funciones de agregación. Debe hacer un uso creativo de consultas, análisis, índices y una variedad de herramientas para realizar estas tareas. En todo esto, el gasto de rendimiento de las consultas / escaneos en estas operaciones puede ser elevado.
También tiene la opción de utilizar bibliotecas y otras herramientas para su lenguaje de codificación DynamoDB preferido. Asegúrese de su compatibilidad con DynamoDB antes de usarlo.
Calcular máximo o mínimo
Utilice el orden de almacenamiento ascendente / descendente de los resultados, el parámetro Límite y cualquier parámetro que establezca el orden para encontrar los valores más altos y más bajos.
Por ejemplo
Map<String, AttributeValue> eaval = new HashMap<>();
eaval.put(":v1", new AttributeValue().withS("hashval"));
queryExpression = new DynamoDBQueryExpression<Table>()
.withIndexName("yourindexname")
.withKeyConditionExpression("HK = :v1")
.withExpressionAttributeValues(values)
.withScanIndexForward(false); //descending order
queryExpression.setLimit(1);
QueryResultPage<Lookup> res =
dynamoDBMapper.queryPage(Table.class, queryExpression);
Calcular recuento
Utilizar DescribeTableSin embargo, para obtener un recuento de los elementos de la tabla, tenga en cuenta que proporciona datos obsoletos. Además, utilice JavagetScannedCount method.
Utilizar LastEvaluatedKey para garantizar que ofrece todos los resultados.
Por ejemplo
ScanRequest scanRequest = new ScanRequest().withTableName(yourtblName);
ScanResult yourresult = client.scan(scanRequest);
System.out.println("#items:" + yourresult.getScannedCount());
Calcular el promedio y la suma
Utilice índices y una consulta / escaneo para recuperar y filtrar valores antes de procesarlos. Luego, simplemente opere sobre esos valores a través de un objeto.