DynamoDB - Agregasi
DynamoDB tidak menyediakan fungsi agregasi. Anda harus menggunakan kueri, pemindaian, indeks, dan berbagai alat secara kreatif untuk melakukan tugas-tugas ini. Dalam semua ini, biaya throughput kueri / pemindaian dalam operasi ini bisa jadi berat.
Anda juga memiliki opsi untuk menggunakan pustaka dan alat lain untuk bahasa pengkodean DynamoDB pilihan Anda. Pastikan kompatibilitasnya dengan DynamoDB sebelum menggunakannya.
Hitung Maksimum atau Minimum
Memanfaatkan urutan penyimpanan hasil naik / turun, parameter Batas, dan parameter apa pun yang mengatur urutan untuk menemukan nilai tertinggi dan terendah.
Misalnya -
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);
Hitung Hitungan
Menggunakan DescribeTableuntuk menghitung item tabel, perhatikan bahwa ini menyediakan data lama. Gunakan juga JavagetScannedCount method.
Memanfaatkan LastEvaluatedKey untuk memastikannya memberikan semua hasil.
Misalnya -
ScanRequest scanRequest = new ScanRequest().withTableName(yourtblName);
ScanResult yourresult = client.scan(scanRequest);
System.out.println("#items:" + yourresult.getScannedCount());
Menghitung Rata-rata dan Jumlah
Memanfaatkan indeks dan kueri / pemindaian untuk mengambil dan memfilter nilai sebelum diproses. Kemudian operasikan saja nilai-nilai itu melalui sebuah objek.