用于对基于字符串的文件进行压缩的方法和装置制造方法及图纸

技术编号:15329891 阅读:127 留言:0更新日期:2017-05-16 13:28
本申请涉及对基于字符串的文件进行压缩的方法和装置,其中,该方法包括以下步骤:(a)将该文件切分成一个或多个数据块;(b)针对该一个或多个数据块的每个数据块,获得由该数据块中的所有初始字符串的坐标形成的压缩坐标集合;(c)对压缩坐标集合中的坐标进行压缩操作,得到经压缩的坐标集合,并用该经压缩的坐标集合中的所有坐标替换压缩坐标集合中受到压缩操作的所有坐标;(d)迭代进行步骤(c),直到压缩坐标集合中的坐标不能再进行压缩操作为止;(e)获得与该数据块对应的压缩字典;(f)根据压缩字典对数据块进行压缩,形成压缩包;(g)将与一个或多个数据块对应的各个压缩包拼装成压缩文件。

Method and apparatus for compressing a string based file

The invention relates to the method and apparatus for compressed string based file, the method comprises the following steps: (a) the file is divided into one or more data blocks; (b) for each block of the one or more data blocks, was formed by the coordinates of all the initial string in the block of data compression of the coordinate set; (c) to coordinate the coordinate set compression compression operation, get compressed coordinate set, and the coordinates of all compressed coordinate set for substitution in the compressed coordinates by all coordinate compression operation set; (d) iterative steps (c) not until the compression, coordinate coordinate set the compression operation so far; (E) to obtain the corresponding with the block of data compression dictionary; (f) according to the compression dictionary for data compression, compressed form; (g) and one or more Each compression packet corresponding to each data block is assembled into a compressed file.

【技术实现步骤摘要】
用于对基于字符串的文件进行压缩的方法和装置
本申请涉及数据压缩领域,更具体地,涉及用于对MongoDB数据库文件进行压缩的方法和装置。
技术介绍
MongoDB基于BSON的数据存取方式由于具有很大的灵活性而受到越来越多软件开发者的喜欢,但更大灵活性的代价是需要更大的应用空间。BSON字段名在每个文档中被定义,在允许的情况下使用较短的字段名,但是太短的字段名,如单字母字段名或代码会使得字段名很难被理解和阅读,其数据也较难被使用。
技术实现思路
根据本申请的一个方面,提供了一种对基于字符串的文件进行压缩的方法,包括以下步骤:(a)将该文件切分成一个或多个数据块;(b)针对该一个或多个数据块的每个数据块,获得由该数据块中出现次数大于等于阈值的所有初始字符串在该数据块中出现的坐标形成的压缩坐标集合,其中坐标包括行坐标和列坐标;(c)对压缩坐标集合中具有相同行坐标且列坐标有交集的坐标进行压缩操作,得到经压缩的坐标集合,并用该经压缩的坐标集合中的所有坐标替换压缩坐标集合中受到压缩操作的所有坐标;(d)迭代进行步骤(c),直到压缩坐标集合中的坐标不能再进行压缩操作为止;(e)获得与压缩坐标集合中的各个坐标一一对应的字符串的集合,将在该集合中出现次数大于等于阈值的字符串录入压缩字典;(f)根据压缩字典对数据块进行压缩,形成压缩包;(g)将与一个或多个数据块对应的各个压缩包拼装成压缩文件。根据本申请的另一方面,提供了一种对基于字符串的文件进行压缩的装置,该装置包括:分解模块,被配置为将数据库文件切分成一个或多个数据块;压缩坐标集合获得模块,被配置为针对一个或多个数据块的每个数据块,获得由该数据块中出现次数大于等于阈值的所有初始字符串在该数据块中出现的坐标形成的压缩坐标集合,其中坐标包括行坐标和列坐标;迭代模块,被配置为执行以下压缩替换操作:对压缩坐标集合中具有相同行坐标且列坐标有交集的坐标进行压缩操作,得到经压缩的坐标集合,并用该经压缩的坐标集合中的所有坐标替换压缩坐标集合中受到压缩操作的所有坐标;迭代模块还被配置为迭代地执行上述压缩替换操作,直到压缩坐标集合中的坐标不能再进行压缩操作为止;压缩字典获得模,被配置为获得与压缩坐标集合中的每个坐标一一对应的字符串的集合,将在该集合中出现次数大于等于阈值的字符串录入压缩字典;压缩模块,被配置为根据压缩字典对数据块进行压缩,形成压缩包;以及组装模块,被配置为将与一个或多个数据块对应的各个压缩包拼装成压缩文件。根据本申请实施例的用于对基于字符串的文件进行压缩的方法将数据块中重复出现的字符串替换为较简单的编号,有利地减少了数据库文件所占用的存储空间。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出根据本专利技术的实施例的对MongoDB数据库文件进行压缩的方法的流程图。图2示出根据本专利技术的实施例的数据块在坐标系中的示出。图3示出根据本专利技术的实施例对数据块进行压缩的方法的流程图。图4示出根据本专利技术的实施例的用于对MongoDB数据库文件进行压缩的装置的框图。图5示出能够实现根据本专利技术实施例的用于对MongoDB数据库文件进行压缩的方法和装置的计算设备的示例性硬件架构的结构图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面将详细描述本专利技术的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本专利技术的全面理解。但是,对于本领域技术人员来说很明显的是,本专利技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本专利技术的示例来提供对本专利技术的更好的理解。本专利技术决不限于下面所提出的任何具体配置和算法,而是在不脱离本专利技术的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本专利技术造成不必要的模糊。现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本专利技术更全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中,为了清晰,可能夸大了区域和层的厚度。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本专利技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本专利技术的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料等。在其它情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本专利技术的主要技术创意。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。本文以MongoDB数据库文件为例示出对基于字符串的文件进行压缩的方法。传统的数据压缩方法是数据块压缩——一种将数据块中的重复值(确切的值以及形式)进行压缩以减少空间总量的方法。MongoDB在推出3.0版本时对WiredTiger存储引擎引入了压缩功能,其原理是基于压缩数据中的重复值对MongoDB进行压缩。但该基于MongoDB数据库文件的重复值的压缩方法的压缩效率依赖于重复值的数量,导致压缩效果有限,很难满足海量数据文件的压缩需求。图1示出根据本专利技术的实施例的对MongoDB数据库文件进行压缩的方法的流程图。该图仅是示例,其不应不适当地限制权利要求的范围。本领域的技术人员可以在该图的基础上进行适应性地变化、替代和修改。如图1所示,对MongoDB数据库文件进行压缩的方法包括:S102,将数据库文件切分成一个或多个数据块;S104,针对该一个或多个数据块的每个数据块,获得由该数据块中出现次数大于等于阈值的所有初始字符串在该数据块中出现的坐标形成的压缩坐标集合,其中坐标包括行坐标和列坐标;S106,对压缩坐标集合中具有相同的行坐标且列坐标有交集的坐标进行压缩操作,得到经压缩的坐标集合,并用该经压缩的坐标集合中的所有坐标替换压缩坐标集合中受到压缩操作的所有坐标;S108,迭代地进行步骤S106,直到压缩坐标集合中的坐标不能再进行压缩操作为止;S110,获得与压缩坐标集合中的各个坐标一一对应的字符串的集合,将在该集合中出现次数大于等于阈值的字符串录入压缩字典;S112,根据压缩字典对数据块进行压缩,形成压缩包;S114,将与上述一个或多个数据块对应的各个压缩包拼装成压缩文件。在一些实施例中,将MongoDB数据库文件切分成一个或多个数据块可以包括根据MongoDB数据库中数据表的分类对MongoDB数据库文件进行切分。例如本文档来自技高网...
用于对基于字符串的文件进行压缩的方法和装置

【技术保护点】
一种对基于字符串的文件进行压缩的方法,包括:(a)将所述文件切分成一个或多个数据块;(b)针对所述一个或多个数据块的每个数据块,获得由该数据块中出现次数大于等于阈值的所有初始字符串在该数据块中出现的坐标形成的压缩坐标集合,其中坐标包括行坐标和列坐标;(c)对所述压缩坐标集合中具有相同的行坐标且列坐标有交集的坐标进行压缩操作,得到经压缩的坐标集合,并用该经压缩的坐标集合中的所有坐标替换所述压缩坐标集合中受到压缩操作的所有坐标;(d)迭代进行步骤(c),直到所述压缩坐标集合中的坐标不能再进行压缩操作为止;(e)获得与所述压缩坐标集合中的各个坐标一一对应的字符串的集合,将在该集合中出现次数大于等于所述阈值的字符串录入压缩字典;(f)根据所述压缩字典对所述数据块进行压缩,形成压缩包;(g)将与所述一个或多个数据块对应的各个压缩包拼装成压缩文件。

【技术特征摘要】
1.一种对基于字符串的文件进行压缩的方法,包括:(a)将所述文件切分成一个或多个数据块;(b)针对所述一个或多个数据块的每个数据块,获得由该数据块中出现次数大于等于阈值的所有初始字符串在该数据块中出现的坐标形成的压缩坐标集合,其中坐标包括行坐标和列坐标;(c)对所述压缩坐标集合中具有相同的行坐标且列坐标有交集的坐标进行压缩操作,得到经压缩的坐标集合,并用该经压缩的坐标集合中的所有坐标替换所述压缩坐标集合中受到压缩操作的所有坐标;(d)迭代进行步骤(c),直到所述压缩坐标集合中的坐标不能再进行压缩操作为止;(e)获得与所述压缩坐标集合中的各个坐标一一对应的字符串的集合,将在该集合中出现次数大于等于所述阈值的字符串录入压缩字典;(f)根据所述压缩字典对所述数据块进行压缩,形成压缩包;(g)将与所述一个或多个数据块对应的各个压缩包拼装成压缩文件。2.如权利要求1所述的方法,其中,所述阈值等于3.如权利要求1所述的方法,其中,所述阈值是预定数值。4.如权利要求1所述的方法,其中,所述初始字符串是字符数大于等于2的字符串。5.如权利要求1所述的方法,其特征在于,所述文件包括数据库文件,所述方法还包括根据所述数据库文件中的数据表的分类对所述数据库文件进行切分。6.如权利要求1所述的方法,其中,所述对数据块进行压缩还包括:对所述压缩字典中的字符串进行编号,并在所述数据块中用该编号来替代与该编号相对应的字符串。7.如权利要求6所述的方法,所述压缩操作还包括从所述压缩字典中删除字符串字节长度小于所对应的编号的字节长度的字符串。8.一种对基于字符串的文件进行压缩的装置,包括:分解模块,被配...

【专利技术属性】
技术研发人员:董琦琦陈劼蒋强
申请(专利权)人:中国移动通信集团江苏有限公司中国移动通信集团公司
类型:发明
国别省市:江苏,32

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

1