Amazon web services DynamoDB中哪个散列键最适合事件数据?
我正在使用AmazonDynamodb为活动流存储基于事件的数据 我自动为每个月创建一个新表,并打算将事件数据存储在每个相关表中。这样,只要删除旧表,我就可以在需要时快速删除旧的月份,并为最近的表提供更好的供应负载 然而,通过阅读amazon文档,我可以看到散列键本身非常重要 配置的吞吐量取决于主键选择,以及 单个项目的工作负载模式。在存储数据时,Amazon DynamoDB将表的项划分为多个分区,然后 主要基于散列键元素分发数据。这个 与表关联的调配吞吐量也被平均分配 在分区之间,不共享跨 分区 我很难理解这一点 因此,我的问题是,考虑到上述情况,在这两者之间,哪个散列键更好: 1382465533_约翰·多伊 或: 约翰·多伊1382465533 上面的键是userid和事件时间戳的组合 如何查询这些表… 这些表将不具有范围键,因为对于这个用例,它不是必需的 这些数据将用于为用户构建活动提要 当事件发生时,单个活动id被推(扇出)到用户追随者redis列表中(每个用户一个列表) 因此,当用户请求其流时,我们会执行以下操作:Amazon web services DynamoDB中哪个散列键最适合事件数据?,amazon-web-services,redis,amazon-dynamodb,Amazon Web Services,Redis,Amazon Dynamodb,我正在使用AmazonDynamodb为活动流存储基于事件的数据 我自动为每个月创建一个新表,并打算将事件数据存储在每个相关表中。这样,只要删除旧表,我就可以在需要时快速删除旧的月份,并为最近的表提供更好的供应负载 然而,通过阅读amazon文档,我可以看到散列键本身非常重要 配置的吞吐量取决于主键选择,以及 单个项目的工作负载模式。在存储数据时,Amazon DynamoDB将表的项划分为多个分区,然后 主要基于散列键元素分发数据。这个 与表关联的调配吞吐量也被平均分配 在分区之间,不共享跨
提前感谢您的建议。根据您的问题,我想说的是,您如何编写哈希键并不重要,因为您必须使用该哈希键的确切值查询表,而DynamoDB无论如何都会将其视为字符串。另一件事是,如果您正在编写一个范围键,那么您可能希望按照以下方式编写它 约翰·多伊1382465533 因此,您可以像这样轻松地查询表 哈希键=任意值,范围键>=john.doe_13824600 也就是说,您可以通过将Redis活动提要直接集成到DynamoDB中来摆脱它,如下所示: 散列键:用户id 范围键:时间戳 其余的活动数据 因此,您不必将活动推送到DynamoDB中,也不必将活动id推送到Redis中,只需从同一个DynamoDB表中推送到并查询它即可。我不知道这是否与应用程序的其余部分兼容,但这里有一个想法