基于子文件的数据重删方法、装置及可读介质制造方法及图纸

技术编号:38885763 阅读:10 留言:0更新日期:2023-09-22 14:13
本发明专利技术公开了一种基于子文件的数据重删方法、装置及可读介质,获取输入文件,判断输入文件为Office文件或Pdf文件;响应于确定输入文件为Office文件,循环解析Office文件中的局部文件数据,对局部文件数据计算指纹信息,并存入recipe,直至检测到中央目录记录;响应于确定输入文件为Pdf文件,对Pdf文件解析得到stream数据,对stream数据计算指纹信息,并存入recipe;将Office文件中的局部文件数据以及Pdf文件中的stream数据定义为数据块,查询数据块对应的指纹信息是否存在于持久化存储介质的元数据保存结构体数组中,得到查询结果,根据查询结果进行重删,可有效提高重删效率。可有效提高重删效率。可有效提高重删效率。

【技术实现步骤摘要】
基于子文件的数据重删方法、装置及可读介质


[0001]本专利技术涉及计算机存储领域,具体涉及一种基于子文件的数据重删方法、装置及可读介质。

技术介绍

[0002]随着数据的爆炸性增长,产生数据缩减技术,数据缩减技术通过减少数据冗余来减少物理存储在存储介质中的数据量,因此数据中心可以更少或更小的资源处理相同数量的数据,降低数据中心管理成本。目前数据缩减技术包括基于数据压缩和重复数据删除。数据压缩使用无损压缩算法对数据块进行编码,以便用更少的位数来表示数据块。重复数据删除则会在存储系统中已经存在相同的数据块的情况下(即包含完全相同数据的块)阻止写入数据块。
[0003]为了实现高数据缩减率,目前应用重复数据删除的方式整合这两种技术并对非重复数据删除块执行无损压缩。重复数据删除可通过大规模地有效地消除冗余数据,从而降低数据存储成本。例如某office和pdf文件备份服务器,大约每天会有50GB的工作负载,那么一年就需要备份18250GB的数据。事实上,一个文件的不同版本之间存在着大量的冗余,这是由于通常只会对一个文件进行少量的增删操作。传统的备份服务器不能识别文件之间的冗余,只能备份大量数据。而如果一个备份系统采用了容灾设计,那么又会将大量数据传输到别的备份服务器以抵抗不可预知的错误。数据存储部门购买存储设备的开销将成倍增加。随着重复数据删除技术的发展,重复数据删除技术也面临诸多的挑战。传统的内容定义分块CDC算法(Content Defined Chunking)把文件当作二进制流,而文件有着本身的结构。例如生产力文件Office文件和Pdf文件。Office文件本质上是一个zip文件,有着许多小的子文件元数据。Pdf文件是由标签组成的,被“stream”和“endstream”包含的数据部分称为stream数据,stream数据占据Pdf文件的主题。传统的CDC方法可能会把标签分割在两个不同的数据块中,或者把一个stream数据分割在两个不同的数据块中,这样分块不符合语义。

技术实现思路

[0004]针对上述提到的技术问题。本申请的实施例的目的在于提出了一种基于子文件的数据重删方法、装置及可读介质,来解决以上
技术介绍
部分提到的技术问题。
[0005]第一方面,本专利技术提供了一种基于子文件的数据重删方法,包括以下步骤:
[0006]获取输入文件,判断输入文件为Office文件或Pdf文件;
[0007]响应于确定输入文件为Office文件,循环解析Office文件中的局部文件数据,对局部文件数据计算指纹信息,并存入recipe,直至检测到中央目录记录;
[0008]响应于确定输入文件为Pdf文件,对Pdf文件解析得到stream数据,对stream数据计算指纹信息,并存入recipe;
[0009]将Office文件中的局部文件数据以及Pdf文件中的stream数据定义为数据块,查询数据块对应的指纹信息是否存在于持久化存储介质的元数据保存结构体数组中,得到查
询结果,根据查询结果进行重删。
[0010]作为优选,还包括:
[0011]初始化持久化存储介质的元数据保存结构体数组,元数据保存结构体数组中的元数据包括指纹信息、容器编号、数据块在容器内的偏移、数据块的长度;
[0012]初始化一个开放容器,开放容器为未写满可用于写缓存的容器,若开放容器中已写满即变为封闭容器,封闭容器为已写满且写入磁盘的容器,并重新建立一个开放容器;
[0013]初始化recipe,recipe用于存储数据块的指纹信息和元数据块的指纹信息。
[0014]作为优选,判断输入文件为Office文件或Pdf文件,具体包括:
[0015]根据输入文件的格式的幻数对输入文件的格式进行判断,确定输入文件为Office文件或Pdf文件。
[0016]作为优选,循环解析Office文件中的局部文件数据,具体包括:
[0017]解析Office文件中的第一个局部文件头,获取第一个局部文件头对应的局部文件数据及其压缩后的长度,根据长度计算下一个局部文件头的位置;
[0018]遍历解析下一个局部文件头,获取下一个局部文件头对应的局部文件数据,直至检测到中央目录记录。
[0019]作为优选,对Pdf文件解析得到stream数据,具体包括:
[0020]检测Pdf文件中的每个stream起始标志及其相邻的stream结束标志,并将stream起始标志及其相邻的stream结束标志之间除障碍字节以外的数据作为stream数据。
[0021]作为优选,还包括:
[0022]将Office文件中除局部文件数据以外的其余部分以及Pdf文件中除stream数据以外的其余部分定义为元数据块,对元数据块计算指纹信息,并存入recipe;
[0023]元数据块对应的指纹信息不需要查询是否存在于持久化存储介质的元数据保存结构体数组中。
[0024]作为优选,查询数据块对应的指纹信息是否存在于持久化存储介质的元数据保存结构体数组中,得到查询结果,根据查询结果进行重删,具体包括:
[0025]响应于确定数据块对应的指纹信息存在于持久化存储介质的元数据保存结构体数组中,则确定数据块为重复数据,不需要将数据块写入开放容器;
[0026]响应于确定数据块对应的指纹信息不存在于持久化存储介质的元数据保存结构体数组中,则确定数据块为唯一数据,并将数据库写入开放容器。
[0027]第二方面,本专利技术提供了一种基于子文件的数据重删装置,包括:
[0028]文件格式确定模块,被配置为获取输入文件,判断输入文件为Office文件或Pdf文件;
[0029]第一指纹计算模块,被配置为响应于确定输入文件为Office文件,循环解析Office文件中的局部文件数据,对局部文件数据计算指纹信息,并存入recipe,直至检测到中央目录记录;
[0030]第二指纹计算模块,被配置为响应于确定输入文件为Pdf文件,对Pdf文件解析得到stream数据,对stream数据计算指纹信息,并存入recipe;
[0031]查询模块,被配置为将Office文件中的局部文件数据以及Pdf文件中的stream数据定义为数据块,查询数据块对应的指纹信息是否存在于持久化存储介质的元数据保存结
构体数组中,得到查询结果,根据查询结果进行重删。
[0032]第三方面,本专利技术提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
[0033]第四方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
[0034]相比于现有技术,本专利技术具有以下有益效果:
[0035](1)本专利技术提出的基于子文件的数据重删方法对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于子文件的数据重删方法,其特征在于,包括以下步骤:获取输入文件,判断所述输入文件为Office文件或Pdf文件;响应于确定所述输入文件为Office文件,循环解析所述Office文件中的局部文件数据,对所述局部文件数据计算指纹信息,并存入recipe,直至检测到中央目录记录;响应于确定所述输入文件为Pdf文件,对所述Pdf文件解析得到stream数据,对所述stream数据计算指纹信息,并存入recipe;将所述Office文件中的所述局部文件数据以及所述Pdf文件中的stream数据定义为数据块,查询所述数据块对应的指纹信息是否存在于持久化存储介质的元数据保存结构体数组中,得到查询结果,根据所述查询结果进行重删。2.根据权利要求1所述的基于子文件的数据重删方法,其特征在于,还包括:初始化持久化存储介质的元数据保存结构体数组,所述元数据保存结构体数组中的元数据包括指纹信息、容器编号、数据块在容器内的偏移、数据块的长度;初始化一个开放容器,所述开放容器为未写满可用于写缓存的容器,若开放容器中已写满即变为封闭容器,所述封闭容器为已写满且写入磁盘的容器,并重新建立一个开放容器;初始化recipe,所述recipe用于存储数据块的指纹信息和元数据块的指纹信息。3.根据权利要求1所述的基于子文件的数据重删方法,其特征在于,所述判断所述输入文件为Office文件或Pdf文件,具体包括:根据所述输入文件的格式的幻数对所述输入文件的格式进行判断,确定所述输入文件为Office文件或Pdf文件。4.根据权利要求1所述的基于子文件的数据重删方法,其特征在于,所述循环解析所述Office文件中的局部文件数据,具体包括:解析所述Office文件中的第一个局部文件头,获取所述第一个局部文件头对应的局部文件数据及其压缩后的长度,根据所述长度计算下一个局部文件头的位置;遍历解析下一个局部文件头,获取所述下一个局部文件头对应的局部文件数据,直至检测到所述中央目录记录。5.根据权利要求1所述的基于子文件的数据重删方法,其特征在于,所述对所述Pdf文件解析得到stream数据,具体包括:检测所述Pdf文件中的每个stream起始标志及其相邻的stream结束标志,并将所述stream起始标志及其相邻的stream结束标志之间除障碍字节...

【专利技术属性】
技术研发人员:毛波吴素贞汪渭春陈逸飞王伟张志强夏伟强陈伟谢飞
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:

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

1