基于分布式文件系统的小文件存储方法及装置的制造方法

文档序号:9911270阅读:755来源:国知局
基于分布式文件系统的小文件存储方法及装置的制造方法
【技术领域】
[0001]本申请涉及通信领域,尤其涉及一种基于分布式文件系统的小文件存储方法及装置。
【背景技术】
[0002]随着信息技术的发展,面临的数据处理需求将越来越复杂,而且非结构化数据的比例也会越来越高。所谓结构化数据,是指可以按照特定格式进行整理的数据,更符合传统数据处理的需求;比如更符合关系型数据库的处理需求。而非结构化数据是指没有特定格式或者结构的数据;比如无特定格式的纯文本,图像,视频等数据。
[0003]在实际生产环境中,数据来源和类型可能会非常复杂,在进行数据处理的过程中,实际处理的数据中可能会包含大量的非结构化数据,甚至这些非结构化数据可能都是不同大小甚至包含各种不同格式的数据,因此在针对这些非结构化数据进行处理时,大量的小文件意味着将要面对海量的文件处理对象,当处理的小文件达到一定的数量后(比如数以亿计),可能会由于消耗大量的内存导致数据处理系统崩溃。

【发明内容】

[0004]本申请提出一种基于分布式文件系统的小文件存储方法,该方法包括:
[0005]为存在关联性的待存储小文件分配唯一对应的数据分表;所述数据分表为预设的逻辑二维表,包括由预设大小的逻辑存储单元构成的若干逻辑行和逻辑列;所述待存储文件包括文件类型和大小均不相同的批量小文件;
[0006]将所述待存储小文件中存在关联性的小文件分别存储至所述数据分表中的同一逻辑行或者同一逻辑列;
[0007]针对所述存在关联性的小文件分别生成唯一对应的文件索引,并将该文件索引保存至对应的逻辑行或者逻辑列中。
[0008]可选的,所述为存在关联性的待存储小文件分配唯一对应的数据分表包括:
[0009]基于表征所述待存储小文件的关联性的信息生成唯一对应的查询索引;
[0010]为生成的所述查询索引分配对应的数据分表,并建立所述查询索引与所述数据分表之间的映射关系。
[0011]可选的,所述将所述待存储小文件中存在关联性的小文件分别存储至所述数据分表中的同一逻辑行或者同一逻辑列包括:
[0012]依次读取所述待存储小文件中存在关联性的小文件;
[0013]在所述数据分表中为所述待存储小文件中存在关联性的小文件分别指定逻辑行或者逻辑列;
[0014]基于所述逻辑行或者逻辑列的逻辑存储地址将所述存在关联性的小文件分别存储至指定的同一逻辑行或者同一逻辑列中。
[0015]可选的,所述基于所述逻辑行或者逻辑列的逻辑存储地址将所述存在关联性的小文件存储至指定的同一逻辑行或者同一逻辑列中包括:
[0016]从所述存在关联性的小文件中依次读取目标小文件;
[0017]判断读取到的所述目标小文件的大小是否大于所述逻辑存储单元的大小;
[0018]当读取到的所述目标小文件的大小小于或者等于所述逻辑存储单元的大小时,基于所述逻辑行或者逻辑列的逻辑存储地址将所述目标小文件的文件内容存储至同一逻辑行或者同一逻辑列中;
[0019]当读取到的所述目标小文件的大小大于所述逻辑存储单元的大小时,基于所述逻辑行或者逻辑列的逻辑存储地址将所述目标小文件的文件内容分片存储至同一逻辑行或者同一逻辑列;或者对所述目标小文件进行单独存储,将所述目标小文件的存储位置提示信息存储至同一逻辑行或者同一逻辑列中。
[0020]可选的,所述方法还包括:
[0021]当为所述存在关联性的小文件指定的为逻辑行时,在将所述存在关联性的小文件分别存储至指定的同一逻辑行后,所述数据分表中同一逻辑列中存储的小文件的文件类型相同;
[0022]当为所述存在关联性的小文件指定的为逻辑列时,在将所述存在关联性的小文件分别存储至指定的同一逻辑列后,所述数据分表中同一逻辑行中的存储的小文件的文件类型相同。
[0023]可选的,所述方法还包括:
[0024]针对所述数据分表生成对应的分表索引;
[0025]其中,所述分表索引包括针对所述数据分表中各逻辑行或者逻辑列中所存储的文件类型的描述信息。
[0026]可选的,所述表征所述待存储小文件的关联性的信息包括所述待存储小文件的来源信息以及业务类型信息;
[0027]所述待存储小文件的来源信息包括所述待存储小文件的url地址;所述业务类型信息包括业务ID;
[0028]所述待存储小文件中存在关联性的小文件包括所述待存储小文件中处于同一目标页面中的小文件;或者所述待存储小文件中业务类型相同的小文件;
[0029]所述文件索引包括针对所述目标页面的url地址进行哈希计算得到的哈希值;或者与所述业务类型对应的业务ID;
[0030]所述查询索引包括针对所述待存储文件的url地址进行哈希计算得到的哈希值。
[0031]本申请还提出一种基于分布式文件系统的小文件存储装置,该装置包括:
[0032]分配模块,用于为存在关联性的待存储小文件分配唯一对应的数据分表;所述数据分表为预设的逻辑二维表,包括由预设大小的逻辑存储单元构成的若干逻辑行和逻辑列;所述待存储文件包括文件类型和大小均不相同的批量小文件;
[0033]存储模块,用于将所述待存储小文件中存在关联性的小文件分别存储至所述数据分表中的同一逻辑行或者同一逻辑列;
[0034]生成模块,用于针对所述存在关联性的小文件分别生成唯一对应的文件索引,并将该文件索引保存至对应的逻辑行或者逻辑列中。
[0035]可选的,所述分配模块具体用于:
[0036]基于表征所述待存储小文件的关联性的信息生成唯一对应的查询索引;
[0037]为生成的所述查询索引分配对应的数据分表,并建立所述查询索引与所述数据分表之间的映射关系
[0038]可选的,所述存储模块具体用于:
[0039]依次读取所述待存储小文件中存在关联性的小文件;
[0040]在所述数据分表中为所述待存储小文件中存在关联性的小文件分别指定逻辑行或者逻辑列;
[0041]基于所述逻辑行或者逻辑列的逻辑存储地址将所述存在关联性的小文件分别存储至指定的同一逻辑行或者同一逻辑列中。
[0042]可选的,所述存储模块进一步用于:
[0043]从所述存在关联性的小文件中依次读取目标小文件;
[0044]判断读取到的所述目标小文件的大小是否大于所述逻辑存储单元的大小;
[0045]当读取到的所述目标小文件的大小小于或者等于所述逻辑存储单元的大小时,基于所述逻辑行或者逻辑列的逻辑存储地址将所述目标小文件的文件内容存储至同一逻辑行或者同一逻辑列中;
[0046]当读取到的所述目标小文件的大小大于所述逻辑存储单元的大小时,基于所述逻辑行或者逻辑列的逻辑存储地址将所述目标小文件的文件内容分片存储至同一逻辑行或者同一逻辑列;或者对所述目标小文件进行单独存储,将所述目标小文件的存储位置提示信息存储至同一逻辑行或者同一逻辑列中。
[0047]可选的,当为所述存在关联性的小文件指定的为逻辑行时,在将所述存在关联性的小文件分别存储至指定的同一逻辑行后,所述数据分表中同一逻辑列中存储的小文件的文件类型相同;
[0048]当为所述存在关联性的小文件指定的为逻辑列时,在将所述存在关联性的小文件分别存储至指定的同一逻辑列后,所述数据分表中同一逻辑行中的存储的小文件的文件类型相同。
[0049]可选的,所述生成模块进一步用于:
[0050]针对所述数据分表生成对应的分表索引;
[0051]其中,所述分表索引包括针对所述数据分表中各逻辑行或者逻辑列中所存储的文件类型的描述信息。
[0052]可选的,所述表征所述待存储小文件的关联性的信息包括所述待存储小文件的来源信息以及业务类型信息;
[0053]所述待存储小文件的来源信息包括所述待存储小文件的url地址;所述业务类型信息包括业务ID;
[0054]所述待存储小文件中存在关联性的小文件包括所述待存储小文件中处于同一目标页面中的小文件;或者所述待存储小文件中业务类型相同的小文件;
[0055]所述文件索引包括针对所述目标页面的url地址进行哈希计算得到的哈希值;或者与所述业务类型对应的业务ID;
[0056]所述查询索引包括针对所述待存储文件的url地址进行哈希计算得到的哈希值。
[0057]本申请中,通过为存在关联性的待存储小文件分配唯一对应的数据分表;所述数据分表为预设的逻辑二维表,包括由预设大小的逻辑存储单元构成的若干逻辑行和逻辑列;将所述待存储小文件中存在关联性的小文件分别存储至所述数据分表中的同一逻辑行或者同一逻辑列;针对所述存在关联性的小文件分别生成唯一对应的文件索引,并将该文件索引保存至对应的逻辑行或者逻辑列中,可以实现将存在关联性的大量非结构化的小文件存储至同一数据分表,并在存储时将这些非结构化的小文件中存在关联性的小文件映射至逻辑二维表中的同一逻辑行或者逻辑列,可以显著降低分布式文件系统的文件存储压力。而且,在针对
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1