实时数据库中的二级压缩技术

数据库 其他数据库
实时数据库是数据库系统发展的一个分支,是数据库技术结合实时处理技术产生的。 本文中将为大家带来实时数据库中的二级压缩技术。

导读:实时数据库而言,数据压缩可以带来两方面的好处:占用硬盘容量减小、系统整体处理速度提高。随着计算机硬件水平的提高,硬件成本在整个系统投入的比重逐步下降,硬盘容量不再是实时数据库中最主要的矛盾,但对系统整体处理速度及性能的追求,还是非常重要的。下文中就是实时数据库中二级压缩技术的讲解。

压缩比例的提高,对实时数据库的整体性能的提高有很大的推动作用(但不一定成正比),因此,有必要分析一下,能否对已经进行有损压缩处理的数据进行二级压缩。
如何进行二级压缩?
从刚才分析的情况,大家很可能就得出结论,行呀,先通过有损压缩,将点数由52个变成6个,再对剩下的6个点进行编码,再进行哈佛曼压缩或别的什么压缩,不就行了?
哈佛曼压缩的特点是,将那些经常使用的字母用较小长度的字节表示,这在文本和字符串压缩中会有比较大的效果,比如英文那个e就是用得很多的,而汉字中的五笔字型也有一级编码、二级编码等,也就是说,它们具有可压缩的余地。
如果大家对随机的数据点,比如刚才6个数据点,采用哈佛曼或其它无损压缩试验,会发现压缩率不会特别地高,也就是说,再次进行无损压缩的意义已经不是特别地大。 难度就没有别的办法了?办法还是有的,要完整地表达测点的一个数据,需要包括以下四个字段:
测点ID
时间戳
质量戳

其中,同一测点的多个数据可以保存在一起,因此,测点ID可以不考虑。还剩下三个字段,仔细分析一下这三个字段的特性,还是有很多文章可做的。

先考虑“值”字段,我们采用8字节的双精度数来表示一个模拟量,这里就存在一个由低精度值来表示高精度值的可能。如果一批数据中,全部(或大部分)数据都可以由4个字节(或2个字节)来表示精度误差范围内的8字节双精度数,便可以节省下很多空间了。
当然,如果我们能明确地知道某数据的精度范围,便可直接在配置环境下选择最合适的数据类型,而不必要一定要选择双精度数。

对于值,还有另一种压缩思路,在流程工业中,某值的绝对值可能非常大,但如果该值在某时间段时的变量范围在某个精度范围内,也可以采用基准值+变化值的方式保存值,其中基准值只保存一次,而变化值用低精度值表示。

质量戳

质量戳是慢变化量,如果不与值共同保存,则可以有很高的压缩比。但如果不共同保存,则需要考虑查找的索引方式,这是一笔额外的空间开销。

时间戳

对于时间戳,也可以按照值相类似的方式来考虑。
首先,那个毫秒字段,不一定是每个系统每个测点都需要的。再者,两个时间之间的相差值,在大部分情况下,不会超过1天的,这个就可以采用简化表示。还有,现在的系统,肯定不需要再处理时间为2000年以前的时间了。
以上只是分析,在实际系统中,还需要考虑这些因素的制约关系,解压的难度和时间度,索引建立的方便性,以及编程的复杂度。希望上文中涉及到的内容对大家能够有所帮助。

【编辑推荐】

  1. 实时数据库管理系统
  2. 内存数据库在联通BSS账务处理系统中的应用
  3. 数据库虚拟化的性能核心
  4. 黑客入侵数据库的途径
责任编辑:迎迎 来源: 比特社区
相关推荐

2011-06-07 17:01:44

2020-09-21 11:30:28

CanalMySQL数据库

2011-06-07 17:14:15

关系型数据库压缩技术

2017-06-12 18:24:25

数据库压缩技术

2024-10-30 08:15:18

2012-04-13 13:46:27

SAPHANASybase

2011-02-28 17:00:50

ACCESS数据库

2020-03-18 16:15:21

亿级搜索数据

2013-04-27 15:22:26

大数据全球技术峰会

2011-03-28 09:27:52

数据库压缩日志

2018-01-10 09:10:10

数据库阿里实时监控

2020-04-28 11:04:51

数据架构互联网Flink

2011-03-25 09:29:03

算法数据库

2021-11-18 15:08:19

MySQLSQL索引

2019-04-30 10:42:01

数据库时序数据库TSDB

2021-10-25 15:25:38

MySQL索引数据库

2009-09-21 17:17:11

Hibernate二级

2024-10-18 08:17:09

Doris数据仓库

2024-07-25 08:12:11

2024-02-19 00:06:06

数据分析系统Doris
点赞
收藏

51CTO技术栈公众号