我正在使用Amazon DynamoDB为活动流存储基于事件的数据。哪个哈希键最适合DynamoDB中的事件数据?
我自动为每个月创建一个新表,并打算将事件数据存储在每个相关表中。这样,只要删除旧表格,我可以在需要时快速删除旧的月份,并且可以更好地调整到更新的表格。
但是,根据阅读亚马逊文档,我可以看到散列键本身非常重要。
预置吞吐量取决于主键选择和单个项目的工作负载模式。在存储数据时,Amazon DynamoDB将一个表项目分成多个分区, 主要基于散列键元素分配数据。与表关联的预配置吞吐量在分区之间也均匀分配 ,而不跨 分区跨预配吞吐量共享。
我很难找到我的头。
所以我的问题,与上面的是一种精神,这散列键是在这两者之间更好:
1382465533_john.doe
或:
john.doe_1382465533
上述键是用户标识和事件时间戳的组合。
如何将这些表将被查询...
这些表将不有一系列关键作为,不要求这个用例。
此数据将用于为用户构建活动源。
当事件发生时,将个人活动ID推送(扇出)到用户关注者redis列表中(每个用户一个列表);
因此,当用户请求的流,我们做到以下几点:通过activityid的从Redis的
- 获取列表和构建BatchGetItem查询拉出来DynamoDB的。
考虑到这一切,我需要了解的是如何最好地在活动表中定义我的散列键。首先是时间戳或首先使用userid。 DynamoDB使用什么逻辑来自动分区散列键?
在此先感谢您的任何建议。