我将解释我目前正在进行的项目,请耐心等待,因为英语不是我的第一语言。
我正在开发的项目涉及一系列连接到服务Watson IOT的设备,它们定期(大约每秒一次,但不是一个恒定的刷新率)发送数据。我所谈论的数据来自许多传感器,它们彼此非常不同并且都在同一个设备中。由于它们不同,有些非常频繁地发送数据而其他一些非常罕见。例如,我有一个温度传感器,它几乎每秒发送一次数据并且出现“故障”。只有在出现问题时才会发送数据的传感器。
{
"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 DB中的数据分析,因为它们只有单个值。相反,我想分析后端创建的那些,以及具有设备完整状态的那些。
我想过有一个辅助数据库,也许是一个关系数据库,我可以从后端发送解析后的数据并进行一些查询。
您如何看待这种方法?有更好的解决方案吗?你会推荐一些其他类型的DBMS吗?
答案 0 :(得分:0)
您是否考虑过使用Watson IoT Platform的Data Management功能来维护设备的状态?此功能允许您使用JSON模式定义状态结构,并定义将来自不同入站事件的数据聚合到状态的单个视图中的映射。