前面说过实时数据库比较合适应用在数字孪生系统上,本篇就来对比一下数字孪生系统各种数据存储的应用方案的优缺点,几种典型的数据存储方式如下所示:
- 方案一:Redis+MySQL/MongoDB
- 方案二:MongoDB
- 方案三:时序数据库
- 方案四:实时数据库
这里我们隐去了整个架构上相似的部分,比如:数据接入,数据展示等,仅用来对比各种数据存储方案的优缺点。
方案一:Redis+MySQL/MongoDB
这个方案比较典型,采集到的设备数据先写入Redis,需要写程序在合适的时机(定时存储或变化存储)将数据写入MySQL/MongoDB。由于并非将所有数据都存储导致历史数据查询较复杂。
- 数据更新频率:高(毫秒级,可以只更新Redis中的数据)
- 数据存储空间:中等
- 系统复杂度:高,需要场景定制开发(数据存储机制、历史数据查询等)
方案二:MongoDB
这种方案比较简单,采集到的设备数据直接写入MongoDB,系统复杂度较低,但是MongoDB支持的数据量有限导致数据更新频率较低。
- 数据更新频率:低(5秒/10秒 以上)
- 数据存储空间:高
- 系统复杂度:中,不需要场景定制开发
方案三:时序数据库
这种方案也比较简单,但是时序数据库普遍比MongoDB支持的数据量更大,所以数据更新频率更高。系统也不需要针对场景进行定制开发,系统复杂度中等。
- 数据更新频率:中(1秒级)
- 数据存储空间:中(一般时序数据库都有无损压缩,能降低数据存储空间)
- 系统复杂度:中,不需要场景定制开发。
方案四:实时数据库
这种方案也比较简单,但是实时数据库普遍支持有损压缩+无损压缩,系统能支持更高的更新频率并将极大压缩数据存储空间。系统同样不需要针对场景进行定制开发,系统复杂度中等。
- 数据更新频率:高(毫秒级)
- 数据存储空间:低(有损压缩+无损压缩)
- 系统复杂度:中,不需要场景定制开发。