如何在DynamoDB中建立模型,如果每天晚上我需要处理每日记录,然后删除它们



我需要在DynamoDB中存储一些日常信息。基本上,我需要存储用户操作:UserID, StoreID, ActionID和时间戳。每天晚上我想处理当天产生的信息,做一些聚合,一些报告,然后我可以安全地删除那些记录。我该如何建模呢?我是说哈希键和排序键…我需要有报告的每个动作的完整时间戳,但为了查询DynamoDB,我想它更容易保存日期。我有一些PKs作为UserID和StoreID,但无论如何,我需要每晚处理所有数据,而不是与一个用户或一个商店相关的数据…谢谢!会长Patricio

你可以使用RabbitMQ异步调度作业。这将比多个DB查询更快。基本上,这个工具允许您创建一个作业队列(包含UserID, StoreID &时间戳),工作人员可以删除(如果你愿意,在午夜)并创建你的报告(或任何你想要的)。

这还允许您跨节点横向扩展系统。您的工人可以是执行这些任务的不同机器。如果你的数据库崩溃,你也会很安全(尽管你可能仍然需要为运行RabbitMQ服务的机器设计冗余)。

DB应该用于持久存储,而不是作为处理队列。

最新更新