【问题标题】:DynamoDB Key DesignDynamoDB 密钥设计
【发布时间】:2020-10-21 07:41:35
【问题描述】:
我有一个包含以下键的表:
PKey(分区键)
SKey(排序键)
我想存储一系列国家/地区的假期,并回答以下 2 个问题:
- 给我 2020 年几个月的所有假期
- 给我 2020 年特定国家/地区几个月范围内的所有假期
目前 PKey 保存年份,SKey 保存月份和日期 (12-31)。我已将 Country (ISO) 添加到 SKey,但我无法回答这两个问题。是否有另一种可行的设计?我正在尝试避免 GSI。
标记
【问题讨论】:
标签:
amazon-dynamodb
dynamodb-queries
【解决方案1】:
您是否考虑过使用本地二级索引 (LSI) 而不是 GSI? LSI 无需额外费用。
您可以将表格排序键设置为“县”-“月”-“日”
那么您的第二个访问要求可以由
提供服务
Query(pkey = "2020", skey between "GB-10-01" and "GB-12-31")
那么您的 LSI 排序键将只是“月”-“日”,并且可以满足您的第一个访问要求。
Query(index='MYLSI', pkey = "2020", skey between "10-01" and "12-31")