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.