1.本发明涉及大
数据处理与数据压缩的技术领域,尤其是一种基于元数据的数据交互方法和系统。
背景技术:
2.随着现代计算机、手机等终端硬件计算和存储性能的提高,导致音视频流数据逐渐成为网络数据流量的主要来源之一,与此同时,软件安装包、磁盘映射、docker容器等应用数据包的存储容量也在逐渐提升。本发明的解决方案力求在互联网上更高效、快速地传输、共享、发布大数据量
文件。
3.目前主流的压缩
算法和工具很多,压缩比也比较高,但是,随之计算的熵增,压缩比迅速减低。为了进一步提升压缩比,必须要从更大数据范围搜索。本发明的压缩过程需要消耗大量的计算和磁盘空间。这些需求在个人计算中实现是非常难以实现的。需要利用云上大量的巨型计算资源,才能实现。压缩后的文件数据尺寸更小,下载时,再配合使用bittorrent共享协议,能够大幅提高数据传输效率。
技术实现要素:
4.为了解决现有技术中存在的上述技术问题,本发明提出了一种基于元数据的数据交互方法和系统,以解决上述技术问题。
5.根据本发明的一个方面,提出了一种基于元数据的数据交互方法,包括:
6.s1:利用元数据压缩算法生成元数据仓库文件,其中,元数据压缩算法包括以下步骤:
7.s11:为每个目标数据文件生成虚拟目录描述文件;
8.s12:根据单一目标文件的扩展名,调用对应的文件分解算法将目标数据文件分解为若干数据块,并添加至虚拟目录描述文件中;
9.s13:利用7z算法将分解后的数据块压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点;
10.s14:生成一级数据文件,遍历统计各个压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;
11.s2:对于已经下载完成的元数据仓库文件,基于解压算法解压文件,包括:
12.s21:还原一级数据文件,调用元数据压缩算法解压最后一个数据块,获得虚拟目录描述文件;
13.s22:基于虚拟目录描述文件和元数据压缩算法中的步骤s14解压第一数据块,还原所有文件描述数据块;
14.s23:基于虚拟目录描述文件和元数据压缩算法中的步骤s13,还原所有数据文件目录,完成文件解压。
15.在一些具体的实施例中,虚拟目录描述文件采用xml文件格式进行描述,用于记录
目标文件的目录层级和数据文件的基本信息,以及文件数据块分解信息。
16.在一些具体的实施例中,数据块包括文件描述数据块、原文件数据块和7z数据folder块,每个数据块按照原文件的存储顺序排列。
17.在一些具体的实施例中,s13包括:
18.将所有文件描述数据块合并后,调用7z算法压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点;
19.将每个原文件数据块分别调用7z算法压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点。
20.在一些具体的实施例中,元数据仓库文件为16gb的元数据仓库文件,具体生成方式包括:
21.根据一级数据文件生成二级数据文件,二级数据文件由压缩记录数据集合构成,压缩记录数据集合由一级数据文件的数据块排序后压缩;
22.逐一合并各个二级数据文件,生成唯一的三级数据文件,对三级数据文件按照重复次数排序,提取最多的前2
31
条记录,生成最大16gb元数据仓库文件。
23.在一些具体的实施例中,元数据压缩算法还包括步骤s15:使用元数据仓库文件作为索引表,对所有一级数据文件的数据块按元数据尺寸进行重建,生成最终数据发布文件。
24.在一些具体的实施例中,s14之前还包括步骤s131:构造一级压缩数据文件,压缩数据文件包括文件头描述信息、数据块和尾部对齐数据块,文件头描述信息中记录最后一个数据块的文件偏移距离,数据块中最后一个数据块为虚拟目录描述文件调用7z算法压缩转换的7z数据folder块。
25.在一些具体的实施例中,一级数据文件的生成方式为:将s12、s13和s131中所有的模板文件压缩为一级数据文件。
26.在一些具体的实施例中,s21中基于步骤s15,进行逆操作还原成一级数据文件。
27.根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有一或多个计算机程序,该一或多个计算机程序被计算机处理器执行时实施上述任一项的方法。
28.根据本发明的第三方面,提出了一种基于元数据的数据交互系统,系统包括:
29.压缩单元,配置用于利用元数据压缩算法生成元数据仓库文件,其中,元数据压缩算法包括以下步骤:s11:为每个目标数据文件生成虚拟目录描述文件;s12:根据单一目标文件的扩展名,调用对应的文件分解算法将目标数据文件分解为若干数据块,并添加至虚拟目录描述文件中;s13:利用7z算法将分解后的数据块压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点;s14:生成一级数据文件,遍历统计各个压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;
30.解压单元:配置用于对于已经下载完成的元数据仓库文件,基于解压算法解压文件,包括:s21:还原一级数据文件,调用元数据压缩算法解压最后一个数据块,获得虚拟目录描述文件;s22:基于虚拟目录描述文件和元数据压缩算法中的步骤s14解压第一数据块,还原所有文件描述数据块;s23:基于虚拟目录描述文件和元数据压缩算法中的步骤s13,还原所有数据文件目录,完成文件解压。
31.在一些具体的实施例中,虚拟目录描述文件采用xml文件格式进行描述,用于记录目标文件的目录层级和数据文件的基本信息,以及文件数据块分解信息;数据块包括文件
描述数据块、原文件数据块和7z数据folder块,每个数据块按照原文件的存储顺序排列。
32.在一些具体的实施例中,s13包括:将所有文件描述数据块合并后,调用7z算法压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点;将每个原文件数据块分别调用7z算法压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点。
33.在一些具体的实施例中,元数据仓库文件为16gb的元数据仓库文件,具体生成方式包括:根据一级数据文件生成二级数据文件,二级数据文件由压缩记录数据集合构成,压缩记录数据集合由一级数据文件的数据块排序后压缩;逐一合并各个二级数据文件,生成唯一的三级数据文件,对三级数据文件按照重复次数排序,提取最多的前2
31
条记录,生成最大16gb元数据仓库文件。
34.在一些具体的实施例中,s14之前还包括步骤s131:构造一级压缩数据文件,压缩数据文件包括文件头描述信息、数据块和尾部对齐数据块,文件头描述信息中记录最后一个数据块的文件偏移距离,数据块中最后一个数据块为虚拟目录描述文件调用7z算法压缩转换的7z数据folder块;s14中一级数据文件的生成方式为:将s12、s13和s131中所有的模板文件压缩为一级数据文件;s14之后还包括s15:使用元数据仓库文件作为索引表,对所有一级数据文件的数据块按元数据尺寸进行重建,生成最终数据发布文件。
35.本发明提出了一种基于元数据的数据交互方法和系统,涉及pb级大数据处理和数据压缩领域。用户为了从元数据发布网站上获取目标数据,需要先下载对应的元数据仓库文件,再下载目标数据。元数据发布网站通过本发明的算法,在目前主流压缩工具的压缩率基础上,通过生成的元数据仓库文件,进一步压缩交互数据的字节,进而提高网站存储空间利用率,并且,本发明的方法的解压速度的影响比较小。
附图说明
36.包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
37.图1是本技术的一个实施例的基于元数据的数据交互方法的流程图;
38.图2是本技术的一个具体的实施例的文件解压流程图;
39.图3是本技术的一个实施例的基于元数据的数据交互系统的框架图;
40.图4是适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
41.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
42.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
43.根据本技术的一个实施例的基于元数据的数据交互方法,图1示出了根据本技术的实施例的基于元数据的数据交互方法的流程图。如图1所示,该方法包括:
44.s1:利用元数据压缩算法生成元数据仓库文件,其中,元数据压缩算法包括以下步骤:
45.s11:为每个目标数据文件生成虚拟目录描述文件。其中虚拟目录描述文件采用xml文件格式进行描述,用于记录目标文件的目录层级和数据文件的基本信息,以及文件数据块分解信息。
46.s12:根据单一目标文件的扩展名,调用对应的文件分解算法将目标数据文件分解为若干数据块,并添加至虚拟目录描述文件中。其中,数据块包括文件描述数据块、原文件数据块和7z数据folder块,每个数据块按照原文件的存储顺序排列
47.s13:利用7z算法将分解后的数据块压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点。在具体的实施例中,该步骤具体包括:将所有文件描述数据块合并后,调用7z算法压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点;将每个原文件数据块分别调用7z算法压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点。
48.s14:生成一级数据文件,遍历统计各个压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件。
49.在具体的实施例中,s14之前还包括步骤s131:构造一级压缩数据文件,压缩数据文件包括文件头描述信息、数据块和尾部对齐数据块,文件头描述信息中记录最后一个数据块的文件偏移距离,数据块中最后一个数据块为虚拟目录描述文件调用7z算法压缩转换的7z数据folder块。其中,一级数据文件的生成方式为:将s12、s13和s131中所有的模板文件压缩为一级数据文件。
50.在具体的实施例中,元数据仓库文件为16gb的元数据仓库文件,具体生成方式包括:
51.根据一级数据文件生成二级数据文件,二级数据文件由压缩记录数据集合构成,压缩记录数据集合由一级数据文件的数据块排序后压缩;
52.逐一合并各个二级数据文件,生成唯一的三级数据文件,对三级数据文件按照重复次数排序,提取最多的前2
31
条记录,生成最大16gb元数据仓库文件。
53.在一些具体的实施例中,元数据压缩算法还包括步骤s15:使用元数据仓库文件作为索引表,对所有一级数据文件的数据块按元数据尺寸进行重建,生成最终数据发布文件。
54.s2:对于已经下载完成的元数据仓库文件,基于解压算法解压文件,包括:
55.s21:还原一级数据文件,调用元数据压缩算法解压最后一个数据块,获得虚拟目录描述文件。其中,还原一级数据文件是基于前述步骤s15进行逆操作还原而成。
56.s22:基于虚拟目录描述文件和元数据压缩算法中的步骤s14解压第一数据块,还原所有文件描述数据块;
57.s23:基于虚拟目录描述文件和元数据压缩算法中的步骤s13,还原所有数据文件目录,完成文件解压。
58.本发明针对数据资源丰富的数据发布网络资源站点,将全站pb级数据按照进行元数据压缩。本发明的基本思路为:将所有数据交互的文件逐一调用7z算法进行压缩,生成若
干个分组的7z数据folder块,然后,遍历压缩后的所有数据,以64位作为元数据尺寸,生成元数据使用率最高的2的31次方条的有序元数据,并建立数据库,最后,根据有序元数据仓库重新索引目标文件,获得压缩率为30%到48%之间的发布文件集。
59.对于数据交互中的数据接收方来说,首次下载数据前,必须首先下载对应的元数据仓库,再下载压缩后的目标文件。具体包括以下步骤:
60.第一步,生成虚拟目录描述文件,本发明对应的虚拟目录描述文件采用xml文件格式进行描述,用来记录目标文件的目录层级和数据文件的基本信息,以及文件数据快分解信息。
61.在具体的实施例中,节点分为目录节点、文件节点、数据块节点、7z数据folder描述节点,具体各节点的属性和内容如下:
62.目录节点为《d n=“目录名"》文件节点《/d》,
63.文件节点为《f n="文件名"ex="文件类型"sid="逆操作算法id"uuid="文件唯一编码"》数据块节点《/f》,
64.数据块节点《b t="数据块类型"len="块字节长"》7z数据folder描述节点的uuid《/b》,
65.7z数据folder描述节点《z uuid="文件唯一编码"arg="7z压缩参数"len="块字节长"》数据块节点uuid,数据块节点uuid,...《/z》,
66.数据块类型分为三种文件描述数据块、原文件数据块,7z数据folder块;文件描述数据块内容主要由文本信息构成;原文件数据块为随机二进制数据字节信息块;7z数据folder块为已经采用7z算法压缩处理过的7z标准folder格式数据。
67.第二步,目标文件根据其扩展名,调用对应的文件分解算法,将目标数据文件分解成若干块数据块,并添加虚拟目录描述文件中。
68.在具体的实施例中,每个数据块按照原文件的存储顺序排列;分解后的数据块,分为三种“文件描述”数据块、原文件数据块,7z数据folder块;例如:xml、txt、docx、xlsx、http等,纯文本文件直接标记位“文件描述”数据块;7z文件,根据7z文件格式,分解成header部描述文件块、尾部folder描述文件块和若干个7z数据folder块;mp4文件,根据mp4文件格式,分解为若干个box数据块,类型标记位原文件数据块,其中启描述作用的ftyp和moov类型的box数据块,登记为文件描述”数据块;其它box为原文件数据块,依此类推,构建针对各种数据类型的文件分解算法。
69.第三步,将所有文件描述数据块合并后,调用7z算法,压缩转换为7z数据folder块,并在虚拟目录描述文件中,添加7z数据folder描述数据库节点。
70.第四步,将每个原文件数据块分别调用7z算法,压缩转换为7z数据folder块,并在虚拟目录描述文件中,添加7z数据folder描述数据库节点。
71.第五步,构造一级压缩数据文件。压缩数据文件分为、文件头描述信息、数据块和尾部对齐数据块。数据块中最后一个数据块为虚拟目录描述文件的7z压缩folder信息块;文件头描述信息头,记录最后一块数据块的文件偏移距离(预设36字节)可支持pb级文件;虚拟目录描述文件的7z压缩folder信息块是虚拟目录描述文件调用7z算法,压缩转换为7z数据folder块;尾部对齐数据块根据数据块为二进制数据,其长度由数据块总字节总数除以8取余决定。经过上述第二到第五步,将所以模板文件压缩为一级数据文件。
72.第六步,通过遍历统计各个压缩数据文件中数据块中的元数据出现次数,并排序生成16gb字节的元数据仓库文件。具体算法分为:
73.步骤一,根据一级数据文件,生成二级数据文件。二级数据文件由压缩记录数据集合构成;压缩记录数据集合由一级文件的数据块排序后,压缩成以下格式:
74.{
75.{元数据,重复次数(8字节128位元统计)}每条占用16字节
76.{元数据,重复次数}
77...
78.};
79.步骤二,逐一合并各个二级数据文件,生成唯一的三级数据文件。三级数据文件由压缩记录数据集合构成;在合并过程中,如果三级数据文件的数据集合记录数大约2的32次方条时,丢牌重复次数最少的元数据记录;
80.步骤三,对三级数据文件按照重复次数排序,提取最多前2的31次方条记录,并保证提取,生成最大16gb元数据仓库文件。
81.第七步,使用元数据仓库文件作为索引表,对所有一级数据文件的数据块按元数据尺寸进行重建,生成最终数据发布文件。
82.在具体的实施例中,如果元数据出现在在数据块中,记录为元数据索引,否则以128开头,8字节原始数据:
[0083][0084]
本发明
所述下载解压过程采用解压算法,图2示出了本技术的一个具体的实施例的文件解压流程图,如图2所示,按照以下步骤进行:
[0085]
第一步,需要保证元数据仓库文件已经下载完成;
[0086]
第二步,使用前述压缩算法第七步,进行逆操作,还原成一级数据文件;
[0087]
第三步,调用压缩算法,解压最后一个数据块,得到虚拟目录描述文件
[0088]
第四步,根据虚拟目录描述文件和压缩算法中第五步,解压第一数据块,还原所有文件描述数据块
[0089]
第五步,根据虚拟目录描述文件和压缩算法中第四步,还原所有数据文件即目录,完成文件解压。
[0090]
在一个具体的实施例中,本技术发明人对前述方法进行了相关的测试:有2个独立目标文件为50gb的a.7z文件和34gb的b.mp4文件。根据本发明前述的压缩步骤计算,共生成三个文件,16gb的元数据仓库文件、a.7z.y文件25gb,已经15gb的b.mp$.y文件;如果用户首次下载文件a.7z.y共需要下载31gb数据,获得压缩比为62%。如果用户已经下载过元数据仓库文件,再下载b文件,共需下载15gb数据,获得压缩比为44%。如果用户已经下载过元数据仓库文件,再下载a和b文件,共需下载40gb数据,获得压缩比为54%。本发明在目前主流
压缩工具的压缩率基础上,通过生成的元数据仓库文件,进一步压缩交互数据的字节,进而提高网站存储空间利用率,并且本发明的方法的解压速度的影响比较小。
[0091]
继续参考图3,图3示出了根据本发明的实施例的基于元数据的数据交互系统的框架图。该系统具体包括压缩单元301和解压单元302。压缩单元301配置用于利用元数据压缩算法生成元数据仓库文件,其中,元数据压缩算法包括以下步骤:s11:为每个目标数据文件生成虚拟目录描述文件;s12:根据单一目标文件的扩展名,调用对应的文件分解算法将目标数据文件分解为若干数据块,并添加至虚拟目录描述文件中;s13:利用7z算法将分解后的数据块压缩转换为7z数据folder块,并在虚拟目录描述文件中添加7z数据folder描述数据库节点;s14:生成一级数据文件,遍历统计各个压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;解压单元302配置用于对于已经下载完成的元数据仓库文件,基于解压算法解压文件,包括:s21:还原一级数据文件,调用元数据压缩算法解压最后一个数据块,获得虚拟目录描述文件;s22:基于虚拟目录描述文件和元数据压缩算法中的步骤s14解压第一数据块,还原所有文件描述数据块;s23:基于虚拟目录描述文件和元数据压缩算法中的步骤s13,还原所有数据文件目录,完成文件解压。
[0092]
下面参考图4,其示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0093]
如图4所示,计算机系统包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram 403中,还存储有系统400操作所需的各种程序和数据。cpu 401、rom 402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
[0094]
以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
[0095]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(cpu)401执行时,执行本技术的方法中限定的上述功能。需要说明的是,本技术的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存
储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0096]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0097]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0098]
描述于本技术实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
[0099]
作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:利用元数据压缩算法生成元数据仓库文件,其中,元数据压缩算法包括以下步骤:利用元数据压缩算法生成元数据仓库文件,包括:为每个目标数据文件生成虚拟目录描述文件;将目标数据文件分解为若干数据块,并添加至描述文件中;将分解后的数据块压缩转换为7z数据folder块,并在描述文件中添加7z数据folder描述数据库节点;生成一级数据文件,遍历统计压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;对于已经下载完成的元数据仓库文件,基于解压算法解压文件,包括:还原一级数据文件,解压最后一个数据块,获得虚拟目录描述文件;解压第一数据块,还原所有文件描述数据块;还原所有数据文件目录,完成文件解压。
[0100]
以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
技术特征:
1.一种基于元数据的数据交互方法,其特征在于,包括:s1:利用元数据压缩算法生成元数据仓库文件,其中,所述元数据压缩算法包括以下步骤:s11:为每个目标数据文件生成虚拟目录描述文件;s12:根据单一目标文件的扩展名,调用对应的文件分解算法将所述目标数据文件分解为若干数据块,并添加至所述虚拟目录描述文件中;s13:利用7z算法将分解后的数据块压缩转换为7z数据folder块,并在所述虚拟目录描述文件中添加7z数据folder描述数据库节点;s14:生成一级数据文件,遍历统计各个压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;s2:对于已经下载完成的所述元数据仓库文件,基于解压算法解压文件,包括:s21:还原所述一级数据文件,调用所述元数据压缩算法解压最后一个数据块,获得所述虚拟目录描述文件;s22:基于所述虚拟目录描述文件和所述元数据压缩算法中的步骤s14解压第一数据块,还原所有文件描述数据块;s23:基于所述虚拟目录描述文件和所述元数据压缩算法中的步骤s13,还原所有数据文件目录,完成文件解压。2.根据权利要求1所述的基于元数据的数据交互方法,其特征在于,所述虚拟目录描述文件采用xml文件格式进行描述,用于记录目标文件的目录层级和数据文件的基本信息,以及文件数据块分解信息。3.根据权利要求1所述的基于元数据的数据交互方法,其特征在于,所述数据块包括文件描述数据块、原文件数据块和7z数据folder块,每个所述数据块按照原文件的存储顺序排列。4.根据权利要求3所述的基于元数据的数据交互方法,其特征在于,所述s13包括:将所有所述文件描述数据块合并后,调用7z算法压缩转换为7z数据folder块,并在所述虚拟目录描述文件中添加7z数据folder描述数据库节点;将每个所述原文件数据块分别调用7z算法压缩转换为7z数据folder块,并在所述虚拟目录描述文件中添加7z数据folder描述数据库节点。5.根据权利要求1所述的基于元数据的数据交互方法,其特征在于,所述元数据仓库文件为16gb的元数据仓库文件,具体生成方式包括:根据所述一级数据文件生成二级数据文件,所述二级数据文件由压缩记录数据集合构成,所述压缩记录数据集合由所述一级数据文件的数据块排序后压缩;逐一合并各个所述二级数据文件,生成唯一的三级数据文件,对所述三级数据文件按照重复次数排序,提取最多的前2
31
条记录,生成最大16gb元数据仓库文件。6.根据权利要求1所述的基于元数据的数据交互方法,其特征在于,所述元数据压缩算法还包括步骤s15:使用所述元数据仓库文件作为索引表,对所有所述一级数据文件的数据块按元数据尺寸进行重建,生成最终数据发布文件。7.根据权利要求1所述的基于元数据的数据交互方法,其特征在于,所述s14之前还包括步骤s131:构造一级压缩数据文件,所述压缩数据文件包括文件头描述信息、数据块和尾
部对齐数据块,所述文件头描述信息中记录最后一个数据块的文件偏移距离,所述数据块中最后一个数据块为所述虚拟目录描述文件调用7z算法压缩转换的7z数据folder块。8.根据权利要求7所述的基于元数据的数据交互方法,其特征在于,所述一级数据文件的生成方式为:将s12、s13和s131中所有的模板文件压缩为一级数据文件。9.根据权利要求6所述的基于元数据的数据交互方法,其特征在于,所述s21中基于所述步骤s15,进行逆操作还原成所述一级数据文件。10.一种计算机可读存储介质,其上存储有一或多个计算机程序,其特征在于,该一或多个计算机程序被计算机处理器执行时实施权利要求1至9任一项所述的方法。11.一种基于元数据的数据交互系统,其特征在于,所述系统包括:压缩单元,配置用于利用元数据压缩算法生成元数据仓库文件,其中,所述元数据压缩算法包括以下步骤:s11:为每个目标数据文件生成虚拟目录描述文件;s12:根据单一目标文件的扩展名,调用对应的文件分解算法将所述目标数据文件分解为若干数据块,并添加至所述虚拟目录描述文件中;s13:利用7z算法将分解后的数据块压缩转换为7z数据folder块,并在所述虚拟目录描述文件中添加7z数据folder描述数据库节点;s14:生成一级数据文件,遍历统计各个压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;解压单元:配置用于对于已经下载完成的所述元数据仓库文件,基于解压算法解压文件,包括:s21:还原所述一级数据文件,调用所述元数据压缩算法解压最后一个数据块,获得所述虚拟目录描述文件;s22:基于所述虚拟目录描述文件和所述元数据压缩算法中的步骤s14解压第一数据块,还原所有文件描述数据块;s23:基于所述虚拟目录描述文件和所述元数据压缩算法中的步骤s13,还原所有数据文件目录,完成文件解压。12.根据权利要求11所述的基于元数据的数据交互系统,其特征在于,所述虚拟目录描述文件采用xml文件格式进行描述,用于记录目标文件的目录层级和数据文件的基本信息,以及文件数据块分解信息;所述数据块包括文件描述数据块、原文件数据块和7z数据folder块,每个所述数据块按照原文件的存储顺序排列。13.根据权利要求12所述的基于元数据的数据交互系统,其特征在于,所述s13包括:将所有所述文件描述数据块合并后,调用7z算法压缩转换为7z数据folder块,并在所述虚拟目录描述文件中添加7z数据folder描述数据库节点;将每个所述原文件数据块分别调用7z算法压缩转换为7z数据folder块,并在所述虚拟目录描述文件中添加7z数据folder描述数据库节点。14.根据权利要求11所述的基于元数据的数据交互系统,其特征在于,所述元数据仓库文件为16gb的元数据仓库文件,具体生成方式包括:根据所述一级数据文件生成二级数据文件,所述二级数据文件由压缩记录数据集合构成,所述压缩记录数据集合由所述一级数据文件的数据块排序后压缩;逐一合并各个所述二级数据文件,生成唯一的三级数据文件,对所述三级数据文件按照重复次数排序,提取最多的前2
31
条记录,生成最大16gb元数据仓库文件。15.根据权利要求11所述的基于元数据的数据交互系统,其特征在于,所述s14之前还包括步骤s131:构造一级压缩数据文件,所述压缩数据文件包括文件头描述信息、数据块和尾部对齐数据块,所述文件头描述信息中记录最后一个数据块的文件偏移距离,所述数据块中最后一个数据块为所述虚拟目录描述文件调用7z算法压缩转换的7z数据folder块;所
述s14中一级数据文件的生成方式为:将s12、s13和s131中所有的模板文件压缩为一级数据文件;所述s14之后还包括s15:使用所述元数据仓库文件作为索引表,对所有所述一级数据文件的数据块按元数据尺寸进行重建,生成最终数据发布文件。16.根据权利要求15所述的基于元数据的数据交互系统,其特征在于,所述s21中基于所述步骤s15,进行逆操作还原成所述一级数据文件。
技术总结
公开了基于元数据的数据交互方法和系统,包括利用元数据压缩算法生成元数据仓库文件,包括:为每个目标数据文件生成虚拟目录描述文件;将目标数据文件分解为若干数据块,并添加至描述文件中;将分解后的数据块压缩转换为7z数据folder块,并在描述文件中添加7z数据folder描述数据库节点;生成一级数据文件,遍历统计压缩数据文件中数据块中元数据出现次数,排序生成元数据仓库文件;对于已经下载完成的元数据仓库文件,基于解压算法解压文件,包括:还原一级数据文件,解压最后一个数据块,获得虚拟目录描述文件;解压第一数据块,还原所有文件描述数据块;还原所有数据文件目录,完成文件解压。本申请可提高网站存储空间利用率,且解压速度的影响比较小。且解压速度的影响比较小。且解压速度的影响比较小。
技术研发人员:
刘驼峰 徐良 袁泉 刘源 古松景 慕荣臻
受保护的技术使用者:
厦门市美亚柏科信息股份有限公司
技术研发日:
2022.10.20
技术公布日:
2022/12/9