DynamoDB - agregação

O DynamoDB não oferece funções de agregação. Você deve fazer uso criativo de consultas, varreduras, índices e ferramentas variadas para executar essas tarefas. Em tudo isso, a despesa de processamento de consultas / varreduras nessas operações pode ser pesada.

Você também tem a opção de usar bibliotecas e outras ferramentas para sua linguagem de codificação preferida do DynamoDB. Certifique-se de sua compatibilidade com o DynamoDB antes de usá-lo.

Calcular máximo ou mínimo

Utilize a ordem crescente / decrescente de armazenamento dos resultados, o parâmetro Limit e quaisquer parâmetros que definam a ordem para encontrar os valores mais altos e mais baixos.

Por exemplo -

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 contagem

Usar DescribeTablepara obter uma contagem dos itens da tabela, no entanto, observe que ela fornece dados desatualizados. Além disso, utilize o JavagetScannedCount method.

Utilizar LastEvaluatedKey para garantir que fornece todos os resultados.

Por exemplo -

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

Calculando a média e a soma

Utilize índices e uma consulta / varredura para recuperar e filtrar valores antes do processamento. Em seguida, simplesmente opere sobre esses valores por meio de um objeto.