我需要创建一个表,其中包含由连续运行的进程生成的数据片段。此过程生成包含两个必需组件的消息,其中包括:全局唯一消息 UUID 和消息时间戳。
这些消息稍后将由 UUID 检索。
此外,我需要定期从该表中删除所有太旧的消息,即时间戳与当前时间相差超过 X 的消息。
我一直在阅读 DynamoDB v2 文档(例如Local Secondary Indexes),试图弄清楚如何组织我的表以及是否需要二级索引来搜索要删除的消息。我的问题可能有一个简单的答案,但我有点困惑......
那么我是否应该创建一个表,其中 UUID 作为哈希,messageTimestamp 作为范围键(连同包含实际消息的“消息”属性),然后不创建任何二级索引?在我看到的示例中,哈希值不是唯一的(例如,上述链接下的 ForumName)。在我的情况下,哈希将是唯一的。我不确定这是否有任何区别。
如果我按照所述创建具有哈希和范围的表,并且没有二级索引,那么我将如何查询特定时间范围内的所有消息,而不管它们的 UUID 是什么?