如何在DynamoDB中实现聚合?MongoDB和Couchbase支持MapReduce。
假设我们正在构建一个技术博客,在这个博客中用户可以发布文章,且文章可以被标记。
user
{
id : 1235,
name : "John",
...
}
article
{
id : 789,
title: "dynamodb use cases",
author : 12345 //userid
tags : ["dynamodb","aws","nosql","document database"]
}
在用户界面上,我们想要显示当前用户的标签及其相应计数。
如何实现以下聚合?
{
userid : 12,
tag_stats:{
"dynamodb" : 3,
"nosql" : 8
}
}
我们将通过rest api提供此数据,并且会频繁调用。就像这些信息显示在应用程序的主页面上。
- 我想到可以提取所有文档并在应用程序级别进行聚合。但我觉得我的读取容量单位会耗尽。
- 可以使用EMR,redshift,bigquery,aws lambda等工具。但我认为这些是用于数据仓库的目的。
我想了解其他更好的实现相同目的的方法。 人们如何在选择dynamodb作为主要数据存储并考虑成本和响应时间的情况下实现这些动态简单查询。