DynamoDB 关键设计
DynamoDB Key Design
我有一个带有以下键的 table:
PKey(分区键)
SKey(排序键)
我想存储一系列国家/地区的假期,并回答以下 2 个问题:
- 给我 2020 年几个月的所有假期
- 给我 2020 年特定国家/地区的一系列月份之间的所有假期
目前 PKey 保存年份,SKey 保存月份和日期 (12-31)。我已将国家 (ISO) 添加到 SKey,但我无法回答这两个问题。还有其他可行的设计吗?我正在努力避免 GSI。
马克
您是否考虑过本地二级索引 (LSI) 而不是 GSI?没有与 LSI 相关的额外费用。
您可以将 table 排序键设置为“县”-“月”-“日”
那么您的第二个访问要求可以由
满足
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")
我有一个带有以下键的 table:
PKey(分区键) SKey(排序键)
我想存储一系列国家/地区的假期,并回答以下 2 个问题:
- 给我 2020 年几个月的所有假期
- 给我 2020 年特定国家/地区的一系列月份之间的所有假期
目前 PKey 保存年份,SKey 保存月份和日期 (12-31)。我已将国家 (ISO) 添加到 SKey,但我无法回答这两个问题。还有其他可行的设计吗?我正在努力避免 GSI。
马克
您是否考虑过本地二级索引 (LSI) 而不是 GSI?没有与 LSI 相关的额外费用。
您可以将 table 排序键设置为“县”-“月”-“日”
那么您的第二个访问要求可以由
满足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")