DynamoDB - Tổng hợp
DynamoDB không cung cấp chức năng tổng hợp. Bạn phải sử dụng sáng tạo các truy vấn, quét, chỉ số và các công cụ khác nhau để thực hiện các tác vụ này. Trong tất cả những điều này, chi phí thông lượng của các truy vấn / quét trong các hoạt động này có thể rất lớn.
Bạn cũng có tùy chọn sử dụng thư viện và các công cụ khác cho ngôn ngữ mã hóa DynamoDB ưa thích của mình. Đảm bảo khả năng tương thích của chúng với DynamoDB trước khi sử dụng.
Tính toán tối đa hoặc tối thiểu
Sử dụng thứ tự lưu trữ tăng dần / giảm dần của kết quả, tham số Giới hạn và bất kỳ tham số nào đặt thứ tự để tìm giá trị cao nhất và thấp nhất.
Ví dụ -
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);
Tính số đếm
Sử dụng DescribeTableTuy nhiên, để có được số lượng các mục trong bảng, hãy lưu ý rằng nó cung cấp dữ liệu cũ. Ngoài ra, hãy sử dụng JavagetScannedCount method.
Tận dụng LastEvaluatedKey để đảm bảo nó mang lại tất cả các kết quả.
Ví dụ -
ScanRequest scanRequest = new ScanRequest().withTableName(yourtblName);
ScanResult yourresult = client.scan(scanRequest);
System.out.println("#items:" + yourresult.getScannedCount());
Tính toán trung bình và tổng
Sử dụng các chỉ mục và truy vấn / quét để truy xuất và lọc các giá trị trước khi xử lý. Sau đó chỉ cần thao tác trên các giá trị đó thông qua một đối tượng.