Amazon dynamodb DynamoDB是否支持AVG、MAX、MIN等聚合函数?

Amazon dynamodb DynamoDB是否支持AVG、MAX、MIN等聚合函数?,amazon-dynamodb,Amazon Dynamodb,我尝试了DynamoDB文档,并使用QueryResult处理示例,但找不到任何关于如何在DynamoDB中使用min、max和avg的源代码(我使用的是javaapi) 未提供这些。您可以通过执行查询或使用过滤器进行扫描,然后自己计算值来实现这些功能。为了简化一些,您可以使用只返回该查询/扫描将返回的项目计数,而不是实际项目。(请注意,count仅返回部分计数-您可能需要对多页查询/扫描的计数求和) 或者,您可以在主表更新时维护一个单独的表来存储这些值(注意,保持同步可能很困难,您必须使用某种

我尝试了DynamoDB文档,并使用
QueryResult
处理示例,但找不到任何关于如何在DynamoDB中使用min、max和avg的源代码(我使用的是javaapi)

未提供这些。您可以通过执行查询或使用过滤器进行扫描,然后自己计算值来实现这些功能。为了简化一些,您可以使用只返回该查询/扫描将返回的项目计数,而不是实际项目。(请注意,count仅返回部分计数-您可能需要对多页查询/扫描的计数求和)


或者,您可以在主表更新时维护一个单独的表来存储这些值(注意,保持同步可能很困难,您必须使用某种形式的事务管理,并考虑dynamo的最终一致性模型)。

我和您一样有同样的问题,然后我有了两个解决这个问题的方法。 第一种方法是使用query/scan查询所有数据,然后在java代码中聚合数据。 第二种方法是使用配置单元SQL,您可以同时使用配置单元和DyanmoDB,并在Hivql中聚合数据


仅支持计数不完全-计数仅返回该查询的部分结果-您仍然需要自己组装总计数。我已从您的链接复制并粘贴了相关文档注释:如果筛选表达式或查询条件的匹配项超过1 MB,则计数包含与请求匹配的项总数的部分计数。要获取匹配项的完整计数,请从上一个请求获取LastEvaluatedKey值,并在下一个请求中将该值用作ExclusiveStartKey。重复此操作,直到DynamoDB不再返回LastEvaluatedKey。“你是对的,你可能需要将所有部分计数相加才能得到总计数。但它仍然比检索单个项目并在应用程序端计算它们更有效。当然,这只适用于计数,而不适用于任何其他聚合函数。我更新了答案以澄清这一点。谢谢你的反馈!