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อย่างไรก็ตามหากต้องการรับจำนวนรายการในตารางโปรดทราบว่ามีข้อมูลเก่า ใช้ JavagetScannedCount method.

ใช้ประโยชน์ LastEvaluatedKey เพื่อให้แน่ใจว่าจะให้ผลลัพธ์ทั้งหมด

ตัวอย่างเช่น -

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

การคำนวณค่าเฉลี่ยและผลรวม

ใช้ดัชนีและแบบสอบถาม / สแกนเพื่อดึงและกรองค่าก่อนประมวลผล จากนั้นดำเนินการกับค่าเหล่านั้นผ่านวัตถุ