分析 Cloudant 数据并将其发送到 Webapp

Analyze Cloudant data and send it to Webapp

我将解释我目前正在进行的项目,请耐心等待,因为英语不是我的第一语言。

我正在进行的项目涉及一系列连接到 Watson IOT 服务的设备,这些设备会定期(大约每秒一次,但不是恒定的刷新率)发送数据。我所说的数据来自许多传感器,这些传感器彼此非常不同,并且都在同一个设备中。由于它们不同,有些发送数据的频率很高,有些则很少。例如,我有一个几乎每秒发送数据的温度传感器和一个仅在出现问题时才发送数据的 'fault' 传感器。

{
  "deviceId": "Oven0000",
  "data": {
    "h": 41.6,
    "utctime": 1502222544044
  }
}

从上面的例子可以看出,我只保存了一个"h"参数和一个"utctime",而不是整个设备状态。

{
 "deviceId": "Oven0000",
 "data": {
  "utctime": 1502269142953,
  "A": 17,
  "F": true,
  "G": false,
  "I": true,
  "J": true,
  "K": true,
  "W": false,
  "a": 11,
  "b": 4,
  "c": 0,
  "e": false,
  "f": true,
  "g": 14,
  "h": 60.3,
  "q": 1,
  "r": 1,
  "t": 1,
  "x": true,
  "z": true
 }
}

此示例是添加了所有数据的完整状态。

所有这些信息然后从 Watson IOT 发送到 Cloudant 实例,在该实例中它自动保存在按月索引的数据库中。现在我只有一个后端,负责从 Cloudant 获取所有文档,将整个设备状态添加到每个文档,并将其发送到前端,然后前端将它们可视化(参见上面的示例)。

后端使用 NodeJS 编写,而前端使用 Vue.js 和一些图形库编写。

现在,我想对我的文档实施某种数据分析,但不是存储在 Cloudant 数据库中的那些,因为它们只有单个值。相反,我想对后端创建的那些具有设备完整状态的那些进行分析。

我想过有一个辅助数据库,也许是一个关系数据库,我可以从后端发送我解析的数据并进行一些查询。

您如何看待这种做法?有更好的解决方案吗?您会推荐一些其他类型的 DBMS 吗?

您是否考虑过使用 Watson IoT Platform 的 Data Management 功能来为您维护设备状态?此功能允许您使用 JSON 架构定义状态结构,并定义将来自不同入站事件的数据聚合到状态的单个视图中的映射。