dynamodb 是如何实现聚合的? Mongodb 和 couchbase 具有地图缩减支持。
假设我们正在建立一个技术博客,用户可以在其中发布文章。并说文章可以被标记。
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 作为主要数据存储。