数据库数据分类压缩算法研究

2021-07-02 12:22顾明
电子测试 2021年11期
关键词:压缩算法基准值连续型

顾明

(阜新高等专科学校,辽宁阜新,123000)

0 引言

随着现代网络技术的深入发展与应用,大量的信息数据随之产生,这些数据包含许多有价值信息需通过进一步挖掘分析以供使用,促使处理大规模数据的相关技术不断发展完善,已经成为研究大数据处理领域的重点之一,在优化解决大数据处理方面,数据流分类压缩并行算法表现出了较大的应用优势。

1 需求分析

物联网发展及功能的实现产生大量实时数据,这些数据需作为历史数据被保存下来以供后续使用,直接存入数据库的方式在降低数据库实时性的同时需较大的存储空间,增加了数据库的压力及用户对数据的使用难度。实时记录和查询数据是实时数据库的基本功能,数据规模不断扩大的实时数据库对所使用到的数据压缩算法的要求不断提高,实现对数据高效准确的压缩和解压过程,对大量数据进行存储的实时数据库通常需并行采取多种存储方式完成。在现有压缩技术研究成果中,目前以旋转门算法、PPM压缩算法较为常用,但普遍存在有损压缩的问题,无法满足高精度的数据存储要求。为此本文主要对实时数据库中的数据压缩算法进行了研究,设计了一种无损数据压缩方案,以期更好的为生产活动服务。

2 数据压缩算法设计

2.1 数据的划分

针对实时数据库需以被压缩数据特点为依据对压缩算法进行设计,实时数据库数据主要可划分为:(1)表示采集数据时间的时间戳,通过将时间戳添加到各次采集的数据上可使决策的准确率得以有效提升,通常以具体应用场景为依据对自定义系统采集的时间戳。时间戳跳变对整体性影响较小,时间戳在固定的数据采集周期下通常呈现出等差数列形式,不连续的跳变的时间戳表现形式通常代表数据传输失败,大部分数据均可成功传输。(2)用于判断数据采集信息工作状态的质量码,为满足物联网发展需求,数据质量码在此基础上包含了多种信号状态,在实时数据库中,数据质量码以少数的固定值为主,不同状态对应使用不同的数值表示,例如在系统数据处于正常状态的情况下,质量码的存储特征通常用0表示,并在发生变化后通常会持续一段时间。(3)作为实时数据库的主要构成部分数值包含bool型、离散型、连续型等在内的多种类型,其中bool型数值包括0和 1两种,根据不同数据精度,连续型数值的表示方式需使用到不同长度的数值对数据精度的要求越高表示其具体数值的位数越长[1]。

2.2 数据压缩算法的设计

本文针对时间戳和质量码,在压缩处理实时数据库数据的过程中,为提升数据传输及查询效率,首先对数据进行预处理,将数据按上文所述分为时间戳、质量码和数值,其中的时间戳和质量码采用RLE 算法;数值需做进一步的数据分析处理,数值型数据中选用采用LZW算法作为bool型数据的压缩算法,综合运用LZW及LZ78算法作为连续型及离散型数据的压缩算法,实现了不同类型数据的压缩过程。

(1)时间戳和质量码的压缩

先确定代表某个时间戳的基准值,并将其存入数据库中,再通过处理其他记录的时间戳获取一个差值的序列,然后比较序列力相邻的两个时间戳差值的大小,记录差值相等的次数,然后读入下一个数据,对差值不相等情况下的差值及差值相等次数进行记录后在开始对下一个差值进行读入操作,考虑到时间戳的惯用格式,其两个相邻差值的级别通常较小,存储时间戳的差值时可使用 1 个字节。在存储差值时,通过单字节匹配的方式执行RLE 算法完成。

(2)数值的压缩

本文使用简单的二进制的bit位对bool类数值的压缩过程进行表示。压缩处理连续型和离散型数值时,将数据切割为相互独立的单个字节以满足LZ系列压缩算法处理需求时,会导致原有数据的完整性被破坏,所以本文算法在数据压缩过程对数值之间的关系进行考虑,对于连续型数值实际实验证明了一段时间内其数据的波动性较小,以所获取的差值为依据对差值的压缩值进行计算,在记录值同基准值间差值超长预设范围的情况下将该记录值选做新基准值,据此完成对后来记录的差值的计算。先完成相关值的初始化选择和设置,包括基准值和一个固定值的差值范围,接下来对字典进行初始化,根据经过预处理的数据类型,完成对当前记录值同基准值间差值的计算,并据此判断字典中是否含有当前差值;否则找出该字符串对应索引过程,通过LZ78算法的使用完成对不同基准值的压缩过程,具体流程如图1所示,从而使连续型数据实现快速有效的压缩处理过程[2]。

图1 数值压缩算法流程

3 性能测试

具体实验结果如表1所示。本文通过使用智能温湿度控制系统提供测试环境及数据,该系统对棚内的温度和湿度使用传感器完成采集后向控制中心传送所采集到的数据,再通过系统的智能控制算法完成对棚内环境的智能控制过程,环境传感器采集周期为20 ms,系统采集参数属性包含4个等级,阳光强度(15级)为离散值,温度值为一个连续数值即(-3℃~42℃)间,湿度值(2000)为一个连续数值,当前调节传感器开关的数量为1000,以该环境中的数据(共包括4000 个点)作为实验对象采用本文算法所获取的压缩值如表2所示,实验结果表明该算法压缩时间戳和质量码的效果较好,更适用于离散数值的压缩过程。实时数据库压缩算法同本文压缩算法的实验对比结果如表3所示,本文算法压缩结果同原始压缩比例基本一致,由于原始压缩算法属于有损压缩导致一部分数据被丢失,本文算法的无损压缩过程更能满足实际工业应用需求。通过实时性较的RLE算法的使用实现了压缩时间的显著降低,有损压缩虽能降低解压时间但会损失部分数据,所以可,本文算法兼顾了解压质量和效率,能更好的满足实时数据库的需求[3]。

表1 算法的压缩性能对比结果

表2 4000个点的历史数据

表3 压缩算法的性能对比

4 结束语

目前使用的实施数据库大多能对历史数据进行长时间的保存,但随着实际应用中数据规模的不断增加,占用较大存储空间的直接存储模式明显降低了传输及后续查询效率,为解决数据库中大量数据的存储问题,本文完成了分类的数据压缩算法的设计,在提高数据压缩的同时实现了实时数据库数据的无损存储,经实验测试本文方法取得了良好的数据压缩及存储效果,进一步提高了数据库的实时性功能,并使数据库的实际存储容量得以显著提升。

猜你喜欢
压缩算法基准值连续型
上海海岸带沉积物地球化学基准值特征
思维建模在连续型随机变量中的应用
基于5G用户体验的业务质量优化模型研究及其应用
基于参数识别的轨道电路监测数据压缩算法研究
连续型美式分期付款看跌期权
一种基于改进差分的测井数据可逆变长码压缩方法
一种基于嵌入式实时操作系统Vxworks下的数据压缩技术
基于晶圆优先级的连续型Interbay搬运系统性能分析
PMU数据预处理及压缩算法
关于二维连续型随机变量函数分布的推广和运算