正弦实时数据库(SinRTDB)的使用(9)-有损压缩

前文已经将正弦实时数据库的使用进行了介绍,需要了解的可以先看下面的博客:

正弦实时数据库(SinRTDB)的安装

正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据

正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据

正弦实时数据库(SinRTDB)的使用(3)-用户管理

正弦实时数据库(SinRTDB)的试用(4)-快照查询

正弦实时数据库(SinRTDB)的使用(5)-历史数据查询

正弦实时数据库(SinRTDB)的使用(6)-历史插值查询

正弦实时数据库(SinRTDB)的使用(7)-历史统计查询

正弦实时数据库(SinRTDB)的使用(8)-过滤查询

若需要试用正弦实时数据库产品的小伙伴欢迎私聊...

本篇博客主要向大家介绍有损压缩,没有工业流程控制相关从业经历的技术人员可能不会理解,作为一款数据库不应该是我存入多少条数据,数据库中就应该存在多少条数据。为什么数据库会将存储的数据条数变少呢?

想想这样的场景:每秒采集一次锅炉中的温度保存到数据库中,一天需要存储86400条数据,通常这些数据都在缓慢变化或在一个小范围内波动,而且根据业务场景的不同这些数据可以存在一些误差比如:50.15 ℃ 还是 50.23℃ 在很多业务上不会产生影响。所以我们可以根据不同的采集量设定可以允许的误差范围降低需要存储的数据总量。

0、环境准备

  1. 安装正弦实时数据库。
  2. 添加测试表demo。
  3. 在表demo中创建两个float类型的标签点tag01和tag02。
  4. 设置标签点tag01开启有损压缩,压缩偏差为1(我们可以接受1以内的误差)。
  5. 设置标签点tag02关闭有损压缩。

配置好后标签点表如下所示:

标签点配置信息如下所示:

我们准备分别向tag01和tag02两个标签点写入5条数据分别是(50.17,50.43,50.64,50.75,51.192) 每条数据的时间戳间隔一秒。

1、数据写入

1.1、写入第一条数据

执行如下SQL,分别向两个标签点写入数据:

查询标签点快照数据如下:

1.2、写入第二条数据

执行如下SQL,分别向两个标签点写入第二条数据:

查询标签点快照数据如下:

1.3、写入第三条数据

执行如下SQL,分别向两个标签点写入第三条数据:

查询标签点快照数据如下:

1.4、剩余数据的写入

依次执行对应的SQL写入后面的两条数据

2、比较两个标签点的历史存储值

2.1、查询标签点 demo.tag01 历史存储值

可以看到在这段时间内标签点 demo.tag01只存储了两条数据。

2.2、查询标签点 demo.tag02 历史存储值

可以看到在这段时间内标签点demo.tag02存储了所有的五条数据。

3、比较两个标签点的历史存储插值

由于标签点demo.tag01开启了有损压缩导致这段时间内存储值变少了,但是在实际的业务中怎么能将压缩掉的数据查询出来呢?正弦实时数据库提供插值查询,插值查询结果如下所示:

通过与标签点demo.tag02的历史数据进行对比,五条数据的误差分别是(0, 0.0045, 0.041, 0.1865,0)均小于允许的误差范围。

4、结论

  • 有损压缩不会影响快照值(依然能够及时的将最新的数据展示在大屏上)。
  • 有损压缩能够极大的降低数据的存储量,减少长时间数据存储的占用空间。
  • 可以通过插值查询,获取被压缩的值(压缩值会存在一定的误差,但是处于允许接受的精度范围内)
  • 实际应用中可以根据业务需求设置压缩偏差来降低数据的存储量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MES系统怎么解决车间生产调度难的问题?

MES系统三个层次 1、MES决定了生产什么,何时生产,也就是说它使公司保证按照订单规定日期交付准确的产品; 2、MES决定谁通过什么方式(流程)生产,即通过优化资源配置,最有效运用资源; …

关于SVG格式图片实现室内地图

SVG格式图片 可缩放矢量图形(Scalable Vector Graphics,SVG)基于 XML 标记语言,用于描述二维的矢量图形。 作为一个基于文本的开放网络标准,SVG 能够优雅而简洁地渲染不同大小的图形,并和 CSS、DOM、JavaScript 和 SMIL 等其他网络标准无缝衔接。本质上,SVG 相对于图像…

C++多线程:线程的创建、join、detach、joinable方法(二)

1、线程的开始与结束 程序运行起来,生成一个进程,该进程所持有的主线程开始自动运行,main主线程运行完所有的代码从main函数中返回表示整个进程运行完毕,标志着主线程和进程的死亡,等待操作系统回收资源,因…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格,角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格,角度不拉伸 点击编辑,拖拽到可变区域 问题2、BlockInputEvents 防止透屏

【独立开发前线】Vol.26 【独立开发产品】吉光卡片-让你的文字变得酷炫起来

今天给大家分享一下 独立开发前线 社区成员张小吉 的作品 吉光卡片; 这是一款iOS的APP,下载:吉光卡片,主要功能是帮你制作酷炫的文字卡片,用精美的卡片让你的文字生动起来。 展示效果如下: 你可以用它制作…

【公示】2023年度青岛市级科技企业孵化器拟认定名单

根据《青岛市科技企业孵化器管理办法》(青科规〔2023〕1号)(以下简称《管理办法》)、《关于开展2023年度市级科技企业孵化器认定申报工作的通知》,经申报受理、区市推荐、形式审查、专家评审及现场核查等程序&#xff…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

BasicVSR++模型转JIT并用c++libtorch推理

BasicVSR模型转JIT并用clibtorch推理 文章目录 BasicVSR模型转JIT并用clibtorch推理安装BasicVSR 环境1.下载源码2. 新建一个conda环境3. 安装pytorch4. 安装 mim 和 mmcv-full5. 安装 mmedit6. 下载模型文件7. 测试一下能否正常运行 转换为JIT模型用c libtorch推理效果 安装Ba…

malloc是如何分配内存|malloc(1)分配多大内存|free释放内存,会还给操作系统吗?

前言 大家好, 我jiantaoyab,这篇文章给大家介绍mallo和free面试中常问到的问题。 malloc是如何分配内存的? 如果用户分配的内存小于128KB,则通过brk()申请内存 如果用户分配的内存大于128KB,则通过mmap()申请内存 简…

数据分析之POWER Piovt的KPI设置

内容总结: 1.两个表格关联不上:需要添加辅助列,建立关联 2.添加辅助列后还关联不上:将虚线变为实线 3.根据需求要增加一些度量值 4.设置KPI后,绝对值选1后设定百分比 5.在透视表里面加入KPI状态 导入所关联的数据后建立…

游戏领域AI智能视频剪辑解决方案

游戏行业作为文化创意产业的重要组成部分,其发展和创新速度令人瞩目。然而,随着游戏内容的日益丰富和直播文化的兴起,传统的视频剪辑方式已难以满足玩家和观众日益增长的需求。美摄科技,凭借其在AI智能视频剪辑领域的深厚积累和创…

SQLBolt,一个练习SQL的宝藏网站

知乎上有人问学SQL有什么好的网站,这可太多了。 我之前学习SQL买了本SQL学习指南,把语法从头到尾看了个遍,但仅仅是心里有数的程度,后来进公司大量的写代码跑数,才算真真摸透了SQL,知道怎么调优才能最大化…

SpringBoot登录校验(三)

​​​​​​​SpringBoot 登录认证(一)-CSDN博客 SpringBoot 登录认证(二)-CSDN博客 SpringBoot登录校验(三)-CSDN博客 前面我们介绍了传统的会话跟踪技术cookie和sesstion,本节讲解令牌技术…

Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装

文章目录 前言一、卸载本地 gnuradio二、安装 UHD 驱动三、编译及安装 gnuradio四、验证 前言 本地 Ubuntu 环境的 gnuradio 是按照官方指导使用 ppa 的方式安装 uhd 和 gnuradio 的,也是最方便的方法,但是存在着一个问题,就是我无法修改底层…

HarmonyOS实战开发-如何实现一个简单的电子相册应用开发

介绍 本篇Codelab介绍了如何实现一个简单的电子相册应用的开发,主要功能包括: 实现首页顶部的轮播效果。实现页面跳转时共享元素的转场动画效果。实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 Swiper:滑块视图容…

java多线程中的阻塞队列

一、普通不阻塞队列 还记得队列我们如何实现吗?我们用的是循环队列的方式,回一下: 描述:开始tail和head指针都指向最开始位置,往里面添加元素tail,出元素head 初始状态: put元素后状态 take…

账号微服务短信验证码发送工具单元测试

账号微服务短信验证码发送工具单元测试 注意sms的 app-code #----------sms短信配置-------------- sms:app-code: dd7829bedfaf4373875aa91abba82523template-id: JM1000372package net.xdclass.config;import org.springframework.context.annotation.Bean; import org.spri…

ROS 2边学边练(4)-- 何为主题(topics)

概念 主题是一种节点间的通信方式,某个节点充当发布特定(主题)消息(数据)的角色,另外一些节点则可以订阅接收该特定(主题)消息(数据)。两者&#xff0…

在ubuntu上搭建系统监控系统

大纲 数据生产方安装和运行验证 数据收集、存储和分发方下载和解压修改配置运行验证 数据消费方下载和运行验证新增数据源新增看板关联看板和数据源效果展现 参考资料 在一个监控系统中,一定会有“数据生产方”和“数据消费方”存在。“数据生产方”用于产出需要监控…

Android MediaRecorder

AndroidManifest.xml中添加权限标记 <uses-permission android:name"android.permission.RECORD_AUDIO"/> 动态添加权限MainActivity requestPermissions(new String[]{Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO},100); 创建MediaReco…