CN107959587A - 基于海量文件的处理结果日志合并装置及方法 - Google Patents
基于海量文件的处理结果日志合并装置及方法 Download PDFInfo
- Publication number
- CN107959587A CN107959587A CN201711184194.5A CN201711184194A CN107959587A CN 107959587 A CN107959587 A CN 107959587A CN 201711184194 A CN201711184194 A CN 201711184194A CN 107959587 A CN107959587 A CN 107959587A
- Authority
- CN
- China
- Prior art keywords
- daily record
- level
- merging
- result
- merge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于海量文件的处理结果日志合并装置及方法,其中,该处理结果日志合并装置中包括:定时模块,用于设定触发文件处理结果日志进行合并操作的至少一个一级触发时间;文件处理模块,用于依次对海量文件进行处理得到结果日志,结果日志以文件处理的时间命名;判断模块,用于判断定时模块是否到达预先设定的一级触发时间;日志合并模块,当判断模块判断出定时模块达到预先设定的一级触发时间,根据结果日志的名称,将第一预设时间段内生成的结果日志进行合并得到一级合并日志,一级合并日志以合并的时间命名。相对于现有技术中长时间段内对结果日志进行合并的技术方案来说,大大提高了结果日志的合并效率,节约了合并时间。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于海量文件的处理结果日志合并装置及方法。
背景技术
随着网络应用的迅速发展,网络信息数据量越来越大,如,在对移动终端日志信息进行收集的时候,会得到海量的日志文件。一般来说,在对这些日志文件进行处理的过程中,前期会采用多线程对日志文件进行解压、解密和解析,一一对应的生成海量日志文件的处理结果;在后续的数据分析过程中,往往又需要将这些日志文件的处理结果进行合并操作。无疑,海量日志文件的处理和合并操作,对处理服务器的性能要求很高,处理的时间也会很长。
发明内容
本发明的目的是提供一种基于海量文件的处理结果日志合并装置及方法,有效解决现有技术中海量文件的处理结果日志合并效率低下的技术问题。
本发明提供的技术方案如下:
一种基于海量文件的处理结果日志合并装置,包括:
定时模块,用于设定触发文件处理结果日志进行合并操作的至少一个一级触发时间;
文件处理模块,用于依次对海量文件进行处理得到结果日志,所述结果日志以文件处理的时间命名;
判断模块,与所述定时模块连接,用于判断所述定时模块是否到达预先设定的一级触发时间;
日志合并模块,分别与所述文件处理模块和判断模块连接,当判断模块判断出定时模块达到预先设定的一级触发时间,根据结果日志的名称,将第一预设时间段内生成的结果日志进行合并得到一级合并日志,所述一级合并日志以合并的时间命名。
在本技术方案中,根据定时模块设定的一级触发时间,对预设时间内生成的结果日志进行合并。在实际应用中,可以根据实际情况设定多个一级触发时间,分时间段对结果日志进行合并,相对于现有技术中长时间段内对结果日志进行合并的技术方案来说,大大提高了结果日志的合并效率,节约了合并时间。
进一步优选地,在文件处理模块开始对海量文件进行处理的同时,定时模块开始计时;当判断模块判断定时模块达到预先设定的一级触发时间,日志合并模块将预设时间段内文件处理模块生成的结果日志进行合并。
在本技术方案中,在对文件进行处理的过程中同步对生成的结果日志进行合并操作,大大提高了海量文件的处理效率,节约了对结果日志的合并时间。
进一步优选地,所述定时模块用于根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
所述判断模块用于判断所述定时模块是否到达预先设定的触发时间,并用于判断触发时间所属级别;
当判断模块判断出定时模块达到预先设定的N级触发时间,根据N-1级合并日志的名称,将第N预设时间段内生成的N-1级合并日志进行合并得到N级合并日志,所述N级合并日志以合并的时间命名。
在本技术方案中,可以根据需求,对日志文件进行分级合并,提高了海量文件的处理效率的同时,便于管理。
进一步优选地,在所述文件处理模块中,依次对海量文件进行处理得到结果日志并将其存储在第一存储路径下,所述第一存储路径下存储第一预设时间段内生成的结果日志;
当判断模块判断出定时模块达到预先设定的一级触发时间,日志合并模块将第一存储路径下的所有结果日志进行合并得到一级合并日志并将其存储在第二存储路径下。
在本技术方案中,为了进一步节约结果日志合并的时间,将第一预设时间段内生成的结果日志存储在指定的第一存储路径下,在合并的过程中,直接将第一存储路径下的结果日志进行合并即可。
进一步优选地,所述定时模块用于根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
当判断模块判断出定时模块达到预先设定的N级触发时间,日志合并模块将第N存储路径下的所有N-1级合并日志进行合并得到N级合并日志,其中,第N存储路径下存储有第N预设时间段内生成的N-1级合并日志。
在本技术方案中,为了进一步节约结果日志合并的时间,依次将不同合并类别将生成的合并日志存储在相应的存储路径下,便于合并和管理。
本发明还提供了一种基于海量文件的处理结果日志合并方法,包括:
设定触发文件处理结果日志进行合并操作的至少一个一级触发时间;
依次对海量文件进行处理得到结果日志,所述结果日志以文件处理的时间命名;
判断是否到达预先设定的一级触发时间;
当判断出达到预先设定的一级触发时间,根据结果日志的名称,将第一预设时间段内的结果日志进行合并得到一级合并日志,所述一级合并日志以合并的时间命名。
在本技术方案中,根据设定的一级触发时间,对预设时间内生成的结果日志进行合并。在实际应用中,可以根据实际情况设定多个一级触发时间,分时间段对结果日志进行合并,相对于现有技术中长时间段内对结果日志进行合并的技术方案来说,大大提高了结果日志的合并效率,节约了合并时间。
进一步优选地,在开始对海量文件进行处理的同时,开始计时;且当判断达到预先设定的一级触发时间,将预设时间段内文件处理模块生成的结果日志进行合并。
在本技术方案中,在对文件进行处理的过程中同步对生成的结果日志进行合并操作,大大提高了对海量文件的处理效率,节约了对结果日志的合并时间。
进一步优选地,在步骤设定触发文件处理结果日志进行合并操作的至少一个一级触发时间中,具体为:根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
在步骤判断是否到达预先设定的一级触发时间中,具体为:判断是否到达预先设定的触发时间,并判断达到的触发时间所属级别;
当判断出达到预先设定的N级触发时间,根据N-1级合并日志的名称,将第N预设时间段内的N-1级合并日志进行合并得到N级合并日志,所述N级合并日志以合并的时间命名。
在本技术方案中,可以根据需求,对日志文件进行分级合并,提高了海量文件的处理效率的同时,便于管理。
进一步优选地,在步骤依次对海量文件进行处理得到结果日志,所述结果日志以文件处理的时间命名中,具体为:依次对海量文件进行处理得到结果日志并将其存储在第一存储路径下,所述第一存储路径下存储有第一预设时间段内生成的结果日志;
当判断出达到预先设定的一级触发时间,将第一存储路径下的所有结果日志进行合并得到一级合并日志并将其存储在第二存储路径下。
在本技术方案中,为了进一步节约结果日志合并的时间,将第一预设时间段内生成的结果日志存储在指定的第一存储路径下,在合并的过程中,直接将第一存储路径下的结果日志进行合并即可。
进一步优选地,在步骤设定触发文件处理结果日志进行合并操作的至少一个一级触发时间中,具体为:根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
当断出达到预先设定的N级触发时间,将第N存储路径下的所有N-1级合并日志进行合并得到N级合并日志,第N存储路径下存储有第N预设时间段内生成的N-1级合并日志。
在本技术方案中,为了进一步节约结果日志合并的时间,依次将不同合并类别将生成的合并日志存储在相应的存储路径下,便于合并和管理。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为本发明中处理结果日志合并装置示意图;
图2为本发明中处理结果日志合并方法流程示意图
附图标号说明:
100-处理结果合并日志装置,110-定时模块,120-文件处理模块,130-判断模块,140-日志合并模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中的只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。
由在现有技术中,存在对海量文件生成的处理日志合并效率低下的技术问题,因而本发明提供了一种基于海量文件的处理结果日志合并装置,其在对海量文件进行处理的过程中,同步对生成的结果日志进行合并,大大提高了合并效率。
如图1所示,为该处理结果合并日志装置示意图,从图中可以看出,在该处理结果合并日志装置100中包括:定时模块110、文件处理模块120、判断模块130以及日志合并模块140,其中,判断模块与定时模块连接,日志合并模块分别与文件处理模块和判断模块连接。在工作过程中,首先通过定时模块设定触发文件处理结果日志进行合并操作的至少一个一级触发时间。之后,在文件处理模块依次对海量文件进行处理得到结果日志(结果日志以文件处理的时间命名)的同时,设定定时模块开始计时,在判断模块判断定时模块达到预先设定的一级触发时间时,日志合并模块根据结果日志的名称,将第一预设时间段内生成的结果日志进行合并得到一级合并日志,一级合并日志以合并的时间命名。
在本实施方式中,在对处理文件生成的结果日志进行合并操作之前,对定时模块的一级触发时间进行配置,具体,这里的一级触发时间可以根据实际需求进行设定,如根据结果日志生成的数量进行设定,若生成的结果日志数量较多,可以将一级触发时间间隔设定的短一些(如每一个小时触发一次等),相应的第一预设时间也设置的短一些;若生成的结果日志数量较少,则可以将一级触发时间间隔设定的长一些(如每2个小时触发一次等),相应的第一预设时间也设置的短一些。理论上来说,为了保证合并效率,一级触发时间和第一预设时间段相对应的进行设置,每触发一次,将此前一段时间内的结果日志进行合并,如,将一级触发时间设定为整点时,则将第一预设时间段设置为此前一个小时内生成的结果日志;又如,将一级触发时间设定为每2个小时时,则将第一预设时间设置为此前两个小时内生成的结果日志。
设定好了一级触发时间之后,开始对文件进行处理的同时开启定时模块进行定时,在得到处理文件生成的结果日志之后,以文件处理的时间对该结果日志进行命名。一旦定时模块的时间到达预先设定的一级触发时间,根据设定开始检测第一预设时间段内生成的结果日志,随即将检测到的结果日志进行合并得到一级合并日志。由于预先设定至少一个触发时间,若在配置过程中预先设定了多个触发时间,则定时模块每到达一个触发时间,进行一次合并得到一个一级合并文件,故得到的一级合并日志有多个,数量与触发时间对应。
在实例中,对海量文件进行处理生成的结果日志数量一般非常庞大,一天中可能到达上千万,因而在合并结果日志时,一级触发时间可以以小时为单位进行设定,即每次针对一个小时内(上述第一预设时间段)产生的结果日志进行合并得到一级合并日志,以保证合并的效率,即针对每个小时产生的结果日志设定一个触发时间进行合并,如将一级触发时间设定在半点,8:30触发合并7:00-7:59之间产生的结果日志;又如,将一级触发时间设定在整点,8:00触发合并7:00-7:59之间产生的结果日志等。
在该实例中,若将一级触发时间设定在半点,每生成一个结果日志以当前处理的时间对其进行命名,如2020-11-2108:08。则,当达到触发时间09:30时,根据结果日志的名称检测是否存在8:00-8:59之间生成的结果日志(7:00-7:59之间生成的结果日志再触发时间到达8:30时进行合并),若存在,则循环合并该时间段内的结果日志得到一级合并日志,以此循环,每个半点生成一个一级合并日志,且生成的一级合并日志同样以合并的时间进行命名。
在另一种实施方式中,为了便于合并操作,在对第一预设时间内生成的结果日志进行合并的过程中,判断是否合并到了最后一个结果日志;若是,根据预设规则在该一级合并日志的名称中添加预设字符得到新的名称并进行存储(在合并的过程中,每合并一个结果日志,得到一个以时间命名的日志文件,当合并到最后一个结果日志得到一级合并日志,在其名称中添加入预设字符,作为结束合并标志,便于后续管理)。这里的预设字符可以根据实际情况进行设定,如在一级合并日志的名字中添加字符log,作为完成该文件夹中结果日志合并的标志。
在另一种实施方式中,定时模块根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;判断模块判断定时模块是否到达预先设定的触发时间,且在判断达到触发时间后,进一步判断触发时间所属级别;当判断模块判断出定时模块达到预先设定的N级触发时间,根据N-1级合并日志的名称,将第N预设时间段内生成的N-1级合并日志进行合并得到N级合并日志,N级合并日志以合并的时间命名。
具体,当N=2,即判断模块判断出定时模块达到二级触发时间,则根据一级合并日志的名称,将第二预设时间段内生成的一级合并日志进行合并得到二级合并日志,二级合并日志同样以合并的时间命名。以此类推,当N=3,即判断模块判断出定时模块达到三级触发时间,则根据二级合并日志的名称,将第三预设时间段内生成的二级合并日志进行合并得到三级合并日志,三级合并日志同样以合并的时间命名。通过这种方式就能够将日志文件进行逐级合并,提高合并效率的同时便于管理。
在实例中,将一级触发时间设定在半点,二级触发时间以天为单位,三级触发以月为单位,每生成一个结果日志以当前处理的时间对其进行命名,如2020-11-2108:08。则,当达到触发时间09:30时,检测是否存在8:00-8:59之间生成的结果日志(7:00-7:59之间生成的结果日志再触发时间到达8:30时进行合并),若存在,则循环合并该时间段内的结果日志得到一级合并日志,以此循环,每个半点生成一个一级合并日志,且生成的一级合并日志同样以合并的时间进行命名。
若判断达到触发时间2020-11-2200:00(以日期为单位进行触发,22日合并21日生成的所有一级合并日志),则将2020-11-21日生成的所有一级合并日志进行合并得到二级合并日志。若判断达到触发时间2020-12-0100:00(以月为单位进行触发,12月1日合并11月生成的所有二级合并日志),则将2020年11月生成的所有二级合并日志进行合并得到三级合并日志。
在该合并过程中,若一级合并日志中包括作为结束合并标志的预设字符,则在进行二级合并之前,判断一级合并日志的名称中是否包括该预设字符,若包括,则将其添加入合并队列进行合并操作,避免合并出错。且在将一级合并日志合并结束得到二级合并日志时,在二级合并日志中添加另一预设字符标志二级合并结束,以此类推。
对上述实施方式进行改进得到本实施方式,在本实施方式中,由日志合并操作不可能无限制合并,故需要预先设定合并截止时间。若判断模块判断当前时间达到了预先设定的合并截止时间,则日志合并模块合并第一预设时间段内生成的结果日志,以时间进行命名,但是合并结束后不在该一级合并日志中添加预设字符,在进行二级合并的过程中,以该一级合并日志的名字作为本次合并操作结束的标志(其他一级合并日志名字中都添加有预设字符)。在合并的过程中,当合并到最后一个一级合并日志,由该名称中没有预设字符,则判定二级合并结束。这种方法同样适用于后级的合并操作,在此不做赘述。
在实例中,以天为单位进行合并得到二级合并日志merge.txt,以小时为单位得到二级合并日志中的一级合并日志,定时模块设定的每到半点合并一次,如对于2020-11-21-23:30时对该天22:00-22:59之间产生的结果日志进行合并得到名为22_log.txt的一级合并日志并将其添加入合并队列merger_list中。但是一级合并以天为单位,则对于23:00-23:59之间产生的结果日志,若判断到了00:00(合并截止时间),则开始合并该时间段内生成的结果日志得到一级合并日志23.txt,作为结束本次合并的结束标志。
根据以上方法得到二级合并队列(由一级合并日志组成的合并队列)之后,在22日对前一天产生的合并日志进行二级合并时,首先提取合并队列中一个一级合并日志,并判断该一级合并日志的名称中是否包括预设字符;若是,将其合并入二级合并日志中;否则,进一步判断合并队列中是否存在名称中同时包括该合并日志的名称及预设字符的合并日志,若是,将名字中包括预设字符的合并日志合并入二级合并日志中;否则,将该合并日志合并入二级合并日志中,并判定完成处理日志的二级合并操作。
在另一种实施方式中,在文件处理模块中,依次对海量文件进行处理得到结果日志并将其存储在第一存储路径下,第一存储路径下存储第一预设时间段内生成的结果日志;以此,当判断模块判断出定时模块达到预先设定的一级触发时间,日志合并模块将第一存储路径下的所有结果日志进行合并得到一级合并日志并将其存储在第二存储路径下。
在本实施方式中,设定好了一级触发时间之后,开始对文件进行处理时开启定时模块进行定时,在文件处理模块对文件进行处理生成结果日志之后,将其存储于第一存储路径中。一旦定时模块的时间到达设定的一级触发时间,开始检测第一存储路径中包括的结果日志。检测到了第一存储路径中的结果日志之后,随即进行合并,并将合并得到的一级合并日志存储在第二存储路径中。
由于预先设定至少一个一级触发时间,若在配置过程中预先设定了多个一级触发时间,则定时模块每到达一个一级触发时间,进行一个合并得到一个一级合并日志存储在第二存储路径中,故第二存储路径中包括不止一个一级合并日志。
在本实施方式中,为了方便后续的合并操作,在得到结果日志之后,将相应的结果日志存储在第一存储路径以小时为命名的文件夹中,以此,将一个小时内生成的结果日志都存储在该文件夹中,在后续的合并操作中,以小时为单位进行合并操作,每个小时内生成的结果日志合并成一个一级合并日志,便于后续的进一步合并。
在合并的过程中,设定的一级触发时间同样以小时为单位,每隔一个小时触发一次,如可以将触发时间设定为每半个小时触发一次,且当前合并的是前一小时生成的结果日志(如,当前时间为3:30,则合并的是2:00-2:59产生的结果日志),保证在合并的过程中,不会新增新的结果日志。具体,在合并的过程中,若检测到第一存储路径中包括文件夹,进一步检测是否包括名称与当前小时不同的文件夹;若包括,则循环将该文件夹中的所有结果日志进行合并得到一级合并日志,以文件夹的名字命名(文件夹的名字以结果日志生成的小时命名)该一级合并日志,并将一级合并日志存储于第二存储路径。
对上述实施方式进行改进得到本实施方式,在本实施方式中,为了便于合并操作,在对第一存储路径中的结果日志进行合并的过程中,判断是否合并到了最后一个结果日志;若是,根据预设规则在该一级合并日志的名称中添加预设字符得到新的名称并进行存储(在合并的过程中,每合并一个结果日志,得到一个以时间命名的日志文件,当合并到最后一个结果日志得到一级合并日志,并在其名称中添加入预设字符,作为结束合并标志,便于后续管理)。这里的预设字符可以根据实际情况进行设定,如在一级合并日志的名字中添加字符log,作为完成该文件夹中结果日志合并的标志。之后,检测第二存储路径中是否存在名称中包括预设字符的一级合并日志;若包括,进一步判断该一级合并日志的名称是否存在于二级合并队列中;若没有,将其添加入二级合并队列中,待后续进一步的合并。
对上述实施方式进行改进得到本实施方式,在本实施方式中,定时模块用于根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2。以此,当判断模块判断出定时模块达到预先设定的N级触发时间,日志合并模块将第N存储路径下的所有N-1级合并日志进行合并得到N级合并日志,其中,第N存储路径下存储有第N预设时间段内生成的N-1级合并日志。
具体,当N=2,即判断模块判断出定时模块达到二级触发时间,则将第二存储路径下第二预设时间段内生成的所有一级合并日志进行合并得到二级合并日志。当N=3,即判断模块判断出定时模块达到三级触发时间,则将第三存储路径下第三预设时间段内生成的所有二级合并日志进行合并得到三级合并日志,以此类推。
在一实例中,预先设定每半个点触发一次合并操作。每当获取一个小文件的结果日志,获取机器时间,包括年月日小时分,假若获取的时间为2017-11-309:08,则在指令路径~/hour/下检测是否存在以09为名称的文件夹,若存在,将该将结果日志存储在该文件夹中;否则在该路径下创建以09为名称的文件夹,将结果日志存储在该文件夹中。
根据设定的定时模块,达到2017-11-309:30,检测指令路径~/hour/下是否存在文件夹,若存在,判断是否存在名称与当前小时不同的文件夹,即判断该路径中是否存在以08命名的文件夹(由7点到8点之间生成的结果日志在08:30分时进行合并操作,故此时检测到的是8点到9点之间生成的结果日志),若存在,则循环合并该文件夹下的结果日志到08.txt文件中,并存放到路径~/merge/下。当合并到最后一个结果日志,将文件名08.txt修改为08_log.txt,结束该文件夹的合并操作,并将其加入到合并队列merger_list中,进入进一步合并操作。
以此同时,检测路径~/merge/下是否存在名称中包括字符“log”的文件,若有,进一步判断该文件是否已经在合并队列中存在,若存在,不做处理,否则将其加入合并队列merger_list中,进入进一步合并操作。
在另一实施方式中,将名称中包括预设字符的文件添加入合并队列的同时,还包括判断当前小时是否达到预设的合并截止小时的步骤;若判断当前小时达到预设的合并截止小时,则进一步判断第二存储路径中是否包括名称与当前小时相同的文件夹;若是,依次将文件夹中的结果日志合并入一级合并日志,以文件夹的名字命名该一级合并日志,并将一级合并日志存储于第二存储路径。
在本实施方式中,若当前小时达到了预先设定的合并截止时间,合并该文件夹中的结果日志,且以文件夹的名字命名该一级合并日志,以此在后续合并的过程中,以该一级合并日志的名字作为本次合并操作结束的标志。
在实例中,以天为单位进行合并得到二级合并日志merge.txt(这里只进行二级合并,故这里二级合并日志即为上述二级合并日志),以小时为单位得到二级合并日志中的一级合并日志,定时模块设定的每到半点合并一次,如23:30时对22:00-23:00之间产生的结果日志进行合并得到名为22_log.txt的一级合并日志并将其添加入合并队列merger_list中。对于23:00-00:00之间产生的结果日志,若判断当前小时到了00:00,开始合并文件夹23下的结果日志得到一级合并日志23.txt,并将其存储在第二存储路径中,作为结束本次合并的结束标志。
另外,在本实例中,将一级合并日志22_log.txt添加入合并队列merger_list之后,进一步检测路径~/merge/下是否包括名为21.txt的一级合并日志,若是,将其添加入合并队列merger_list中。
根据以上方法得到合并队列之后,对其进行合并得到二级合并日志的过程中,首先提取合并队列中的一个一级合并日志;之后判断该一级合并日志的名称中是否包括预设字符;若是,将其合并入二级合并日志中;否则,进一步判断合并队列中是否存在名称中同时包括该一级合并日志的名称及预设字符的一级合并日志,若是,将名字中包括预设字符的一级合并日志合并入二级合并日志中;否则,将该一级合并日志合并入二级合并日志中,并判定完成处理日志的合并操作。
在另一种实施方式中,根据以上方法得到合并队列之后,对其进行合并得到二级合并日志的过程中,首先根据二级合并日志的状态标识判断其是否处于合并状态;若是,则提取合并队列中的一个一级合并日志,并判断一级合并日志的名称中是否包括预设字符;若是,将其合并入二级合并日志中;否则,进一步判断合并队列中是否存在名称中同时包括该一级合并日志的名称及预设字符的一级合并日志,若是,将名字中包括预设字符的一级合并日志合并入二级合并日志中;否则,将该一级合并日志合并入二级合并日志中,并判定完成处理日志的合并操作;最后,将二级合并日志的状态标识由合并状态改为结束合并状态。
在一实例中,在合并的过程中,首先判断二级合并日志的merge.txt的锁lock是否为0(锁为0表示处于合并状态,锁为1表示处于结束合并状态),若是,表示其处于可合并状态,则从合并队列merger_list中获取一个一级合并日志,若其名称中包括预设字符log,则直接将其合并入二级合并日志的merge.txt中;若其名称中不包括预设字符log(若其名称为23_txt),则进一步在merger_list中查找是否包括文件23_log.txt,若包括,则将文件23_log.txt合并入二级合并日志的merge.txt;若不包括,则将文件23_txt合并入二级合并日志的merge.txt,判定完成处理日志的合并操作,并将二级合并日志的锁lock修改为1。
本发明还提供了一种基于海量文件的处理结果日志合并方法,如图2所示,在一种实施方式中,该处理结果日志合并方法中包括:S10设定触发文件处理结果日志进行合并操作的至少一个一级触发时间;S20依次对海量文件进行处理得到结果日志,结果日志以文件处理的时间命名;S30判断是否到达预先设定的一级触发时间;S40当判断出达到预先设定的一级触发时间,根据结果日志的名称,将第一预设时间段内的结果日志进行合并得到一级合并日志,一级合并日志以合并的时间命名。
在本实施方式中,在对处理文件生成的结果日志进行合并操作之前,对一级触发时间进行配置,具体,这里的一级触发时间可以根据实际需求进行设定,如根据结果日志生成的数量进行设定,若生成的结果日志数量较多,可以将一级触发时间间隔设定的短一些(如每一个小时触发一次等),相应的第一预设时间也设置的短一些;若生成的结果日志数量较少,则可以将一级触发时间间隔设定的长一些(如每2个小时触发一次等),相应的第一预设时间也设置的短一些。理论上来说,为了保证合并效率,一级触发时间和第一预设时间段相对应的进行设置,每触发一次,将此前一段时间内的结果日志进行合并,如,将一级触发时间设定为整点时,则将第一预设时间段设置为此前一个小时内生成的结果日志;又如,将一级触发时间设定为每2个小时时,则将第一预设时间设置为此前两个小时内生成的结果日志。
设定好了一级触发时间之后,开始对文件进行处理的同时开启定时,在得到处理文件生成的结果日志之后,以文件处理的时间对该结果日志进行命名。一旦时间到达预先设定的一级触发时间,根据设定开始检测第一预设时间段内生成的结果日志,随即将检测到的结果日志进行合并得到一级合并日志。由于预先设定至少一个触发时间,若在配置过程中预先设定了多个触发时间,则定时模块每到达一个触发时间,进行一次合并得到一个一级合并文件,故得到的一级合并日志有多个,数量与触发时间对应。
对上述实施方式进行改进得到本实施方式,在本实施方式中,为了便于合并操作,在对第一预设时间内生成的结果日志进行合并的过程中,判断是否合并到了最后一个结果日志;若是,根据预设规则在该一级合并日志的名称中添加预设字符得到新的名称并进行存储(在合并的过程中,每合并一个结果日志,得到一个以时间命名的日志文件,当合并到最后一个结果日志得到一级合并日志,在其名称中添加入预设字符,作为结束合并标志,便于后续管理)。这里的预设字符可以根据实际情况进行设定,如在一级合并日志的名字中添加字符log,作为完成该文件夹中结果日志合并的标志。
对上述实施方式进行改进得到本实施方式,在本实施方式中,根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;在判断达到触发时间后,进一步判断触发时间所属级别;当判断模块判断出定时模块达到预先设定的N级触发时间,根据N-1级合并日志的名称,将第N预设时间段内生成的N-1级合并日志进行合并得到N级合并日志,N级合并日志以合并的时间命名。
具体,当N=2,即判断出达到二级触发时间,则根据一级合并日志的名称,将第二预设时间段内生成的一级合并日志进行合并得到二级合并日志,二级合并日志同样以合并的时间命名。以此类推,当N=3,即判断出达到三级触发时间,则根据二级合并日志的名称,将第三预设时间段内生成的二级合并日志进行合并得到三级合并日志,三级合并日志同样以合并的时间命名。通过这种方式就能够将日志文件进行逐级合并,提高合并效率的同时便于管理。
在该合并过程中,若一级合并日志中包括作为结束合并标志的预设字符,则在进行二级合并之前,判断一级合并日志的名称中是否包括该预设字符,若包括,则将其添加入合并队列进行合并操作,避免合并出错。且在将一级合并日志合并结束得到二级合并日志时,在二级合并日志中添加另一预设字符标志二级合并结束,以此类推。
对上述实施方式进行改进得到本实施方式,在本实施方式中,由日志合并操作不可能无限制合并,故需要预先设定合并截止时间。若判断当前时间达到了预先设定的合并截止时间,则合并第一预设时间段内生成的结果日志,以时间进行命名,但是合并结束后不在该一级合并日志中添加预设字符,在进行二级合并的过程中,以该一级合并日志的名字作为本次合并操作结束的标志(其他一级合并日志名字中都添加有预设字符)。在合并的过程中,当合并到最后一个一级合并日志,由该名称中没有预设字符,则判定二级合并结束。这种方法同样适用于后级的合并操作,在此不做赘述。
对上述实施方式进行改进得到本实施方式,在本实施方式中,依次对海量文件进行处理得到结果日志并将其存储在第一存储路径下,且第一存储路径下存储第一预设时间段内生成的结果日志;以此,当断出达到预先设定的一级触发时间,将第一存储路径下的所有结果日志进行合并得到一级合并日志并将其存储在第二存储路径下。
在本实施方式中,设定好了一级触发时间之后,开始对文件进行处理时开启计时,在对文件进行处理生成结果日志之后,将其存储于第一存储路径中。一旦时间到达设定的一级触发时间,开始检测第一存储路径中包括的结果日志。检测到了第一存储路径中的结果日志之后,随即进行合并,并将合并得到的一级合并日志存储在第二存储路径中。
由于预先设定至少一个一级触发时间,若在配置过程中预先设定了多个一级触发时间,则定时模块每到达一个一级触发时间,进行一个合并得到一个一级合并日志存储在第二存储路径中,故第二存储路径中包括不止一个一级合并日志。
在本实施方式中,为了方便后续的合并操作,在得到结果日志之后,将相应的结果日志存储在第一存储路径以小时为命名的文件夹中,以此,将一个小时内生成的结果日志都存储在该文件夹中,在后续的合并操作中,以小时为单位进行合并操作,每个小时内生成的结果日志合并成一个一级合并日志,便于后续的进一步合并。
在合并的过程中,设定的一级触发时间同样以小时为单位,每隔一个小时触发一次,如可以将触发时间设定为每半个小时触发一次,且当前合并的是前一小时生成的结果日志(如,当前时间为3:30,则合并的是2:00-2:59产生的结果日志),保证在合并的过程中,不会新增新的结果日志。具体,在合并的过程中,若检测到第一存储路径中包括文件夹,进一步检测是否包括名称与当前小时不同的文件夹;若包括,则循环将该文件夹中的所有结果日志进行合并得到一级合并日志,以文件夹的名字命名(文件夹的名字以结果日志生成的小时命名)该一级合并日志,并将一级合并日志存储于第二存储路径。
对上述实施方式进行改进得到本实施方式,在本实施方式中,为了便于合并操作,在对第一存储路径中的结果日志进行合并的过程中,判断是否合并到了最后一个结果日志;若是,根据预设规则在该一级合并日志的名称中添加预设字符得到新的名称并进行存储(在合并的过程中,每合并一个结果日志,得到一个以时间命名的日志文件,当合并到最后一个结果日志得到一级合并日志,并在其名称中添加入预设字符,作为结束合并标志,便于后续管理)。这里的预设字符可以根据实际情况进行设定,如在一级合并日志的名字中添加字符log,作为完成该文件夹中结果日志合并的标志。之后,检测第二存储路径中是否存在名称中包括预设字符的一级合并日志;若包括,进一步判断该一级合并日志的名称是否存在于二级合并队列中;若没有,将其添加入二级合并队列中,待后续进一步的合并。
对上述实施方式进行改进得到本实施方式,在本实施方式中,根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2。以此,当判断出达到预先设定的N级触发时间,将第N存储路径下的所有N-1级合并日志进行合并得到N级合并日志,其中,第N存储路径下存储有第N预设时间段内生成的N-1级合并日志。
具体,当N=2,即判断出达到二级触发时间,则将第二存储路径下第二预设时间段内生成的所有一级合并日志进行合并得到二级合并日志。当N=3,即判断出达到三级触发时间,则将第三存储路径下第三预设时间段内生成的所有二级合并日志进行合并得到三级合并日志,以此类推。
在另一实施方式中,将名称中包括预设字符的文件添加入合并队列的同时,还包括判断当前小时是否达到预设的合并截止小时的步骤;若判断当前小时达到预设的合并截止小时,则进一步判断第二存储路径中是否包括名称与当前小时相同的文件夹;若是,依次将文件夹中的结果日志合并入一级合并日志,以文件夹的名字命名该一级合并日志,并将一级合并日志存储于第二存储路径。
在本实施方式中,若当前小时达到了预先设定的合并截止时间,合并该文件夹中的结果日志,且以文件夹的名字命名该一级合并日志,以此在后续合并的过程中,以该一级合并日志的名字作为本次合并操作结束的标志。
在另一实施方式中,根据以上方法得到合并队列之后,对其进行合并得到二级合并日志的过程中,首先根据二级合并日志的状态标识判断其是否处于合并状态;若是,则提取合并队列中的一个一级合并日志,并判断合并日志的名称中是否包括预设字符;若是,将其合并入二级合并日志中;否则,进一步判断合并队列中是否存在名称中同时包括该合并日志的名称及预设字符的合并日志,若是,将名字中包括预设字符的合并日志合并入二级合并日志中;否则,将该合并日志合并入二级合并日志中,并判定完成处理日志的合并操作;最后,将二级合并日志的状态标识由合并状态改为结束合并状态。以此类推,采用该方法进行逐级合并。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于海量文件的处理结果日志合并装置,其特征在于,所述基于海量文件的处理结果日志合并装置中包括:
定时模块,用于设定触发文件处理结果日志进行合并操作的至少一个一级触发时间;
文件处理模块,用于依次对海量文件进行处理得到结果日志,所述结果日志以文件处理的时间命名;
判断模块,与所述定时模块连接,用于判断所述定时模块是否到达预先设定的一级触发时间;
日志合并模块,分别与所述文件处理模块和判断模块连接,当判断模块判断出定时模块达到预先设定的一级触发时间,根据结果日志的名称,将第一预设时间段内生成的结果日志进行合并得到一级合并日志,所述一级合并日志以合并的时间命名。
2.如权利要求1所述的基于海量文件的处理结果日志合并装置,其特征在于,在文件处理模块开始对海量文件进行处理的同时,定时模块开始计时;当判断模块判断定时模块达到预先设定的一级触发时间,日志合并模块将预设时间段内文件处理模块生成的结果日志进行合并。
3.如权利要求1或2所述的基于海量文件的处理结果日志合并装置,其特征在于,所述定时模块用于根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
所述判断模块用于判断所述定时模块是否到达预先设定的触发时间,并用于判断触发时间所属级别;
当判断模块判断出定时模块达到预先设定的N级触发时间,根据N-1级合并日志的名称,将第N预设时间段内生成的N-1级合并日志进行合并得到N级合并日志,所述N级合并日志以合并的时间命名。
4.如权利要求1或2所述的基于海量文件的处理结果日志合并装置,其特征在于,在所述文件处理模块中,依次对海量文件进行处理得到结果日志并将其存储在第一存储路径下,所述第一存储路径下存储第一预设时间段内生成的结果日志;
当判断模块判断出定时模块达到预先设定的一级触发时间,日志合并模块将第一存储路径下的所有结果日志进行合并得到一级合并日志并将其存储在第二存储路径下。
5.如权利要求4所述的基于海量文件的处理结果日志合并装置,其特征在于,所述定时模块用于根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
当判断模块判断出定时模块达到预先设定的N级触发时间,日志合并模块将第N存储路径下的所有N-1级合并日志进行合并得到N级合并日志,其中,第N存储路径下存储有第N预设时间段内生成的N-1级合并日志。
6.一种基于海量文件的处理结果日志合并方法,其特征在于,所述基于海量文件的处理结果日志合并方法中包括:
设定触发文件处理结果日志进行合并操作的至少一个一级触发时间;
依次对海量文件进行处理得到结果日志,所述结果日志以文件处理的时间命名;
判断是否到达预先设定的一级触发时间;
当判断出达到预先设定的一级触发时间,根据结果日志的名称,将第一预设时间段内的结果日志进行合并得到一级合并日志,所述一级合并日志以合并的时间命名。
7.如权利要求6所述的基于海量文件的处理结果日志合并方法,其特征在于,在开始对海量文件进行处理的同时,开始计时;且当判断达到预先设定的一级触发时间,将预设时间段内文件处理模块生成的结果日志进行合并。
8.如权利要求6或7所述的基于海量文件的处理结果日志合并方法,其特征在于,
在步骤设定触发文件处理结果日志进行合并操作的至少一个一级触发时间中,具体为:根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
在步骤判断是否到达预先设定的一级触发时间中,具体为:判断是否到达预先设定的触发时间,并判断达到的触发时间所属级别;
当判断出达到预先设定的N级触发时间,根据N-1级合并日志的名称,将第N预设时间段内的N-1级合并日志进行合并得到N级合并日志,所述N级合并日志以合并的时间命名。
9.如权利要求6或7所述的基于海量文件的处理结果日志合并方法,其特征在于,在步骤依次对海量文件进行处理得到结果日志,所述结果日志以文件处理的时间命名中,具体为:依次对海量文件进行处理得到结果日志并将其存储在第一存储路径下,所述第一存储路径下存储有第一预设时间段内生成的结果日志;
当判断出达到预先设定的一级触发时间,将第一存储路径下的所有结果日志进行合并得到一级合并日志并将其存储在第二存储路径下。
10.如权利要求9所述的基于海量文件的处理结果日志合并方法,其特征在于,在步骤设定触发文件处理结果日志进行合并操作的至少一个一级触发时间中,具体为:根据合并类别设定触发文件处理结果日志进行合并操作的多个触发时间,所述触发时间包括至少一个一级触发时间,还包括至少一个N级触发时间,其中,N≥2;
当断出达到预先设定的N级触发时间,将第N存储路径下的所有N-1级合并日志进行合并得到N级合并日志,第N存储路径下存储有第N预设时间段内生成的N-1级合并日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711184194.5A CN107959587A (zh) | 2017-11-23 | 2017-11-23 | 基于海量文件的处理结果日志合并装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711184194.5A CN107959587A (zh) | 2017-11-23 | 2017-11-23 | 基于海量文件的处理结果日志合并装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107959587A true CN107959587A (zh) | 2018-04-24 |
Family
ID=61961821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711184194.5A Withdrawn CN107959587A (zh) | 2017-11-23 | 2017-11-23 | 基于海量文件的处理结果日志合并装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107959587A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020019436A1 (zh) * | 2018-07-25 | 2020-01-30 | 平安科技(深圳)有限公司 | 一种日志的归并方法、装置、电子设备及介质 |
CN112564959A (zh) * | 2020-12-01 | 2021-03-26 | 上海恒生聚源数据服务有限公司 | 一种日志采集方法、装置、设备及可读存储介质 |
CN112783848A (zh) * | 2021-01-20 | 2021-05-11 | 杭州数梦工场科技有限公司 | 一种数据同步方法、装置及电子设备 |
CN115378802A (zh) * | 2022-08-24 | 2022-11-22 | 深圳市晨北科技有限公司 | 一种日志收集方法、装置、设备及计算机可读存储介质 |
-
2017
- 2017-11-23 CN CN201711184194.5A patent/CN107959587A/zh not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020019436A1 (zh) * | 2018-07-25 | 2020-01-30 | 平安科技(深圳)有限公司 | 一种日志的归并方法、装置、电子设备及介质 |
CN112564959A (zh) * | 2020-12-01 | 2021-03-26 | 上海恒生聚源数据服务有限公司 | 一种日志采集方法、装置、设备及可读存储介质 |
CN112783848A (zh) * | 2021-01-20 | 2021-05-11 | 杭州数梦工场科技有限公司 | 一种数据同步方法、装置及电子设备 |
CN112783848B (zh) * | 2021-01-20 | 2023-12-26 | 杭州数梦工场科技有限公司 | 一种数据同步方法、装置及电子设备 |
CN115378802A (zh) * | 2022-08-24 | 2022-11-22 | 深圳市晨北科技有限公司 | 一种日志收集方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103778148B (zh) | Hadoop分布式文件系统数据文件的生命周期管理方法和设备 | |
CN107959587A (zh) | 基于海量文件的处理结果日志合并装置及方法 | |
CN108829858B (zh) | 数据查询方法、装置及计算机可读存储介质 | |
CN103123618B (zh) | 文本相似度获取方法和装置 | |
JP5314504B2 (ja) | 検索装置、検索プログラムおよび検索方法 | |
CN103544213A (zh) | 网站内容更新检测评价方法及系统 | |
WO2014090007A1 (zh) | 用于获取推荐主题的方法、装置和服务器 | |
CN103679012A (zh) | 一种可移植可执行文件的聚类方法和装置 | |
CN102385621A (zh) | 一种基于输入法界面实现文档索引的方法及系统 | |
CN110162522A (zh) | 一种分布式数据搜索系统及方法 | |
CN105471635B (zh) | 一种系统日志的处理方法、装置和系统 | |
CN110245145A (zh) | 关系型数据库到Hadoop数据库的结构同步方法和装置 | |
CN104317891A (zh) | 一种对页面标注标签的方法及装置 | |
CN103942268A (zh) | 搜索与应用相结合的方法、设备以及应用接口 | |
CN101630315A (zh) | 一种快速检索方法及系统 | |
CN111666298A (zh) | 基于flink的用户服务类别检测方法、装置、计算机设备 | |
Avigdor-Elgrabli et al. | Structural clustering of machine-generated mail | |
CN107391684A (zh) | 一种威胁情报生成的方法及系统 | |
CN110191182A (zh) | 分布式文件批处理方法、装置、设备与可读存储介质 | |
CN107346312A (zh) | 一种大数据处理方法及系统 | |
CN109241031A (zh) | 模型生成方法、模型使用方法、装置、系统及存储介质 | |
CN109254827A (zh) | 一种基于大数据与机器学习的虚拟机安全防护方法及系统 | |
CN106257449A (zh) | 一种信息确定方法和装置 | |
CN107784588A (zh) | 保险用户信息合并方法和装置 | |
CN101610459A (zh) | 彩信内容自动采集系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200821 Address after: No. 2-3167, zone a, Nonggang City, No. 2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province Applicant after: Taizhou Jiji Intellectual Property Operation Co.,Ltd. Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666 Applicant before: Phicomm (Shanghai) Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180424 |