一种数据分类存储方法及装置与流程

文档序号:13804828阅读:129来源:国知局

本发明涉及实时数据库数据无损压缩存储技术领域,尤其涉及一种数据分类存储方法及装置。



背景技术:

实时数据库产生的数据,数据量太大,直接存储起来难度太大,存储成本大。现有技术多采用有损压缩或者过滤加无损压缩的方法,这种方法虽然将数据的存储体积大量压缩减小,但是真实的数据也损失较多。



技术实现要素:

本发明的目的在于解决现有技术中数据过滤加无损压缩的方法使真实的数据损失较多的问题,提供一种数据分类存储方法及装置。

本发明解决其技术问题所采用的技术方案是:

一方面,提供一种数据分类存储方法,包括:

将对应类型的数据以对应类型的压缩预处理算法整理为对应的数据集,并将所述数据集存储于对应类型的缓存中;

按照预设的周期通过lzw算法压缩并存储到文件中,以文件的形式存储到数据存储介质中。

在本发明所述的数据分类存储方法中,所述将对应类型的数据以对应类型的算法整理为对应的数据集,并将所述数据集存储于对应类型的缓存中,包括:

缓存首地址写对应类型的数据的类型标记;

将对应类型的数据分割为数据信息及数据值,并分别将所述数据信息按照先后顺序存储于缓存中并通过分割符区分前后数据信息,将除字符串类型之外的所述数据值按照先后顺序储存于缓存中,若所述数据的类型为字符串类型,则将所述数据值按照先后顺序存储于缓存中并通过分割符区分前后数据值;

将所存储的数据信息整理为数据信息集,将所存储的数据值整理为数据值集。

在本发明所述的数据分类存储方法中,所述文件包括数据信息、分割符、数据值集及数据类型后缀。

在本发明所述的数据分类存储方法中,所述数据的类型至少包括bool类型、float类型、字符串类型、char类型、byte类型、shortint类型、word类型、long类型、dword类型。

在本发明所述的数据分类存储方法中,还包括:

在所述数据存储介质中搜索对应数据的文件,读取文件的内容到内存中,并采用lzw逆算法解压,再根据逆整理算法加载数据信息集和/或数据值集,通过搜索算法得到特定的数据信息和/或数据值。

另一方面,提供一种数据分类存储装置,其中存储有多条指令,所述指令适于由处理器加载并执行,包括:

将对应类型的数据以对应类型的压缩预处理算法整理为对应的数据集,并将所述数据集存储于对应类型的缓存中;

按照预设的周期通过lzw算法压缩并存储到文件中,以文件的形式存储到数据存储介质中。

在本发明所述的数据分类存储装置中,所述将对应类型的数据以对应类型的算法整理为对应的数据集,并将所述数据集存储于对应类型的缓存中,包括:

缓存首地址写对应类型的数据的类型标记;

将对应类型的数据分割为数据信息及数据值,并分别将所述数据信息按照先后顺序存储于缓存中并通过分割符区分前后数据信息,将除字符串类型之外的所述数据值按照先后顺序储存于缓存中,若所述数据的类型为字符串类型,则将所述数据值按照先后顺序存储于缓存中并通过分割符区分前后数据值;

将所存储的数据信息整理为数据信息集,将所存储的数据值整理为数据值集。

在本发明所述的数据分类存储装置中,所述文件包括数据信息、分割符、数据值集及数据类型后缀。

在本发明所述的数据分类存储装置中,所述数据的类型至少包括bool类型、float类型、字符串类型、char类型、byte类型、shortint类型、word类型、long类型、dword类型。

在本发明所述的数据分类存储装置中,还包括:

在所述数据存储介质中搜索对应数据的文件,读取文件的内容到内存中,并采用lzw逆算法解压,再根据逆整理算法加载数据信息集和/或数据值集,通过搜索算法得到特定的数据信息和/或数据值。

上述公开的一种数据分类存储方法及装置具有以下有益效果:很好的减少了大量数据的体积,用更少的硬件介质存储,减少存储成本;采用无损压缩,不会造成数据丢失,能找到最真实的数据,做出正确的决策;采用数据分类,提高数据集的规律性,重复性,提高了采用lzw压缩过后的数据的压缩比;采用固态硬盘存储介质以及lzw压缩算法(较好的压缩与解压效率),查询与存储实时性能会很高。

附图说明

图1为本发明一实施例提供的一种数据分类存储方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明提供了一种数据分类存储方法及装置,其目的在于,将海量数据按类型进行分类(相同类型的数据放在一起会提高数据集的重复性,规律性,有利于通过lzw算法压缩得到更高的压缩比节约存储空间);按本身数据类型特点在内存存储阶段就进行存储压缩预处理,a.例如bool类型没有压缩处理前一个字节只能存储一个bool类型数据,压缩过后一个字节能存8个bool类型数据极大节约了存储空间;b.例如非字符串数据类型数值之间不需添加分割符,也节约了存储空间(因为其他数据类型的数据长度是固定的所以不需要添加分割符也能截取数据值单元);c.例如将数据分割为数据信息部分和数据值两部分分别进行集中存储,极大提高了相应数据集的重复性,规律性。

参见图1,图1为本发明一实施例提供的一种数据分类存储方法的流程图,该数据分类存储方法主要通过工业实时数据库的数据分类压缩存储系统实现,并通过在系统中植入数据分类程序,结合计算机内存及数据存储介质(固态硬盘)实现,包括步骤s1-s2:

s1、将对应类型的数据以对应类型的压缩预处理算法整理为对应的数据集,并将所述数据集存储于对应类型的缓存中;例如:数据分类程序负责数据的分类,将对应类型的数据以对应类型算法进行整理汇总得的非常有规律且重复性高的数据集,存在对应类型的缓存中。步骤s1包括子步骤s11-s13:

s11、缓存首地址写对应类型的数据的类型标记;

s12、将对应类型的数据分割为数据信息及数据值,并分别将所述数据信息按照先后顺序存储于缓存中并通过分割符区分前后数据信息,将除字符串类型之外的所述数据值按照先后顺序储存于缓存中,若所述数据的类型为字符串类型,则将所述数据值按照先后顺序存储于缓存中并通过分割符区分前后数据值;即压缩预处理算法:将数据的数据信息和值分开存储即数据信息按先后顺序存储在一起(有分割符区分前后的数据信息);数据值也按先后顺序存储在一起(除了字符串类型的数据不用分割符区分前后数据值,因为每个数据类型所占的字节数是特定大小的;另外bool类型的需进行预压缩处理,没有预压缩处理前一个字节只能存储一个bool类型数据,预压缩处理过后一个字节能存8个bool类型数据极大节约了存储空间);这样数据信息的顺序和数据的值的顺序就能一一对应了,可以很方便的匹配解析。例如:字符串类型存储为:数据信息+分割符+数据信息+分割符……、数据值+分割符+数据值+分割符+数据值……;其他类型存储为:数据信息+分割符+数据信息+分割符……、数据值+数据值+数据值……

s13、将所存储的数据信息整理为数据信息集,将所存储的数据值整理为数据值集。

所述文件包括数据信息、分割符、数据值集及数据类型后缀。数据存储介质用来存储压缩过后的历史数据文件(文件中的内容:数据信息集在前数据值集在后,中间以分割符相区分;文件名后缀以数据类型命名)。例如:文件中数据存储形式为:通过lzw算法压缩过后的数据信息+分割符+通过lzw算法压缩过后的数据值+文件结束符。

所述数据的类型至少包括bool类型、float类型、字符串类型、char类型、byte类型、shortint类型、word类型、long类型、dword类型。

s2、按照预设的周期通过lzw算法压缩并存储到文件中,以文件的形式存储到数据存储介质中。例如:通过数据分类服务程序,将数据分类通过相关策略有压缩成有规律且重复性高的数据写入到对应内存缓存中;之后缓存中的压缩数据会周期性的被服务程序通过lzw算法压缩以文件的形式写入到硬件存储介质中(硬件存储介质指固态硬盘)。即计算机内存用来存储对应类型的有规律且重复性高的数据集,按周期会有程序将有规律且重复性高数据集通过lzw算法压缩并拷贝通过文件流存储到文件中,以文件的形式(文件后缀以数据类型命名)存储到数据存储介质中;之后删除已被拷贝后的数据,并继续接收新的数据存储。

优选的,所述数据分类存储方法还包括步骤s3:

s3、在所述数据存储介质中搜索对应数据的文件,读取文件的内容到内存中,并采用lzw逆算法解压,再根据逆整理算法加载数据信息集和/或数据值集,通过搜索算法得到特定的数据信息和/或数据值。例如:用户要通过某程序查看特定历史数据也是在数据存储介质上搜索到相关历史数据文件,读取文件内容到内存中,采用lzw逆算法进行解压,再根据逆整理算法加载数据项以及对于的值,最后通过搜索算法得到特定数据项信息以及值。

本发明还提供一种数据分类存储装置,其中存储有多条指令,所述指令适于由处理器加载并执行,从而实现上述方法。

本文提供了实施例的各种操作。在一个实施例中,所述的一个或操作可以构成一个或计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。

而且,本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“x使用a或b”意指自然包括排列的任意一个。即,如果x使用a;x使用b;或x使用a和b二者,则“x使用a或b”在前述任一示例中得到满足。

而且,尽管已经相对于一个或实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以多个或多个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的存储方法。

综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1