id date locationId comment type
1 2017-01 DSE374HD2 asdf a
2 2017-01 DSE374HD2 qwer a
3 2017-02 DSE374HD2 wer b
因此,理想情况下,我想将locationId设置为哈希键,将date设置为排序键,但是后来意识到,由于哈希键在表中必须是唯一的,因此它将覆盖值,因此将无法正常工作。
然后,我选择id作为hashkey,并添加了一个全局二级索引,其中locationId作为hash和date作为范围键。我认为这可能行得通,但是由于gsi配置是单独的,因此这会增加成本,因此我就浪费了对主表的1个读取和1个写入,因为据我所知,我需要为gsi添加其他配置。
您有更好的主意吗?
答案 0 :(得分:0)
不确定表每天可能获取的数据量。 您可以尝试:
分区键:LocationId
排序键:data#id或data#id#type (您可以输入任何名称,例如'CombinedSortKey')
当您为排序键推送数据时,请执行字符串连接以在其中组合多个值。因此,该值可能看起来像这样:
locationId CombinedSortKey
DSE374HD2 2017-01#a#1
DSE374HD2 2017-01#a#2
DSE374HD2 2017-02#b#3
而且,当您扫描或查询表时,可以使用比较键或功能与排序键一起过滤掉所需的数据。
在此页面上查看comparison and function details。