amazon-web-services - 使用 DynamoDB Stream 的新数据聚合
问题描述
我们有标准的基于 SQL 的数据库来存储用户的活动。由于数据库中存储了数百万个活动,动态聚合将非常昂贵,因此我们正在考虑将这些活动推送\复制到 DynamoDB 中,并使用 dynamo DB 流(事件)+ Lamda 来提供实时聚合。
如果从一开始就固定了需要完成的聚合类型,这应该可以工作。在我们的例子中,我们希望在未来根据新的用例继续添加新的聚合。虽然我不确定如何重新生成这些事件流,因为它在 24 小时后将不可用!
谁能向我解释一下我们如何在初始设置后随时添加更多聚合?
解决方案
如果您可以让系统因中断而脱机,您可以停止所有写入,然后执行扫描,计算您的聚合,然后使用将更新您的聚合的流再次打开所有内容。
如果您不能使表脱机,您可能需要做一些更花哨的事情,例如通过从启用流时拍摄快照来克隆表,然后计算数据的聚合值,直到您启用了流。
根据您正在执行的计算,这可能非常麻烦,但我认为没有其他方法可以解决它。我也希望它们成为 DynamoDB 的原生聚合框架。
推荐阅读
- r - 我正在编写我的第一个闪亮的应用程序。我有两个错误:“&”对因素没有意义,“职业”在应用程序中找不到
- javascript - 具有多个文本文件输入的滚动选框
- c# - UWP 按钮按下和释放事件处理程序
- python - 在 Docker 镜像中安装 argon2(安装 gcc 的问题)
- python - 如果翻译成 Javascript,我可以在 Google 表格中运行这个程序吗?
- javascript - Javascript if else 大于范围滑块
- mysql - phpmyadmin 错误:#1062 - 所有数据库上的键 'PRIMARY' 的重复条目 ''
- java - 获取所有 JAR 文件中所有类中带有注释 @Test 的所有方法
- java - 将具有多项式的c ++ crc16计算转换为android java
- php - 选择任何字段值与数组中的值匹配的行