我正在为 DynamoDB 准备单表设计。我已经查看了亚马逊的文档和其他一些博客,以了解在表格设计过程中需要遵循的概念和最佳实践,但仍然有一些问题不清楚我需要帮助的地方。
只是为了给你背景,我准备了实体图、访问模式等,计划建立一个服务来计算一天结束时的数据,即每天、每月和每年。数据量 - 50,000 台设备 * 一天 48 个数据点。
主要实体
- 站点(站点 ID、站点名称、位置)
- Devices(设备ID、设备名称、设备配置参数)
- 设备日志(LogID、日期时间、消耗的能量)-这些数据以 30 分钟为间隔。
访问模式
- 获取站点在一年或日期范围内的总功耗
- 根据日期范围获取站点的每月耗电量,即 23 年 1 月、23 年 2 月等的耗电量。
- 获取站点内所有设备或站点选定设备的每日功耗
问题
- 计划使用站点 ID 作为 PK,即站点#1
- 设备 ID 为 SK DeviceID#100、DeviceID#200 等
- 想存储年月日的耗电量计算数据,所以在检索时不需要执行任何计算,你能建议使用像 YEAR#2023 这样的 SK 吗,存储年度数据,DEVICE #100#YEAR#2023,设备#100#YEAR#2023#MONTH#01,设备#100#YEAR#2023#MONTH#01#DAY#01
- 你能在上面的例子中建议 GSI1PK 和 GSI1SK 哪个属性是可取的吗?