DynamoDB: agregación

DynamoDB no proporciona funciones de agregación. Debe utilizar de forma creativa consultas, análisis, índices y diversas herramientas para realizar estas tareas. Sin embargo, el costo de ejecutar consultas / escaneos en estas operaciones puede ser significativo.

También tiene la opción de utilizar bibliotecas y otras herramientas para su lenguaje de programación DynamoDB preferido. Asegúrese de que sean compatibles con DynamoDB antes de usarlos.

Calcular máximo o mínimo

Utilice el orden ascendente / descendente de los resultados, el parámetro Límite y cualquier parámetro que especifique el orden para encontrar los valores máximo y mínimo.

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 cantidad

Usar DescribeTable para obtener la cardinalidad de una tabla, tenga en cuenta que proporciona datos obsoletos. También usa Java método getScannedCount

Usar LastEvaluateKey para asegurar todos los resultados.

Por ejemplo –

ScanRequest scanRequest = new ScanRequest().withTableName(yourtblName); 
ScanResult yourresult = client.scan(scanRequest); 
System.out.println("#items:" + yourresult.getScannedCount());

Cálculo de promedios y sumas

Utilice índices y consultas / escaneos para extraer y filtrar valores antes de procesarlos. Luego simplemente manipule esos valores a través del objeto.

🚫