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());
การคำนวณค่าเฉลี่ยและผลรวม
ใช้ดัชนีและแบบสอบถาม / สแกนเพื่อดึงและกรองค่าก่อนประมวลผล จากนั้นดำเนินการกับค่าเหล่านั้นผ่านวัตถุ