【发布时间】:2018-05-28 15:59:48
【问题描述】:
与this question相关,我正在寻找更具体的答案。为了保持这种非主观性,这里有一个完整的思考过程,用于创建一个带有卡点的活动表,可以通过一个快速示例答案来完成。
为了更好地了解 DynamoDB,我正在创建一个个人网站,其中包含来自 DynamoDB 表的活动源。目标是均匀分布分区键,同时仍然能够对所有分区键进行排序(我正在努力解决这部分问题)。
不同类型的活动将包括博客文章、项目、Twitter 文章引用、LinkedIn 文章引用等。使用活动类型作为分区键是不明智的,因为我的活动权重很高,主要是在 Twitter 方面,几乎没有曾经创建博客文章。
唯一的活动 ID 似乎是在 DynamoDB 分区之间均匀分布活动的最佳选择。但是,这完全消除了对活动进行排序以启动的能力,因为查询需要首先知道分区 id。这就是二级全局索引 (SGI) 会有所帮助的地方。这样,主分区键上就不需要排序键,而是在 SGI 中配对。
这是我卡住的部分。 SGI 分区键基于什么?目前,我正在考虑使用“日期”排序键的所有活动的单个值“活动”,但这是所有条目的单个分区。 单个 SGI 分区键值会限制此项目中的性能吗?
请注意,这是一个小型项目。但是,在构建这个项目时,我正在考虑大型项目,试图在优化分区分布方面创建尽可能最好的 DynamoDB 表,同时仍然保持对所有表记录进行排序的灵活性。
【问题讨论】:
标签: amazon-web-services sorting amazon-dynamodb