我有一个消息传递应用程序,其中所有消息按创建时间排列到季节。每个季度可能有数十亿条消息。我有一项任务是删除旧季的消息。我想到了一个解决方案,它包括如下所示的DynamoDB表创建/删除:
它是一个好的模式,是否受到亚马逊鼓励?
ps:我问,因为我害怕两件事,在不同的亚马逊服务中遇到过 -答案 0 :(得分:1)
以您描述的方式分割数据是完全可以接受的。您可以删除DynamoDB表,无论其包含的项目大小如何。
据我所知,删除或创建表所需的时间没有明确的SLA(这意味着无法知道它是否需要2秒或2分钟或20分钟)但是只要你的解决方案不依赖于这种时间,你就可以了。
事实上,根据年龄分割数据的想法有可能显着提高应用程序的性能,并且肯定会帮助您控制成本。
答案 1 :(得分:1)
是的,这是一种可接受的设计模式,它实际上遵循AWS团队提出的最佳实践,但有些事情需要考虑用于您的特定用例。
关于Understand Access Patterns for Time Series Data states ...
的DynamoDB最佳实践文档您可以通过存储" hot"来节省资源。一个表中的项目 更高的吞吐量设置,"冷"另一个表中的项目 较低的吞吐量设置您只需删除即可删除旧项目 表格。您可以选择将这些表备份到其他存储 Amazon Simple Storage Service(Amazon S3)等选项。正在删除 整个表比删除项目更有效 一个接一个,它基本上使您的写吞吐量翻倍 与put操作一样多的删除操作。