一种基于自动化的列式存储自适应数据压缩系统
文献发布时间:2024-04-18 20:02:18
技术领域
本发明涉及数据压缩存储技术领域,更具体的说是涉及一种基于自动化的列式存储自适应数据压缩系统。
背景技术
针对大数据分析数据的需求不断增多,批量数据的处理以及查询不断增加的情况,为了简化数据建模的复杂性,越来越多的传统行数据库加入了列式存储的模式。在列式存储系统中,数据以列为单位进行存储,相同列中的数据类型相同或相似,不同列之间的数据类型可能不同。对于海量数据,列式存储和数据压缩是节省存储空间、加快磁盘读写速度、提升网络传输效率的重要手段。
现有公告号为CN107465413B的中国专利公告授权了一种自适应数据压缩系统及其方法,其包括:两两相互连接的时间控制模块,根据时间分片阈值对时间进行分片;热度判断模块,用于记录当前时间片各数据的访问频率,当时间片结束时,对所有数据按照访问频率进行热度判断;压缩及解压缩控制模块,用于当前时间片开始时,遍历所有数据。本发明克服了现有存储系统中压缩方法不灵活的缺点,使得数据在合理的压缩率被压缩,既能够提升空间利用率,又能够提升读写性能,使得系统因压缩产生的收益远大于因压缩产生的代价。
上述现有技术的方法虽然能够提升压缩方法的灵活性,但是仍然难以满足现有多样化数据的自适应压缩需求,并且对于每次同类型的数据都需要经过相同的判断模块,压缩速度受限,对比本发明提供一种自动化的列存储自适应数据压缩系统对数据进行分类并压缩。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种面料分条加工工艺及系统,该。
为实现上述目的,本发明提供了如下技术方案:。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
作为本发明的进一步改进,。
本发明的有益效果:
通过。
附图说明
图1为本发明实施例提供的基于自动化列存储的自适应数据压缩系统的流程图;
图2为本发明实施例提供的基于自动化列存储的自适应数据解压缩的流程图。
具体实施方式
为了使得本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本发明实施例的以下说明清楚且简明,本发明省略了已知功能和已知部件的详细说明。
参考图1至2所示,为本发明一种基于自动化的列式存储自适应数据压缩系统的具体实施方式,具体包括以下内容:
本发明是一种基于自动化的列式存储自适应数据压缩系统,通过计算机程序实现,主要包括四大模块:元数据管理、全量压缩算法集合库、特征压缩算法集合库和自适应压缩预测引擎,各模块的具体功能包括:
元数据管理模块,包括字段名、字段类型、数据分区、数据所在位置、使用的压缩算法、压缩前数据大小、压缩后数据大小、压缩率、压缩数据字典等信息,用于保存各数据表的字段信息、数据存储信息及其他信息。
特征压缩算法集合库,存储了不同数据分布及不同数据类型对应的TOP N压缩算法,即从现有的压缩算法数据集中,根据数据分布及数据类型筛选出压缩率最小的前N个压缩算法建立起的特征压缩算法集合库。其中,压缩率是描述数压缩文件的效果名,表示数据压缩后的大小与数据压缩前的大小之比,压缩率越小表明数据的压缩效果越好。
全量压缩算法集合库,存储了各类实际应用中较优的压缩算法,如gzip、snappy、lzo等,其中gzip压缩算法对于要压缩的数据,首先利用L777算法的一个变种进行压缩,对得到的结果再使用Huffman编码的方法进行压缩,以此达到提高压缩效率的效果;snappy压缩算法通过使用哈希表与字典来查找和替换重复的数据片段完成数据压缩,snappy算法能在较短的时间内进行快速压缩和解压缩操作;lzo压缩算法通过将待压缩的数据分成若干个大小相等的块,每个块都与前面的块共享一个固定的滑动窗口,再利用两个指针来追踪压缩窗口和滑动窗口,从而实现高效的压缩与解压缩。
自适应压缩预测引擎,用于计算选中压缩算法的压缩率预测值,主要负责计算与待压缩数据的数据分布和数据类型相匹配的压缩算法的压缩率,通过计算出的压缩率预测值进行对比选择,确定最优的压缩算法。
下面通过具体业务场景中的业务实体表为实施例对本发明进行说明,其中,业务实体表来源于需要应用系统处理的业务实体,包括加密用户号码、用户状态、时间等字段,在数据压缩过程中包括以下步骤:
步骤1:根据实际应用的业务需求进行分析设计,读取各个基础表所需的分区及对应的字段数据,通过多表关联、数据过滤及其他复杂逻辑处理,得到数据结果集。
其中,多表关联是为了获取不同表的需要字段从而将不同表之间的列进行合并;数据过滤是根据业务情况通过数据过滤节点进行过滤操作,过滤掉与分析无关的列,或者使用统计方法识别数据特征,基于识别特征的情况进行数据列过滤,数据过滤可以对数据进行指定条件的识别和筛选,提升数据质量,为后续的数据分析或数据压缩提供有效数据。
上述步骤对获得的基础数据进行分析处理,可以减小冗余数据,以提高数据的完整性和一致性,得到的数据结果集便于后续算法的进一步实施。
步骤2:步骤1在完成数据处理后会发出按列存储调用自适应压缩算法程序的请求,自适应压缩算法接收到调用请求后,根据传入的字段信息,包括实体业务表表名、加密用户号码、用户状态、字段类型、列数据等信息,自动从保存的数据中按照抽样方法按比例抽取一部分数据进行统计和分析,从而得到数据的近似分布特征。
其中,数据的近似分布特征包括数据分布的集中趋势、数据分布的离中趋势以及数据频数的分布形态:
数据分布的集中趋势可通过平均值、中位数、众数指标进行衡量,反映各数据向其中心值靠拢或聚集的程度;
数据分布的离中趋势可通过四分位数、标准差、标准分指标进行计算衡量,反映各数据远离中心值的趋势;
数据频数的分布形态通过数据分布的形状是否对称、偏斜程度以及分布的扁平程度来进一步分析数据的特征,反映数据分布的偏态和峰态。
数据的分布特征是选择压缩算法的重要依据,一方面通过数据的分布特征可以更加直接快速的筛选出与之匹配的压缩算法,另一方面有利于选择最优的压缩算法以获得更好的压缩效果。
步骤3:根据数据类型,如加密用户号码的字符串型、用户状态的字符串型、时间的日期型,再结合步骤2得到的数据分布特征,共同构成数据特点,根据数据特征从特征压缩数据集合库或全量压缩算法集合库中选择与之相匹配的最优压缩算法。
步骤3中还包括以下步骤:
步骤3.1:结合数据类型以及数据分布特征判断在特征压缩算法集合库中是否存在与待压缩数据分布特征相匹配的压缩算法;
若存在于特征压缩算法集合库,则结合数据分布类型和数据分布特征从特征压缩算法集合库中找出匹配的压缩算法集合,并利用自适应压缩预测引擎计算压缩算法集合中每种压缩算法的压缩率预测值;
若不存在于特征压缩算法集合库,对全量压缩算法集合库中所有算法利用自适应压缩预测引擎计算每种压缩算法的压缩率预测值。
步骤3.2:判断特征压缩算法集合库中对应压缩算法计算出的压缩率预测值是否小于预测率阈值,其中,该阈值可根据实际应用的需求进行调整;
若压缩率预测值小于预测率阈值,则从特征压缩算法集合库中的对应压缩算法中选择压缩率预测值最小的压缩算法作为此列的最优压缩算法对数据进行压缩落盘;
若压缩率预测值大于或等于预测率阈值,对全量压缩算法集合库中有,但不在特征压缩算法集合库中的压缩算法进行压缩率预测,并选择压缩率预测值最小的压缩算法作为此列最优算法对数据进行压缩落盘。
对步骤3.1中当数据特点不存在于特征压缩算法集合库中,获取全量压缩算法集合库中的所有压缩算法的压缩率预测值,识别压缩率预值最小的压缩算法作为最优算法对数据进行压缩落盘处理。
步骤4:由于步骤3中从全量压缩算法集合库中获得的压缩算法的压缩效果优于特征压缩算法集合库,以及对应的数据类型与数据分布的多样性大于特征压缩算法集合库,所以需要对特征压缩算法集合库中的算法进行更新,即对压缩算法进行训练。
首先将待压缩数据的列数据的分布特点、列数据类型以及压缩比保存到特征压缩算法集合库中;再将从全量压缩算法集合库中选择的最优算法加入包括该数据类型与数据分布的特征压缩算法集合库中,如果特征压缩算法集合库中对应的压缩算法的数量大于设定值,则替换其中压缩率预测值最大的算法,其中,该设定值可根据实际应用的需求进行调整。经过不断的训练,从而完成特征压缩算法集合库的迭代更新。
步骤5:在所需的业务数据压缩落盘后,需要对相关信息进行保存处理。将加密用户号码、用户状态、时间的各字段名、数据类型以及使用的压缩算法、数据压缩前大小、数据压缩后大小、落盘后文件大小等相关信息保存到元数据库中,便于后期进行检索查阅,也有利于数据的的解压缩。
使用压缩算法对数据进行压缩落盘后,当应用需要使用对应的数据时,需要对具体业务场景压缩后的数据进行解压缩后再利用。对基于自动化列式存储自适应数据压缩后的数据进行解压缩的步骤如下:
步骤1:连接不同的数据源,从元数据管理模块中获取待解压缩数据表各列的列名、数据类型和使用的压缩算法。
步骤2:并行地读取各列所在的数据文件并用对应解压缩算法对数据进行解压缩。
步骤3:对解压缩后的数据做所需后处理应用。
工作原理及其效果:
本发明通过不同的模块,包括元数据管理模块、特征压缩算法集合库、全量压缩算法集合库、自适应压缩预测引擎实现对数据的压缩处理。首先通过对从不同数据源获得的数据进行分析处理得到结果数据集,再进行统计和分析得到数据的分布特征,根据数据特点判断从特征压缩算法集合库还是全量算法集合库中选择压缩算法;再根据自适应压缩预测引擎计算的压缩率预测值确定最终压缩算法对数据进行压缩落盘;最后将使用的压缩算法、列数据分布特点、列数据类型及压缩比保存到特征压缩算法集合库中进行学习训练,自动优化特征压缩算法集合库。
自适应压缩数据系统实现了数据落盘时能够自动寻找合适的数据压缩方法,实现了高效传输,进而更加有效的节省了存储空间、加快了磁盘读写速度和网络传输,同时避免了在使用过程中需要对不同列数据进行手动选择压缩方法的麻烦和面对多样化数据压缩的不确定性,更省时省力。
此外,尽管已经在本发明中描述了示例性实施例,其范围包括任何和所有基于本发明的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本发明。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本发明的主题可以少于特定的公开的实施例的全部特征。从而,以下权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本发明的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
- 一种基于离散余弦变换的自适应数据压缩方法及系统
- 一种基于离散余弦变换的自适应数据压缩方法及系统