前文已经将正弦实时数据库的使用进行了介绍,需要了解的可以先看下面的博客:
正弦实时数据库(SinRTDB)的安装
正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据
正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据
正弦实时数据库(SinRTDB)的使用(3)-用户管理
正弦实时数据库(SinRTDB)的试用(4)-快照查询
正弦实时数据库(SinRTDB)的使用(5)-历史数据查询
正弦实时数据库(SinRTDB)的使用(6)-历史插值查询
正弦实时数据库(SinRTDB)的使用(7)-历史统计查询
正弦实时数据库(SinRTDB)的使用(8)-过滤查询
正弦实时数据库(SinRTDB)的使用(9)-有损压缩
若需要试用正弦实时数据库产品的小伙伴欢迎私聊...
继上一篇有损压缩后,本篇博客来介绍数据文件的无损压缩,无损压缩使用通用的压缩算法zlib将数据文件进行压缩,不会损失数据的精度但是会大大降低数据文件的大小。对于需要保存特别长时间历史数据的场景非常实用。
1、无损压缩的工作方式
在正弦实时数据库中,每天的数据使用一个单独的文件进行存储。在工业设备的数据存储场景下,数据写入后就不会再更新(由于某些原因补历史数据除外)所以我们可以设定一个时间参数(例如:1天)若超过设定的时间(比如1天前的数据)则可以将该数据文件进行压缩。
2、配置正弦实时数据库启用数据文件的无损压缩
在配置文件config.ini中(windows系统在执行文件同级目录下,Linux系统在/etc/sinrtdb 目录下)
通过上面的配置,正弦实时数据库在合适的时间便会将超过设置时间的数据文件进行压缩。
3、一个压缩的实例
下图是一个测试数据库的压缩文件和未压缩文件的对比,该数据库关闭有损压缩每秒写入3000个float数值,每天未压缩的数据文件 2,944MB 压缩后 439MB 压缩后只有压缩前的15%大大节省了存储空间,实际上松果实时数据库在进行压缩的时候还会进行整理。故而压缩后的数据查询性能更高!
4、总结
在实际场景中适当配置有损压缩和无损压缩能够将数据压缩到原始大小的几十倍甚至上百倍。并且能够提高查询性能。