Amazon dynamodb 为了避免GSI,数据集中的哈希/范围键应该是什么?

Amazon dynamodb 为了避免GSI,数据集中的哈希/范围键应该是什么?,amazon-dynamodb,Amazon Dynamodb,因此,理想情况下,我希望将locationId设置为哈希键,将date设置为排序键,但后来意识到,这将无法工作,因为它会覆盖值,因为哈希键需要在表中是唯一的 然后我选择id作为hashkey,并添加了一个全局二级索引,locationId作为hash,date作为范围键。我认为这是可行的,但是这会增加成本,因为gsi资源调配是分开的,所以我会浪费主表的1次读取和1次写入,因为据我所知,我需要为gsi添加额外的资源调配 您有更好的想法吗?不确定该表每天可能获得的数据量。 你可以试试: 分区键:Lo

因此,理想情况下,我希望将locationId设置为哈希键,将date设置为排序键,但后来意识到,这将无法工作,因为它会覆盖值,因为哈希键需要在表中是唯一的

然后我选择id作为hashkey,并添加了一个全局二级索引,locationId作为hash,date作为范围键。我认为这是可行的,但是这会增加成本,因为gsi资源调配是分开的,所以我会浪费主表的1次读取和1次写入,因为据我所知,我需要为gsi添加额外的资源调配


您有更好的想法吗?

不确定该表每天可能获得的数据量。 你可以试试:

分区键:LocationId

排序键:数据id或数据id类型 (您可以为其添加任何名称,例如,“CombinedSortKey”)

在为排序键推送数据时,请执行字符串串联以组合其中的多个值。因此,该值可能如下所示:

locationId组合的SortKey
DSE374HD2 2017-01#a#1
DSE374HD2 2017-01#a#2
DSE374HD2 2017-02#b#3
id   date     locationId   comment  type
1    2017-01  DSE374HD2    asdf     a
2    2017-01  DSE374HD2    qwer     a
3    2017-02  DSE374HD2    wer      b