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());
平均と合計の計算
インデックスとクエリ/スキャンを利用して、処理前に値を取得およびフィルタリングします。次に、オブジェクトを介してこれらの値を操作するだけです。