DynamoDB-アグリゲーション

DynamoDBは集計関数を提供しません。これらのタスクを実行するには、クエリ、スキャン、インデックス、およびさまざまなツールを創造的に使用する必要があります。これらすべてにおいて、これらの操作でのクエリ/スキャンのスループット費用は高額になる可能性があります。

好みのDynamoDBコーディング言語用にライブラリやその他のツールを使用するオプションもあります。使用する前に、DynamoDBとの互換性を確認してください。

最大または最小を計算する

結果のストレージの昇順/降順、Limitパラメーター、および順序を設定するパラメーターを使用して、最高値と最低値を見つけます。

例-

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);

カウントを計算する

使用する DescribeTableただし、テーブルアイテムの数を取得するには、古いデータを提供することに注意してください。また、Javaを利用するgetScannedCount method

活用する LastEvaluatedKey すべての結果を確実に提供するため。

例-

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

平均と合計の計算

インデックスとクエリ/スキャンを利用して、処理前に値を取得およびフィルタリングします。次に、オブジェクトを介してこれらの値を操作するだけです。