Amazon dynamodb Dynamodb表上的聚合统计信息

Amazon dynamodb Dynamodb表上的聚合统计信息,amazon-dynamodb,bigdata,amazon-kinesis,Amazon Dynamodb,Bigdata,Amazon Kinesis,我有一个DynamoDB表,每天接收约1500万条浏览记录,如: {"domain": "google.com", "url": "https://google.com/search?q=test1", "user_id": 10, "action": "allowed"} {"domain": "google.com", "url": "https://google.com/search?q=test2", "user_id": 10, "action": "allowed"} {"domai

我有一个DynamoDB表,每天接收约1500万条浏览记录,如:

{"domain": "google.com", "url": "https://google.com/search?q=test1", "user_id": 10, "action": "allowed"}
{"domain": "google.com", "url": "https://google.com/search?q=test2", "user_id": 10, "action": "allowed"}
{"domain": "facebook.com", "url": "https://www.facebook.com/feed", "user_id": 10, "action": "blocked"}
个人记录的历史没有那么重要,有一个TTL保存30天。 我正在努力思考的是聚合
允许的
阻止的
的顶级域的最佳方法

如果是每天的基本计数,我可以为day和count以及increment创建一个唯一的分区键:

User-10-Totals, "2019-11-16", { "count": 2 }
但问题是每个域都有自己的计数,每天可能有数千个唯一的域及其计数

我最终希望在可配置的时间段内拥有前10个域名

Allowed for the last 30 days:
 1. google.com
 2. other.com
 ...

Blocked for the last 30 days:
 1. facebook.com
 2. other2.com
 ...
有没有一种很好的方法可以存储这些信息,而不必筛选客户机上可能存在的数千条记录和组?

您看过吗

您似乎有一个教科书上的使用Streams+lambda函数计算和更新聚合计数的用例


如果我没记错的话,AWS reInvent视频将更详细地介绍“前10名”功能。

当您查找顶级域名时,什么样的延迟是可以接受的?在几个小时内感觉是合理的。如果等待更长时间的权衡比值得考虑的更简单或更便宜,那么这一点很好。我已经读了很多这样的文章。我想吸引我的是,除了白天和主题之外,还有一个额外的维度。例如,它是用户、日期和域。使用我的数据,示例是在两个维度上(例如,用户计数和天数)。我曾考虑在域中创建一个带有复合排序键的记录,但是我每天可能会有数百条记录,并且仍然必须在客户端进行聚合,除非在一天结束时有额外的聚合步骤。