应用于特殊数据的存储方法及装置制造方法及图纸

技术编号:14589533 阅读:125 留言:0更新日期:2017-02-08 18:19
本发明专利技术提出了一种应用于特殊数据的存储方法及装置,包括:检测时间序列数据库中的数据类型;判断时间序列数据库中的适合使用列存储的数据类型;对判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作,其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。本发明专利技术采用列式存储方式支持复杂的嵌套类型的数据,同时能够提高时间序列数据库的数据查询效率,磁盘存储效率。

Method and device for storing special data

The invention provides a method and device for storage, applied to the special data includes: detecting the time series data in the database type; judgment time series database for the use of column storage data type; the judgment for the use of the column data type corresponding to the stored data stored by column will store operations the data in the column storage operation, a column with the same data types, used for data compression, compression encoding algorithm is the same, and the batch of data query execution. The invention adopts the column storage mode to support the data of the complex nested type, and can improve the efficiency of the data query of the time series database and the disk storage efficiency.

【技术实现步骤摘要】

本专利技术涉及数据库
,特别涉及一种应用于特殊数据的存储方法及装置。
技术介绍
在SQLServer里,Page是数据存储的基本单位,而数据行是实际数据的存储单位。从PageHeader之后就开始以数据行依次存储在Page上。这种按行在Page上存储记录的方式就是行存储。但是,上述行存储方式存在以下缺陷:当数据库中日志结构是复杂的嵌套数据类型,例如一个典型的日志的schema有87列,嵌套了7层时,行存储数据存在查询效率低下,磁盘占用大的缺点。
技术实现思路
本专利技术的目的旨在至少解决所述技术缺陷之一。为此,本专利技术的目的在于提出一种应用于特殊数据的存储方法,采用列式存储方式支持复杂的嵌套类型的数据,同时能够提高时间序列数据库的数据查询效率,磁盘存储效率。为了实现上述目的,本专利技术的实施例提供一种应用于特殊数据的存储方法,包括如下步骤:步骤S1,检测时间序列数据库中的数据类型;步骤S2,判断时间序列数据库中的适合使用列存储的数据类型;步骤S3,对步骤S2中判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作,其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。进一步,所述时间序列数据库包括多个时间序列,每个所述时间序列包括行数据和列数据,其中,所述行数据包括多级子数据列,每个子数据列包括多个列元素。进一步,在所述步骤S3中,所述高效压缩编码算法包括以下至少一种:运行长度编码算法(RunLengthEncoding)和增量编码算法(DeltaEncoding)。本专利技术实施例还提出一种应用于特殊数据的存储装置,包括:检测模块,所述检测模块与时间序列数据库相连,用于检测时间序列数据库中的数据类型;判断模块,所述判断模块与所述检测模块相连,用于判断时间序列数据库中的适合使用列存储的数据类型;列存储模块,所述列存储模块与所述判断模块和所述时间序列数据库相连,用于对判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作,其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。进一步,所述时间序列数据库包括多个时间序列,每个所述时间序列包括行数据和列数据,其中,所述行数据包括多级子数据列,每个子数据列包括多个列元素。进一步,所述高效压缩编码算法包括以下至少一种:运行长度编码算法(RunLengthEncoding)和增量编码算法(DeltaEncoding)。根据本专利技术实施例的应用于特殊数据的存储方法及装置,提供一种列式存储格式,即能支持复杂的嵌套类型的数据,同时能够提高时间序列数据库的数据查询效率,磁盘存储效率。当在磁盘中按照数据在列中的顺序存储时(即,列存储)。相比按行存储,列存储具有以下有益效果:1、可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。2、压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码进一步节约存储空间。3、只读取需要的列,支持向量运算,能够获取更好的扫描性能。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本专利技术实施例的应用于特殊数据的存储方法的流程图;图2为根据本专利技术实施例的应用于特殊数据的存储的示意图;图3为根据本专利技术实施例的应用于特殊数据的存储装置的结构图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。本专利技术提出一种应用于特殊数据的存储方法及装置,该方法以列存储技术为基础,应用于时间序列数据库,优化数据库中数据存储方式。如图1所示,本专利技术实施例的应用于特殊数据的存储方法,包括如下步骤:步骤S1,检测时间序列数据库中的数据类型。在时间序列数据库中,包括有行数据和列数据。检测该时间序列数据库中的数据类型。在本专利技术的一个实施例中,如图2所示,时间序列数据库包括多个时间序列,每个时间序列包括行数据和列数据,其中,行数据包括多级子数据列,每个子数据列包括多个列元素。例如:一级列下设置两个二级列,其中一个二级列下进一步设置有两个三级列,最低一级列中包括多个列元素。步骤S2,判断时间序列数据库中的适合使用列存储的数据类型。步骤S3,对步骤S2中判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作。其中,当数据是按单列而不是多行进行连续存储时,就是所谓的列存储。其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。列存储相比于现有技术中的行存储具有以下优点:1、只须读取需要的列。因此,从磁盘读到内存中、然后从内存移到处理器缓存中的数据量相应减少。2、数据列经过高度压缩,减少必须读取和移动的字节数。在本专利技术的一个实施例中,高效压缩编码算法包括以下至少一种:运行长度编码算法(RunLengthEncoding)和增量编码算法(DeltaEncoding)。3、由于大多数查询并不会涉及表中的所有列,因此许多列从不会进入内存,在与出色的压缩方法相结合之后,可以改善缓冲池使用率,从而减少总I/O。4、高级查询执行技术以简化的方法处理列块(批处理),从而减少CPU使用率。本专利技术是利用列存储适用于多查询、少修改的数据的特征,优化时间序列数据库的数据存储方法。举例来说,磁盘的每个Page仅仅存储来自单列的值,而不是整行的值。因此,压缩算法会更加高效,因为它们能够作用于同类型的数据。例如,假定本专利技术有一张有3列数据的表,这3列从左往右依次是int、varchar和bool类型,并且该表有100条(行)记录。对于都是int类型的第一列数据,应用压缩算法是很容易的,同时压缩率也会很高。这也将表明,本专利技术不必访问该表的所有列,仅需访问感兴趣的相关列的子集,这从另一方面来讲,可以减少磁盘的I/O、提升缓存利用率。因此,磁盘存储会被更加高效的利用,就像索引维护一样。如图3所示,本专利技术实施例还提供一种应用于特殊数据的存储装置,包括:检测模块1、判断模块2和列存储模块3。具体地,检测模块1与时间序列数据库相连,用于检测时间序列数据库中的数据类型。在本专利技术的实施例中,时间序列数据库包括多个时间序列,每个时间序列包括行数据和列数据,其中,行数据包括多级子数据列,每个子数据列包括多个列元素。判断模块2与检测模块1相连,用于判断时间序列数据库中的适合使用列存储的数据类型。列存储模块3与判断模块2和时间序列数据库相连,用于对判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作,其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。在本专利技术的一个实施例中,高效压缩编码算法包括以下本文档来自技高网...

【技术保护点】
一种应用于特殊数据的存储方法,其特征在于,包括如下步骤:步骤S1,检测时间序列数据库中的数据类型;步骤S2,判断时间序列数据库中的适合使用列存储的数据类型;步骤S3,对步骤S2中判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作,其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。

【技术特征摘要】
1.一种应用于特殊数据的存储方法,其特征在于,包括如下步骤:步骤S1,检测时间序列数据库中的数据类型;步骤S2,判断时间序列数据库中的适合使用列存储的数据类型;步骤S3,对步骤S2中判断的适合使用列存储的数据类型对应的数据,采用列存储方式将数据进行存储操作,其中,在列存储操作过程中,同一列的数据类型相同,采用相同的高效压缩编码算法对数据进行压缩,并采用批处理对列数据进行查询执行。2.如权利要求1所述的应用特殊数据的存储方法,其特征在于,所述时间序列数据库包括多个时间序列,每个所述时间序列包括行数据和列数据,其中,所述行数据包括多级子数据列,每个子数据列包括多个列元素。3.如权利要求1所述的应用特殊数据的存储方法,其特征在于,在所述步骤S3中,所述高效压缩编码算法包括以下至少一种:运行长度编码算法(RunLengthEncoding)和增量编码算法(DeltaEncoding)。4.一种应用于特殊数据的存储装置,其特征在于,包括...

【专利技术属性】
技术研发人员:崔维力赵伟李淼
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1