- DynamoDB 教程
- DynamoDB - 主页
- DynamoDB - 概述
- DynamoDB - 基本概念
- DynamoDB - 环境
- DynamoDB - 操作工具
- DynamoDB - 数据类型
- DynamoDB - 创建表
- DynamoDB - 加载表
- DynamoDB - 查询表
- DynamoDB - 删除表
- DynamoDB - API 接口
- DynamoDB - 创建项目
- DynamoDB - 获取项目
- DynamoDB - 更新项目
- DynamoDB - 删除项目
- DynamoDB - 批量写入
- DynamoDB - 批量检索
- DynamoDB - 查询
- DynamoDB - 扫描
- DynamoDB - 索引
- 全球二级指数
- 本地二级索引
- DynamoDB - 聚合
- DynamoDB - 访问控制
- DynamoDB - 权限 API
- DynamoDB - 条件
- 网络身份联合
- DynamoDB - 数据管道
- DynamoDB - 数据备份
- DynamoDB - 监控
- DynamoDB - CloudTrail
- DynamoDB-MapReduce
- DynamoDB - 表活动
- DynamoDB - 错误处理
- DynamoDB - 最佳实践
- DynamoDB 有用资源
- DynamoDB - 快速指南
- DynamoDB - 有用的资源
- DynamoDB - 讨论
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获取表项目的计数,但请注意,它提供了过时的数据。另外,还可以利用 Java getScannedCount 方法。
利用LastEvaluatedKey确保它提供所有结果。
例如 -
ScanRequest scanRequest = new ScanRequest().withTableName(yourtblName); ScanResult yourresult = client.scan(scanRequest); System.out.println("#items:" + yourresult.getScannedCount());
计算平均值和总和
在处理之前利用索引和查询/扫描来检索和过滤值。然后只需通过对象对这些值进行操作即可。