基于动态压缩的数据存储方法、系统及电子设备与流程
本技术涉及车辆数据存储,具体涉及一种基于动态压缩的数据存储方法、系统及电子设备。
背景技术:
1、随着车联网技术的快速发展,汽车在行驶过程中会产生包含定位信息、车辆总线状态、环境感知等车辆行驶数据,这些数据存在高并发、高时序以及多维度等特点,其中,为了支持驾驶行为分析与车况预警,该数据流通常需要经过数据压缩处理后,在云端数据库中进行持久化存储,但由于数据存储架构的限制,电子设备通常采用单一固定的压缩算法对车辆行驶数据进行统一打包,并发送至数据库,而数据库在接收到数据包后,必须先消耗算力将其解压,并根据解压提取得到的时间戳等属性分配物理存储分区,再进行格式转换与持久化存储。
2、但是,汽车行驶数据的特征是动态变化的,采用静态的压缩策略无法兼顾不同车辆行驶数据对压缩率、写入延迟的差异化需求,适配性较低,压缩效果不好,而且,数据压缩端和数据库端之间缺乏协同,导致数据库在数据写入阶段还需要承担数据提取、分区匹配等数据处理任务,消耗数据库的算力资源,并造成数据写入延迟,最终导致车辆数据的存储效率较低,无法满足高并发实时分析的业务需求。
技术实现思路
1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
2、鉴于以上所述现有技术的缺点,本技术提供一种基于动态压缩的数据存储方法、系统及电子设备,以提高车辆数据的存储效率。
3、第一方面,本技术提供了一种基于动态压缩的数据存储方法,包括:获取目标数据库所支持的压缩算法库,其中,所述压缩算法库包括多个原始压缩算法;响应于时序数据流,通过对所述时序数据流进行特征提取,得到数据压缩特征,其中,所述数据压缩特征用于评估所述时序数据流的压缩需求;按照预设的算法匹配规则,根据所述数据压缩特征从所述压缩算法库中匹配得到满足所述压缩需求的目标压缩算法,并为所述时序数据流分配存储分区标识;通过所述目标压缩算法对所述时序数据流进行压缩,得到目标压缩包,并将所述目标压缩包和所述存储分区标识发送至所述目标数据库,以触发所述目标数据库将所述目标压缩包存储在所述存储分区标识所表征的目标存储分区。
4、于本技术一实施例中,响应于时序数据流之前,所述方法还包括:接收车辆终端的车辆行驶数据,其中,所述车辆终端包括远程信息处理器,所述远程信息处理器用于对所述车辆终端进行数据采集,得到车辆行驶数据;根据所述车辆行驶数据生成时序数据流,并对所述时序数据流进行数据预处理,其中,所述数据预处理包括数据清洗和/或数据对齐。
5、于本技术一实施例中,通过对所述时序数据流进行特征提取,得到数据压缩特征,包括以下至少一种:若所述时序数据流的数据类型为数值型,则根据所述时序数据流统计数据标准差和数据平均值,并根据所述数据标准差和所述数据平均值,将计算得到的数据波动系数作为数据压缩特征,其中,所述数据标准差和所述数据波动系数之间呈正相关关系,所述数据平均值和所述数据波动系数之间呈负相关关系;若所述时序数据流的数据类型为位置型,则根据所述时序数据流统计重复数据量和总数据量,并根据所述重复数据量和所述总数据量计算,将计算得到的空间冗余度作为数据压缩特征,其中,所述重复数据量和所述空间冗余度之间呈正相关关系,所述总数据量和所述空间冗余度之间呈负相关关系;若所述时序数据流的数据类型为环境型,则根据所述时序数据流统计零差分数据量和总数据量,并根据所述零差分数据量和所述总数据量进行计算,将计算得到的时间冗余度作为数据压缩特征,其中,所述零差分数据量和所述时间冗余度之间呈正相关关系,所述总数据量和所述时间冗余度之间呈负相关关系。
6、于本技术一实施例中,通过以下方式获取算法匹配规则:获取各所述原始压缩算法分别对应的算法特征,其中,所述算法特征包括压缩编码效率、数据解压速率、数据压缩率和数据损失率中的至少一种;从所述算法特征中确定数据冗余度对应的冗余度相关特征、所述数据波动系数对应的波动系数相关特征,其中,所述数据冗余度包括所述空间冗余度和/或时间冗余度,所述冗余度相关特征包括所述数据压缩率和/或所述数据解压速率,所述波动系数相关特征包括所述数据压缩率、所述压缩编码效率和所述数据损失率中的至少一种;建立所述数据冗余度和所述冗余度相关特征之间的第一匹配关系、所述数据波动系数和所述波动系数相关特征之间的第二匹配关系,以根据所述第一匹配关系和所述第二匹配关系生成算法匹配规则。
7、于本技术一实施例中,根据所述数据压缩特征从所述压缩算法库中匹配得到满足所述压缩需求的目标压缩算法,包括:从所述压缩算法库中确定高冗余算法、高波动算法和低波动算法,其中,所述高冗余算法的数据解压速率大于所述高波动算法的数据解压速率,所述低波动算法的数据压缩率大于所述高波动算法的数据压缩率,所述高波动算法的压缩编码效率大于所述低波动算法的压缩编码效率;若所述时序数据流的数据冗余度大于或等于预设的冗余度阈值,则将所述高冗余算法作为所述时序数据流的目标压缩算法;若所述时序数据流的数据冗余度小于所述冗余度阈值,且所述时序数据流的数据波动系数大于或等于预设的波动系数阈值,则将所述高波动算法作为所述时序数据流的目标压缩算法;若所述时序数据流的数据冗余度小于所述冗余度阈值,且所述时序数据流的数据波动系数小于所述波动系数阈值,则将所述低波动算法作为所述时序数据流的目标压缩算法。
8、于本技术一实施例中,为所述时序数据流分配存储分区标识,包括:获取所述目标数据库的存储分区信息,并获取所述时序数据流的时间戳;根据所述存储分区信息生成所述时间戳对应的存储分区标识,并建立所述时序数据流和所述存储分区标识之间的关联关系。
9、于本技术一实施例中,将所述目标压缩包和所述存储分区标识发送至所述目标数据库,包括:根据所述存储分区标识、所述目标压缩算法所对应的算法类型标识生成所述目标压缩包对应的元数据;根据所述元数据和所述目标压缩包调用所述目标数据库的预设存储接口;其中,所述预设存储接口用于根据所述元数据中的存储分区标识,将所述目标压缩包和所述元数据发送至所述目标存储分区对应的后端存储节点;其中,所述后端存储节点用于根据所述元数据中的算法类型标识调用所述目标压缩算法,以对所述目标压缩包进行完整性校验,并在完整性校验通过之后,将所述目标压缩包存储在所述目标存储分区。
10、于本技术一实施例中,所述方法还包括:通过对所述目标数据库进行数据采集,得到数据库运行指标,其中,所述数据库运行指标包括数据压缩率、分区存储占用率、数据写入延迟和数据查询延迟中的至少一种;若所述数据库运行指标未满足预设的性能评估条件,则以提高所述数据库运行指标作为优化目的,对所述算法匹配规则进行优化。
11、第二方面,本技术还提供了一种基于动态压缩的数据存储系统,包括:获取模块,用于获取目标数据库所支持的压缩算法库,其中,所述压缩算法库包括多个原始压缩算法;特征模块,用于响应于时序数据流,通过对所述时序数据流进行特征提取,得到数据压缩特征,其中,所述数据压缩特征用于评估所述时序数据流的压缩需求;匹配模块,用于按照预设的算法匹配规则,根据所述数据压缩特征从所述压缩算法库中匹配得到满足所述压缩需求的目标压缩算法,并为所述时序数据流分配存储分区标识;发送模块,用于通过所述目标压缩算法对所述时序数据流进行压缩,得到目标压缩包,并将所述目标压缩包和所述存储分区标识发送至所述目标数据库,其中,所述目标数据库用于将所述目标压缩包存储在所述存储分区标识所表征的目标存储分区。
12、第三方面,本技术还提供了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如上述的方法。
13、本技术的有益效果:
14、通过获取目标数据库支持的包含多个原始压缩算法的压缩算法库,并对时序数据流进行特征提取得到用于评估压缩需求的数据压缩特征,以根据该数据压缩特征动态匹配适合的目标压缩算法,通过目标压缩算法进行压缩得到目标压缩包,并将目标压缩包连同分配的存储分区标识一并发送至目标数据库,以触发目标数据库直接将其存储至对应的目标存储分区中。这样,通过提取到的数据压缩特征动态匹配满足压缩需求的压缩算法,提高数据压缩的灵活性和适配性,优化了车辆数据的压缩效果,并在目标数据库接收到目标压缩包之前就分配了存储分区标识,使得目标数据库能够直接根据存储分区标识存储目标压缩包,无需数据库执行格式转换、分区匹配等数据处理环节,减少数据库的存储耗时,基于以上两方面,提升车辆数据的存储效率。