一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文件合并方法及装置、电子设备和存储介质与流程

2022-07-16 11:34:50 来源:中国专利 TAG:


1.本公开涉及信息技术领域,尤其涉及一种文件合并方法及装置、电子设备及存储介质。


背景技术:

2.随着计算机技术的快速发展,电子设备的各个系统产生的数据量也随之增多,而对于数据的处理却越来越复杂,投入的人力成本以及学习和使用的成本也日渐增多。
3.电子设备在运行的过程中,即使是同一类型的文件也会产生大量的碎片文件,从而使得电子设备中的数据任务读取的速度变的越来越慢,电子设备需要寻找大量的文件并进行寻址操作,对电子设备的内存和资源造成了较大的压力。而通过人为处理碎片文件,会出现处理效率低,出错率较高,还会造成学习成本的增加等问题。


技术实现要素:

4.本公开实施例提供一种文件合并方法及装置、电子设备及存储介质。
5.本公开实施例第一方面提供一种文件合并方法,由电子设备执行,所述方法包括:
6.确定文件合并模式;
7.根据所述文件合并模式,确定是否存在合并需求;
8.当存在合并需求时,合并目标目录下的目标文件;其中,所述目标目录下的目标文件的数据量,小于所述目标目录下非目标文件的数据量。
9.基于上述方案,所述确定文件合并模式,包括:
10.根据所述电子设备的负载率、可用资源状况信息、从用户界面ui接收的操作指令和文件合并预先配置策略,确定所述文件合并模式。
11.基于上述方案,所述根据所述文件合并模式,确定是否存在合并需求,包括:
12.当所述合并模式为第一模式时,确定所述目标目录中是否存在小于合并阈值的文件;
13.若所述目标目录中存在小于所述合并阈值的文件,确定存在合并需求。
14.基于上述方案,所述根据所述文件合并模式,确定是否存在合并需求,包括:
15.当所述合并模式为第二模式时,确定所述目标目录中各文件的平均数据量是否小于合并阈值;
16.当所述平均数据量小于合并阈值时,确定存在文件合并需求。
17.基于上述方案,所述根据所述文件合并模式,确定是否存在合并需求,包括:
18.当所述合并模式为第三模式时,确定所述目标目录下所述目标文件的占比;
19.当所述目标文件的占比大于占比阈值时,确定存在文件合并需求。
20.基于上述方案,所述当存在合并需求时,合并目标目录下的目标文件,包括:
21.将所述目标目录下的目标文件移动到第一临时目录;
22.合并第一临时目录下的所述目标文件得到合并文件;
23.将所述合并文件写入第二临时目录。
24.基于上述方案,所述方法还包括:
25.在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功;
26.当所述目标文件合并成功时,将所述第二临时目录中的所述合并文件移动到所述目标目录,将所述第一临时目录和所述第二临时目录删除。
27.基于上述方案,所述方法还包括:
28.将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息。
29.基于上述方案,所述在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功,包括:
30.根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内;
31.当所述第一临时目录中所述目标文件的文件内容全部包含在所述第二临时目录内的所述合并文件内,确定所述目标文件合并成功。
32.基于上述方案,所述根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内,包括:
33.分别确定所述第一临时目录中所述目标文件的文件内容的第一个数和第二临时目录内的所述合并文件内的文件内容的第二个数;
34.当所述第二个数不等于所述第一个数时,确定所述目标文件合并失败;
35.当所述第二个数等于所述第一个数时,核对所述第一临时目录中所述目标文件的文件内容和所述合并文件内的文件内容,根据核对结果目标文件是否合并成功。
36.基于上述方案,所述方法还包括:
37.确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件。
38.基于上述方案,所述确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件,包括:
39.记录合并失败次数;
40.当所述合并失败次数小于等于重试阈值时,再次合并所述目标目录下的目标文件;
41.当所述合并失败次数大于重试阈值时,根据所述第一临时目录恢复所述目标目录的文件。
42.基于上述方案,所述方法还包括:
43.根据所述第一临时目录恢复所述目标目录的文件后,将所述第一临时目录和所述第二临时目录删除。
44.基于上述方案,所述方法还包括:
45.确定所述目标文件合并失败后,触发预警功能,输出合并失败的预警信息。
46.基于上述方案,所述将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息,包括:
47.将所述第一临时目录和第二临时目录删除后,在所述目标目录下生成空文件;
48.根据文件合并成功的提示符,命名所述空文件。
49.本公开实施例第二方面提供一种文件合并装置,由电子设备执行,所述装置包括:
50.第一确定模块,用于确定文件合并模式;
51.第二确定模块,用于根据所述文件合并模式,确定是否存在合并需求;
52.合并模块,用于当存在合并需求时,合并目标目录下的目标文件;其中,所述目标目录下的目标文件的数据量,小于所述目标目录下非目标文件的数据量。
53.基于上述方案,所述第一确定模块,具体用于根据所述电子设备的负载率、可用资源状况信息、从用户界面ui接收的操作指令和文件合并预先配置策略,确定所述文件合并模式。
54.基于上述方案,所述第二确定模块,具体用于当所述合并模式为第一模式时,确定所述目标目录中是否存在小于合并阈值的文件;若所述目标目录中存在小于所述合并阈值的文件,确定存在合并需求。
55.基于上述方案,所述第二确定模块,具体用于当所述合并模式为第二模式时,确定所述目标目录中各文件的平均数据量是否小于合并阈值;当所述平均数据量小于合并阈值时,确定存在文件合并需求。
56.基于上述方案,所述第二确定模块,具体用于当所述合并模式为第三模式时,确定所述目标目录下所述目标文件的占比;当所述目标文件的占比大于占比阈值时,确定存在文件合并需求。
57.基于上述方案,所述合并模块,包括:
58.移动子模块,用于将所述目标目录下的目标文件移动到第一临时目录;
59.合并子模块,用于合并第一临时目录下的所述目标文件得到合并文件;
60.写入模块,用于将所述合并文件写入第二临时目录。
61.基于上述方案,所述装置还包括:
62.第三确定模块,用于在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功;
63.移动模块,用于当所述目标文件合并成功时,将所述第二临时目录中的所述合并文件移动到所述目标目录,将所述第一临时目录和所述第二临时目录删除。
64.基于上述方案,所述装置还包括:
65.生成模块,用于将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息。
66.基于上述方案,所述第三确定模块,包括:
67.判断模块,用于根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内;
68.第三确定子模块,用于当所述第一临时目录中所述目标文件的文件内容全部包含在所述第二临时目录内的所述合并文件内,确定所述目标文件合并成功。
69.基于上述方案,所述判断模块,具体用于分别确定所述第一临时目录中所述目标文件的文件内容的第一个数和第二临时目录内的所述合并文件内的文件内容的第二个数;当所述第二个数不等于所述第一个数时,确定所述目标文件合并失败;当所述第二个数等于所述第一个数时,核对所述第一临时目录中所述目标文件的文件内容和所述合并文件内的文件内容,根据核对结果目标文件是否合并成功。
70.基于上述方案,所述装置还包括:
71.恢复模块,用于确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件。
72.基于上述方案,所述恢复模块,具体用于记录合并失败次数;当所述合并失败次数小于等于重试阈值时,再次合并所述目标目录下的目标文件;当所述合并失败次数大于重试阈值时,根据所述第一临时目录恢复所述目标目录的文件。
73.基于上述方案,所述装置还包括:
74.删除模块,用于根据所述第一临时目录恢复所述目标目录的文件后,将所述第一临时目录和所述第二临时目录删除。
75.基于上述方案,所述装置还包括:
76.报警模块,用于确定所述目标文件合并失败后,触发预警功能,输出合并失败的预警信息。
77.基于上述方案,所述生成模块,具体用于将所述第一临时目录和第二临时目录删除后,在所述目标目录下生成空文件;根据文件合并成功的提示符,命名所述空文件。
78.本公开实施例第三方面提供一种电子设备,包括:
79.用于存储处理器可执行指令的存储器;
80.处理器,与所述存储器连接;
81.其中,所述处理器被配置为执行如前述任意技术方案提供的文件合并方法。
82.本公开实施例第四方面提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机的处理器执行时,使得计算机能够执行如前述任意技术方案提供的文件合并方法。
83.本公开的实施例提供的技术方案可以包括以下有益效果:
84.本公开实施例中提供的技术方案,文件合并方法包括:确定文件合并模式;根据所述文件合并模式,确定是否存在合并需求;当存在合并需求时,合并目标目录下的目标文件;其中,所述目标目录下的目标文件的数据量,小于所述目标目录下非目标文件的数据量。本公开实施例提供多种合并模式,方便根据文件合并的实际需求和/或用户意愿,选择适用于当前状态的合并模式,进行文件合并。故本公开实施例提供的文件合并方法,能够实现快速并且灵活的进行文件的合并,提高了电子设备合并文件的效率,减少了人为合并的学习成本。
附图说明
85.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
86.图1是根据一示例性实施例示出的电子设备的一种文件合并方法的流程示意图;
87.图2是根据一示例性实施例示出的电子设备的一种文件合并方法的流程示意图;
88.图3是根据一示例性实施例示出的一种文件合并装置的结构示意图;
89.图4是根据一示例性实施例示出的电子设备的结构示意图。
具体实施方式
90.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及
附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的方法的例子。
91.如图1所示,本公开实施例提供一种文件合并方法,由电子设备执行,所述方法包括:
92.s110:确定文件合并模式;
93.s120:根据所述文件合并模式,确定是否存在合并需求;
94.s130:当存在合并需求时,合并目标目录下的目标文件;其中,所述目标目录下的目标文件的数据量,小于所述目标目录下非目标文件的数据量。
95.本公开实施例提供的电子设备可为各种类型的电子设备。例如,该电子设备可为终端设备或者服务器。示例性地,该终端设备可包括:个人电脑(personal computer,pc)等。该pc可包括台式pc、笔记本电脑或者大屏显示设备等。该服务器可为:机架式服务器和/或刀片式服务器。
96.在一些实施例中,该电子设备可为信息技术(information technology,it)设备。该it设备包括各种参与it计算的设备。例如,该it设备可作为区块链节点的设备。
97.电子设备可包括:处理器和存储器等。
98.示例性地,该处理器包括但不限于:中央处理器、微控制器、嵌入式控制器和/或图像处理器。
99.示例性地,该存储器包括但不限于:内存器、磁盘、闪存或者硬盘等用于设备内信息暂存和存储的电子元器件。
100.示例性地,可以通过文件合并工具对目标目录下的目标文件进行合并。可以理解地,文件合并工具可为各种能够进行数据合并的数据处理引擎。该数据处理引擎包括但不限于spark。
101.可以理解地,本公开中的文件合并方法可以用于数据处理平台的调度任务。可以设置为周期性进行调用文件合并方法。示例性地,周期性是指,每天8点执行,或者每月1号执行等等。周期间隔时间的设置视具体情况而定。
102.合并模式是指根据合并阈值、目标目录下文件的平均数据量或小于合并阈值的文件占比,上述三种方式确定出的目标文件数据量和文件的个数都可能不同,根据具体情况选择不同的方式确定合并模式。在目标目录中确定出目标文件后,进行文件合并。
103.由于电子设备中执行的任务较多,往往同时需要执行多个任务,而多个任务执行的过程中通常会使得cpu的占有率较高。因此在执行合并文件的操作之前需要根据电子设备的资源使用情况来确定进行文件合并的合并模式。
104.在确定文件合并的模式之后,还需要当前是否存在合并的需求,例如目标目录中没有需要文件或者文件的数据量不满足预设的条件时,是不需要进行合并,也就是说不存在合并请求。
105.当目标目录的目标文件的占比或者文件的数据量满足预设的条件时,存在合并需求,则按照确定的合并模式合并目标目录中的文件。目标目录是指待合并的目标文件的目录。
106.合并目标文件时,需要的参数包括:合并后文件的存储目录、目标文件的名称、文
件合并的阈值、第一临时目录、第二临时目录、合并后文件的类型和并行度参数等。
107.在文件被写入目标目录的同时,将目标目录中写入文件的数据量、个数、占用空间、以及目标目录中文件的平均数据量,记录在数据系统中,方便合并文件时使用。
108.可以理解地,目标文件属于同一类型的文件,例如同一类型的xml数据。
109.在一些实施例中,所述s110,包括:
110.根据所述电子设备的负载率、可用资源状况信息、从用户界面ui接收的操作指令和文件合并预先配置策略,确定所述文件合并模式。
111.可以理解地,文件合并存在多个模式,根据电子设备或者用户的指令可以匹配不同的文件合并模式。
112.可以理解地,电子设备的负载率是指在一定时间间隔内,电子设备内运行队列的平均线程数。线程数高代表负载率高,线程数低代表负载率低。
113.根据负载率阈值确定文件合并模式。例如,当电子设备的负载率大于负载率阈值时,将合并模式设置为第二模式或者第三模式;当电子设备的负载率小于等于负载率阈值时,将合并模式设置为第一模式。通过电子设备的负载率与负载率阈值的对比,从而设置不同合并模式,在合并文件合并的过程中,避免了因负载率导致电子设备崩溃,而导致文件合并失败的情况产生。
114.例如,可用资源为电子设备内存的可用数据量。
115.根据可用数据量阈值确定文件合并模式。例如,当电子设备的可用数据量大于可用数据量阈值时,电子设备的运行效率会降低,故将合并模式设置为第二模式或者第三模式;当电子设备的可用数据量小于等于可用数据量阈值时,电子的运行效率较高,故将合并模式设置为第一模式。通过可用资源来确定最适合电子设备的合并模式,从而保证了文件合并的稳定进行,在合并文件的过程中,避免了因可用资源的使用情况而导致文件合并失败的产生。
116.可以理解地,从用户界面ui接收的操作指令也可以影响文件合并模式。例如,用户可以设置文件合并的阈值或待合并文件的占比,当目标目录下的文件数据量小于设置的阈值时,该文件属于目标文件。当目标文件的数量占比,即目标文件与目标目录下文件的总数量的比值超过用户设置的占比时,进行合并操作。如此,使得合并文件的模式在用户控制的范围内。
117.用户还可以设置是否启用合并,例如用户设置为否时,则不会进行文件合并操作。当用户设置为是时,则确定合并模式进行合并操作。在用户出现客观紧急情况时,用户不需要进行合并操作时,可以通过该设置来满足使用的场景。
118.在一些实施例中,所述s120,包括:
119.当所述合并模式为第一模式时,确定所述目标目录中是否存在小于合并阈值的文件;
120.若所述目标目录中存在小于所述合并阈值的文件,确定存在合并需求。
121.可以理解地,合并阈值是用户在合并文件之前设置的参数。例如,可以设置文件的合并阈值为128m,那么文件的数据量小于128m时,就认为该文件为目标文件。
122.第一模式是根据合并阈值来确定目标文件,将小于该合并阈值的文件均认定为目标文件。因此第一模式可俗称严格模式,使用该模式合并后的生成的合并后的文件数量较
少,合并效果好。当电子设备的cpu占有率低或者资源的使用情况良好时,可以选择第一模式进行合并文件。
123.在一些实施例中,所述s120,包括:
124.当所述合并模式为第二模式时,确定所述目标目录中各文件的平均数据量是否小于合并阈值;
125.当所述平均数据量小于合并阈值时,确定存在文件合并需求。
126.可以理解地,目标目录中的平均数据量也可以用来确定目标文件。首先计算目标目录中文件的平均数据量,计算方式为:目标目录的总数据量/目标目录的文件总数量,从而得到平均数据量。当文件的平均数据量小于用户预设的合并阈值时,该文件则为目标文件。
127.第二模式可俗称折中模式。当目标目录下的文件数量不是太多时,可以选择该模式进行合并文件。如此当电子设备的负载率较高或可用资源较少时,可以将合并模式设置为第二模式,在保证电子设备正常运行的情况下,能使得合并文件的成功率增大。
128.在一些实施例中,所述s120,包括:
129.当所述合并模式为第三模式时,确定所述目标目录下所述目标文件的占比;
130.当所述目标文件的占比大于占比阈值时,确定存在文件合并需求。
131.可以理解地,第三模式需要获取占比阈值,占比阈值为用户预先设置的参数。例如,占比阈值为50%。还需要获取目标文件的个数或数据量,目标文件为小于预设阈值的文件,计算当前目标目录中目标文件个数或数据量的占比大于预设的占比阈值时,则确定出存在文件合并需求。当前目标目录中目标文件个数或者数据量的占比小于预设占比阈值时,则不存在文件合并需求。
132.第三模式为宽松模式,当目标目录中的目标文件不是太多时,可以选择该模式进行合并文件。如此当电子设备的负载率较高或可用资源较少时,为了维持电子设备的正常运行,可以将合并模式设置为第三模式,在保证电子设备正常运行的情况下,能使得合并文件的成功率增大。
133.在一些实施例中,所述s130,包括:
134.将所述目标目录下的目标文件移动到第一临时目录;
135.合并第一临时目录下的所述目标文件得到合并文件;
136.将所述合并文件写入第二临时目录。
137.第一临时目录和第二临时目录,是用户预先设置的目录或者默认的目录。第一临时目录、第二临时目录和目标目录的路径和目录名称不同即可。
138.根据第一临时目录中的文件确定出文件合并的并行度参数,计算方式为:第一临时目录下文件的总数据量,除以阈值,得到并行度参数。通过该方式能够快速确定并行度参数,从而根据并行度参数对目标文件进行合并。
139.可以理解地,在合并文件之前,将目标文件移动到第一临时目录,第一临时目录既可以作为备份待合并文件的目录,也可以作为合并文件时获取待合并文件的目录。备份在第一临时目录下的文件,可以作为当文件合并失败,恢复文件时所使用,恢复文件时可将第一临时目录下的文件恢复至目标目录中。
140.第二临时目录用于存储合并后的文件。如此将合并前、合并后的文件以及目标目
录下的文件分开存储,能够保证合并文件的程序能够准确进行,提高合并文件的效率。并且通过第一临时目录、第二临时目录以及目标目录下的文件情况,也方便查看和确定文件合并的进度。
141.在一些实施例中,如图2所示,所述方法还包括:
142.s210:在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功;
143.s220:当所述目标文件合并成功时,将所述第二临时目录中的所述合并文件移动到所述目标目录,将所述第一临时目录和所述第二临时目录删除。
144.可以理解地,可以通过检查第二临时目录文件的生成情况,例如可以检查文件生成的个数以及数据量,来确定文件是否合并成功。
145.为了节省电子设备的存储空间,降低电子设备的资源占有率,在文件合并成功之后,将第二临时目录中的合并成功的文件移动到目标目录,用户仅仅通过检查目标目录下的文件,就可以确定当前文件合并程序是否已经结束,如此方便了用户查看文件生成的情况。
146.并且在文件合并成功之后,第一临时目录和第二临时目录的文件也就处于不再使用的状态,因此将第一临时目录和第二临时目录删除,从而节省了电子设备的资源占有率。
147.在一些实施例中,所述方法还包括:
148.s310:将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息。
149.可以理解地,在确定文件合并成功后,生成合并提示信息,用户根据该提示信息可以进一步确定文件合并已经成功。该提示信息方便用户知晓当前合并文件成功的状态。
150.在一些实施例中,所述s210,包括:
151.s2101:根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内;
152.s2102:当所述第一临时目录中所述目标文件的文件内容全部包含在所述第二临时目录内的所述合并文件内,确定所述目标文件合并成功。
153.可以理解地,通过检查文件内容是否完全包含在合并之后的文件内,这样可以准确的确定出合并是否成功。
154.可以理解地,在检查文件合并是否成功时,可以通过检查文件的内容,例如关键字等信息。
155.示例性地,可以检查文件的首行和末行,如果首行和合并时第一个文件的第一行相同,并且末行和合并时最后一个文件的最后一行相同,则可以确定文件合并成功,否则文件合并失败。
156.示例性地,可以检查合并后文件的数据量和合并前文件的数据量,如果两者数据量相同,则可以确定文件合并成功,否则文件合并失败。
157.在一些实施例中,所述s2101,包括:
158.分别确定所述第一临时目录中所述目标文件的文件内容的第一个数和第二临时目录内的所述合并文件内的文件内容的第二个数;
159.当所述第二个数不等于所述第一个数时,确定所述目标文件合并失败;
160.当所述第二个数等于所述第一个数时,核对所述第一临时目录中所述目标文件的
文件内容和所述合并文件内的文件内容,根据核对结果目标文件是否合并成功。
161.可以理解地,第一个数是指第一临时目录中文件内容的条数,第二个数是指第二临时目录内合并文件的文件内容的条数,如果两个条数相等之后,还可以对比第一临时目录中的文件内容是否相同,从而进一步确定文件合并是否成功。
162.在一些实施例中,所述方法还包括:
163.s410:确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件。
164.可以理解地,当文件合并失败之后,为了不影响目标目录的文件或者是为了方便后续再次启动合并程序,需要将第一临时目录备份的文件,恢复至目标目录,使得目标目录的文件个数和内容和合并之前相同。通过恢复操作,使得再次启动合并程序能够快速顺利进行,减少了合并出错的可能性。
165.在一些实施例中,所述s410,包括:
166.记录合并失败次数;
167.当所述合并失败次数小于等于重试阈值时,再次合并所述目标目录下的目标文件;
168.当所述合并失败次数大于重试阈值时,根据所述第一临时目录恢复所述目标目录的文件。
169.可以理解地,由于文件合并过程中,失败的情况时有发生,有各种原因,资源、存储或者cpu等等。如果每次都需要人工处理,那么耗费人力成本较多,通过设置重试阈值,设置重试的时间周期,例如5分钟后重试,具体时间间隔视具体情况稳定。
170.可以在文件合并失败之后,通过记录的失败次数与重试阈值进行比较,在没有超出重试阈值的情况下,可以再次合并目标目录下的文件。如此可以降低人力成本的消耗,并且同时节省了人力学习重新启动合并程序的学习成本。
171.当失败次数超出重试阈值时,则进行恢复操作,即将第一临时目录备份的文件恢复至目标目录中。
172.在一些实施例中,所述方法还包括:
173.s510:根据所述第一临时目录恢复所述目标目录的文件后,将所述第一临时目录和所述第二临时目录删除。
174.可以理解地,在合并失败的情况下,恢复目标目录的文件之后,由于第一临时目录和第二临时目录在磁盘中占据一定的空间,而第一临时目录和第二临时目录中的文件是作为合并过程中的中间目录,在文件合并成功之后,将第一临时目录和第二临时目录删除,从而节省了电子设备资源的占用率。
175.在一些实施例中,所述方法还包括:
176.s610:确定所述目标文件合并失败后,触发预警功能,输出合并失败的预警信息。
177.可以理解地,文件合并失败之后,通过预警功能使得用户能够快速获得合并失败的信息,而不需要在电子设备上通过手动查看文件信息来获取文件失败。如此提高了文件失败后处理的效率。
178.示例性地,预警功能包括:可以给特定的人发送短信。可以预先配置关键的手机号码,通过短信使得用户更快的知晓。
179.在一些实施例中,所述s310,包括:
180.将所述第一临时目录和第二临时目录删除后,在所述目标目录下生成空文件;
181.根据文件合并成功的提示符,命名所述空文件。
182.可以理解地,在文件合并成功之后,在目标目录生成空文件,空文件用于指示文件可以已经成功结束。
183.示例性地,空文件可以命名为_success。
184.在一个实施例中,后续出现的严格模式即为上述的第一模式,折中模式即为上述的第二模式,宽松模式即为第三模式,重试次数即为重试阈值。可以使用spark文件合并工具处理大数据过程中会出现文件的问题。基于在电子设备中采集数据的信息,自动合并文件。
185.在数据写入磁盘时,记录相关的重要指标(metrics),重要指标包括分区/表的记录数量和文件数量信息。在数据写入磁盘后,自动触发碎片文件检测,判断是否需要启动合并数据任务。实现合并文件的服务用于合并表/分区碎片文件,通过系统或者用户直接调用。
186.电子设备能够自动的检测文件,并且自动合并,不需要人工的干预。在数据任务执行完成后,统计数据表目标目录文件个数,每个文件数据量,并计算出文件的平均数据量,并把这些信息记录在元数据系统中。
187.合并文件需要一定的执行时间和资源(cpu、内存和网络),用户可以选择合并文件的合并模式。合并模式包括:
188.严格模式:小于阈值的文件都需要合并。运用该模式,最终合并后的文件最多只有一个文件的数据量小于设定的阈值。但使用的此模式,耗费的资源以及花费的时间较多。
189.折中模式:文件的平均数据量小于阈值时需要合并。此种合并模式是保证文件的个数不少于没有目标文件的情况下的文件个数,文件数不至于太多。
190.宽松模式:小于阈值的文件个数占文件总个数大于占比阈值(例如:占比阈值可以是40%、45%、50%、55%或60%)。此种合并模式保证文件数较少。
191.用户自定义:用户可以定义目标文件(待合并文件)的占比,是否启用合并。
192.根据用户选定的合并模式,把所有文件数据量小于设定的阈值的文件移动到第一临时目录。统计这些临时目录的文件总数据量,并除以阈值。可以计算出最终的合并后文件的个数。并把这个作为spark的并行度参数,利用spark合并文件,并把合并结果写入第二临时目录。
193.合并完成后,通过校验第一临时目录和第二临时目录中的文件,检验合并是否成功。
194.如果合并成功,最终将这个第二临时目录中的文件移动到原始的目标目录。最后清理第一临时目录和第二临时目录,并删除,并在原始的目标目录中建立一个空的名为_success文件,表示文件合并结束。
195.如果合并失败,根据用户配置的参数重试阈值,进行重试操作。如果还是失败,需要恢复目标目录,把移动到第一临时目录文件移回目标目录,并删除第一临时目录和第二临时目录,并给用户发告警。
196.将文件合并做成一个服务并集成到调度系统中。当有用户表/分区数据写入后自
动触发该服务的调用,并完成目标文件的检测和合并。用户还可以手动调用该服务合并历史目录文件。
197.如图3所示,本公开实施例提供一种文件合并装置,由电子设备执行,所述装置包括:
198.第一确定模块110,用于确定文件合并模式;
199.第二确定模块120,用于根据所述文件合并模式,确定是否存在合并需求;
200.合并模块130,用于当存在合并需求时,合并目标目录下的目标文件;其中,所述目标目录下的目标文件的数据量,小于所述目标目录下非目标文件的数据量。
201.在一些实施例中,所述第一确定模块110,具体用于根据所述电子设备的负载率、可用资源状况信息、从用户界面ui接收的操作指令和文件合并预先配置策略,确定所述文件合并模式。
202.在一些实施例中,所述第二确定模块120,具体用于当所述合并模式为第一模式时,确定所述目标目录中是否存在小于合并阈值的文件;若所述目标目录中存在小于所述合并阈值的文件,确定存在合并需求。
203.在一些实施例中,所述第二确定模块120,具体用于当所述合并模式为第二模式时,确定所述目标目录中各文件的平均数据量是否小于合并阈值;当所述平均数据量小于合并阈值时,确定存在文件合并需求。
204.在一些实施例中,所述第二确定模块120,具体用于当所述合并模式为第三模式时,确定所述目标目录下所述目标文件的占比;当所述目标文件的占比大于占比阈值时,确定存在文件合并需求。
205.在一些实施例中,所述合并模块130,包括:
206.移动子模块,用于将所述目标目录下的目标文件移动到第一临时目录;
207.合并子模块,用于合并第一临时目录下的所述目标文件得到合并文件;
208.写入模块,用于将所述合并文件写入第二临时目录。
209.在一些实施例中,所述装置还包括:
210.第三确定模块,用于在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功;
211.移动模块,用于当所述目标文件合并成功时,将所述第二临时目录中的所述合并文件移动到所述目标目录,将所述第一临时目录和所述第二临时目录删除。
212.在一些实施例中,所述装置还包括:
213.生成模块,用于将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息。
214.在一些实施例中,所述第三确定模块,包括:
215.判断模块,用于根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内;
216.第三确定子模块,用于当所述第一临时目录中所述目标文件的文件内容全部包含在所述第二临时目录内的所述合并文件内,确定所述目标文件合并成功。
217.在一些实施例中,所述判断模块,具体用于分别确定所述第一临时目录中所述目标文件的文件内容的第一个数和第二临时目录内的所述合并文件内的文件内容的第二个
数;当所述第二个数不等于所述第一个数时,确定所述目标文件合并失败;当所述第二个数等于所述第一个数时,核对所述第一临时目录中所述目标文件的文件内容和所述合并文件内的文件内容,根据核对结果目标文件是否合并成功。
218.在一些实施例中,所述装置还包括:
219.恢复模块,用于确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件。
220.在一些实施例中,所述恢复模块,具体用于记录合并失败次数;当所述合并失败次数小于等于重试阈值时,再次合并所述目标目录下的目标文件;当所述合并失败次数大于重试阈值时,根据所述第一临时目录恢复所述目标目录的文件。
221.在一些实施例中,所述装置还包括:
222.删除模块,用于根据所述第一临时目录恢复所述目标目录的文件后,将所述第一临时目录和所述第二临时目录删除。
223.在一些实施例中,所述装置还包括:
224.报警模块,用于确定所述目标文件合并失败后,触发预警功能,输出合并失败的预警信息。
225.在一些实施例中,所述生成模块,具体用于将所述第一临时目录和第二临时目录删除后,在所述目标目录下生成空文件;根据文件合并成功的提示符,命名所述空文件。
226.本公开实施例提供一种电子设备,包括:
227.用于存储处理器可执行指令的存储器;
228.处理器,与所述存储器连接;
229.其中,所述处理器被配置为执行如前述任意技术方案提供的文件合并方法。
230.处理器可包括各种类型的存储介质,该存储介质为非临时性计算机存储介质,在电子设备掉电之后能够继续记忆存储其上的信息。
231.这里,电子设备包括:移动终端或者服务器。该电子设备包含的处理器和存储器。该处理器和存储器一起位于电子设备的壳体内。
232.处理器可以通过总线等与存储器连接,用于读取存储器上存储的可执行程序,例如,能够执行如图1和图2任意所示方法的至少其中之一。
233.本公开一实施例示出一种电子设备的结构。电子设备900基站参照图4,电子设备900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述方法前述应用在所述基站的任意方法,例如,如图1和图2所示的方法的至少其中之一。
234.电子设备900还可以包括一个电源组件926被配置为执行电子设备900的电源管理,一个有线或无线网络接口950被配置为将电子设备900连接到网络,和一个输入输出(i/o)接口958。电子设备900可以操作基于存储在存储器932的操作系统,例如windows server tm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
235.本公开实施例提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机的处理器执行时,使得计算机能够执行如图1和图2所示的文件合并方法的至少其
中一个。
236.在一个实施例中,所述文件合并方法可包括:确定文件合并模式;根据所述文件合并模式,确定是否存在合并需求;当存在合并需求时,合并目标目录下的目标文件;其中,所述目标目录下的目标文件的数据量,小于所述目标目录下非目标文件的数据量。
237.可以理解地,所述确定文件合并模式,包括:根据所述电子设备的负载率、可用资源状况信息、从用户界面ui接收的操作指令和文件合并预先配置策略,确定所述文件合并模式。
238.可以理解地,所述根据所述文件合并模式,确定是否存在合并需求,包括:当所述合并模式为第一模式时,确定所述目标目录中是否存在小于合并阈值的文件;若所述目标目录中存在小于所述合并阈值的文件,确定存在合并需求。
239.可以理解地,所述根据所述文件合并模式,确定是否存在合并需求,包括:当所述合并模式为第二模式时,确定所述目标目录中各文件的平均数据量是否小于合并阈值;当所述平均数据量小于合并阈值时,确定存在文件合并需求。
240.可以理解地,所述根据所述文件合并模式,确定是否存在合并需求,包括:当所述合并模式为第三模式时,确定所述目标目录下所述目标文件的占比;当所述目标文件的占比大于占比阈值时,确定存在文件合并需求。
241.可以理解地,所述当存在合并需求时,合并目标目录下的目标文件,包括:将所述目标目录下的目标文件移动到第一临时目录;合并第一临时目录下的所述目标文件得到合并文件;将所述合并文件写入第二临时目录。
242.可以理解地,所述方法还包括:在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功;当所述目标文件合并成功时,将所述第二临时目录中的所述合并文件移动到所述目标目录,将所述第一临时目录和所述第二临时目录删除。
243.可以理解地,所述方法还包括:将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息。
244.可以理解地,所述在所述合并文件写入所述第二临时目录之后,确定所述目标文件是否合并成功,包括:根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内;当所述第一临时目录中所述目标文件的文件内容全部包含在所述第二临时目录内的所述合并文件内,确定所述目标文件合并成功。
245.可以理解地,所述根据所述第一临时目录中所述目标文件的文件内容,是否全部包含在所述第二临时目录内的所述合并文件内,包括:分别确定所述第一临时目录中所述目标文件的文件内容的第一个数和第二临时目录内的所述合并文件内的文件内容的第二个数;当所述第二个数不等于所述第一个数时,确定所述目标文件合并失败;当所述第二个数等于所述第一个数时,核对所述第一临时目录中所述目标文件的文件内容和所述合并文件内的文件内容,根据核对结果目标文件是否合并成功。
246.可以理解地,所述方法还包括:确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件。
247.可以理解地,所述确定所述目标文件合并失败,根据所述第一临时目录恢复所述目标目录的文件,包括:记录合并失败次数;当所述合并失败次数小于等于重试阈值时,再次合并所述目标目录下的目标文件;当所述合并失败次数大于重试阈值时,根据所述第一
临时目录恢复所述目标目录的文件。
248.可以理解地,所述方法还包括:根据所述第一临时目录恢复所述目标目录的文件后,将所述第一临时目录和所述第二临时目录删除。
249.可以理解地,所述方法还包括:确定所述目标文件合并失败后,触发预警功能,输出合并失败的预警信息。
250.可以理解地,所述将所述第一临时目录和所述第二临时目录删除后,生成合并提示信息,包括:将所述第一临时目录和第二临时目录删除后,在所述目标目录下生成空文件;根据文件合并成功的提示符,命名所述空文件。
251.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
252.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献