我正在使用AWS DynamoDB以JSON格式存储数据。分区键是“设备”,排序键是“时间戳”。我可以在表中查询一系列日期中的特定设备。然后,我可以通过应用程序感兴趣的特定端点(在嵌套的“reports”对象中)过滤内容。
{
"device": "AAA111",
"attr1": "bbb",
"reports": [
{
"endpoint": 1,
"value": "23"
},
{
"endpoint": 3,
"value": "26"
},
{
"endpoint": 4,
"value": "20"
}
],
.........
............
...........
"timestamp": "2017-11-30T03:50:30z"
}
我遇到的问题是,例如,我想检索特定“端点”的最新值。因此,我可以根据最新的“时间戳”检索“设备”的最新记录,但不保证此记录将包含此特定端点的值(并非所有记录都包含所有端点)。要解决这个问题,我必须基本扫描最新记录(按降序排列)并返回找到端点的第一个对象。另外,我不知道有多少记录需要检索才能找到...
我想知道是否有更好的方法这样做...我尝试使用二级索引,但这需要复制数据,为每个端点值创建一个对象(复制公共数据)。我想避免这个...
我很感激有关如何解决这个问题的任何提示。
由于 格斯