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.