Dynamo主分区密钥

时间:2018-09-24 05:25:10

标签: amazon-dynamodb partitioning

我有一个用于新闻页面的发电机表。

它由

组成

指导, newsDatetime, newsText, 语言

构造表的最佳方法是什么?

大多数用户会看到订购新newsDatetime的前五个文本项。

您可以切换语言,但是每种语言都有不同的新闻。创建全新的dynamoDB并在语言上切换DB是否有意义? (很少会发生)

guid将在分区之间随机分配。但由于按日期时间排序,因此它想将日期时间用作分区键。这有道理吗?

1 个答案:

答案 0 :(得分:0)

我认为您的架构很好。为了满足您按语言进行过滤的需求,建议您创建一个将languagenewsDatetime串联起来的新属性。

将表设置为将guid作为分区键,并将newsDatetime作为排序键。然后创建一个辅助索引,将guid作为分区键,并将串联的属性作为排序键。

当需要检索新闻时,无论使用哪种语言,都可以使用排序键以降序扫描表格。当您需要过滤语言时,请使用降序的二级索引扫描,也可以使用startswith="{language}"过滤条件。