热门改进基于嵌套对象的查询

时间:2017-12-05 16:38:35

标签: amazon-dynamodb

我正在使用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"
}

我遇到的问题是,例如,我想检索特定“端点”的最新值。因此,我可以根据最新的“时间戳”检索“设备”的最新记录,但不保证此记录将包含此特定端点的值(并非所有记录都包含所有端点)。要解决这个问题,我必须基本扫描最新记录(按降序排列)并返回找到端点的第一个对象。另外,我不知道有多少记录需要检索才能找到...

我想知道是否有更好的方法这样做...我尝试使用二级索引,但这需要复制数据,为每个端点值创建一个对象(复制公共数据)。我想避免这个...

我很感激有关如何解决这个问题的任何提示。

由于 格斯

0 个答案:

没有答案