CN109165201B - 日志的归并方法及终端设备 - Google Patents

日志的归并方法及终端设备 Download PDF

Info

Publication number
CN109165201B
CN109165201B CN201810824218.7A CN201810824218A CN109165201B CN 109165201 B CN109165201 B CN 109165201B CN 201810824218 A CN201810824218 A CN 201810824218A CN 109165201 B CN109165201 B CN 109165201B
Authority
CN
China
Prior art keywords
file
data
log
time
merging
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.)
Active
Application number
CN201810824218.7A
Other languages
English (en)
Other versions
CN109165201A (zh
Inventor
王倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201810824218.7A priority Critical patent/CN109165201B/zh
Priority to PCT/CN2018/105540 priority patent/WO2020019436A1/zh
Publication of CN109165201A publication Critical patent/CN109165201A/zh
Application granted granted Critical
Publication of CN109165201B publication Critical patent/CN109165201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于数据处理领域,提供了一种日志的归并方法及终端设备,通过在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下,根据日志文件中数据的生成时间,修改各个所述日志文件的文件名,并在基于文件名对各个日志文件进行排序之后,将各个日志文件内的数据进行合并,生成数据合并文件,计算生成数据合并过程中的总时间复杂度以及各个日志文件之间的数据量的差值平均值,最后将总时间复杂度以及所述差值平均值添加进数据合并文件,生成日志归并文件,实现对大量的日志文件进行合理整合,便于用户浏览和查找日志文件信息,并在整合的过程中,对日志文件的相关参数进行计算,以提高数据利用率。

Description

日志的归并方法及终端设备
技术领域
本发明属于数据处理领域,尤其涉及一种日志的归并方法及终端设备。
背景技术
以Docker为代表的基于容器的虚拟化技术是当前虚拟技术的热点。容器技术通过隔离进程和资源,实现轻量级虚拟化。容器创建并运行后,应用程序即部署完成,一台物理机上可以部署多个Docker容器,每个Docker容器之间相互隔离,该物理机一般被称为宿主机。在现有技术中,Docker容器也可以跨宿主机运行,当Docker容器跨宿主机运行时,由此产生的日志也可能分散在各个宿主机中。
如果一个容器产生的多个日志分别存储在多个宿主机中,则不利于工程人员全面的了解工程的进展,现有的日志归并方案一般都是简单的将多条日志数据进行合并,归并后的日志数据往往是杂乱无序的,工程人员难以很好的进行分析,同时在日志归并过程中并缺乏对日志数据整体属性的研究,这也导致了日志数据的利用率低的问题。
综上,当前的日志归并方案存在归并后的日志数据较为杂乱以及数据利用率低的问题。
发明内容
有鉴于此,本发明实施例提供了一种日志的归并方法及终端设备,以解决当前的日志归并方案存在归并后的日志数据较为杂乱以及数据利用率低的问题。
本发明实施例的第一方面提供了一种日志的归并方法,包括:
在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下;
根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名;
根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件;
计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数;
计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况;
将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件。
本发明实施例的第二方面提供了一种终端设备,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如下步骤:
在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下;
根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名;
根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件;
计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数;
计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况;
将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下;根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名;根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件;计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数;计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况;将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件。
可选地,所述根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名,包括:将所述日志文件中的第一行数据的时间戳对应的时间作为所述日志文件的第一时间,所述时间戳用于记录数据的生成时间;将所述日志文件中的最后一行数据的时间戳对应的时间作为所述日志文件的第二时间;将所述第一时间和所述第二时间写入所述日志文件的文件名的末尾,以修改所述所述日志文件的文件名。
可选地,所述根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件,包括:
根据所述日志文件的文件名内的所述第一时间由小到大的顺序,对各个所述日志文件进行排序;将排序在第一位的所述日志文件标记为第一日志文件,将排序在第二位的所述日志文件标记为第二日志文件;将所述第一日志文件内的数据存入所述数据合并文件;判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间;若所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间,则将所述第二日志文件内的全部数据统一存入所述数据合并文件的末行数据之后;若所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间,则按照所述第二日志文件中各条数据的时间戳,将所述第二日志文件中的各条数据依次插入所述数据合并文件中,以使插入后的所述数据合并文件内各行数据的时间戳对应的时间由小到大排列;按照所述日志目录下各个日志文件排序的顺序,将当前的所述第二日志文件的下一个所述日志文件标记为新的第二日志文件,并返回执行判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间的操作,直至所述日志目录下的各个所述日志文件内的数据均存入所述数据合并文件。
可选地,所述计算所述总时间复杂度,包括:
统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第一数量;统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第二数量;当出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时,记录当前的所述第二日志文件内数据的行数,作为第一数据行数,记录当前的所述数据合并文件内数据的行数,作为第二数据行数;通过公式:
Figure BDA0001742080630000041
Figure BDA0001742080630000042
计算所述总时间复杂度,所述Ticom表示所述总时间复杂度,所述num1为所述第一数量,所述num2为所述第二数量,所述linum1I表示第i次出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第一数据行数,所述linum2I表示第i次出现所述所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第二数据行数;
可选地,所述计算所述差值平均值,包括:
通过公式:
Figure BDA0001742080630000043
计算所述差值平均值,所述logsizei表示依据排序从上至下第i个日志文件的数据量,lognum为所述日志文件的总量,logmean为所述差值平均值。
在本发明实施例中,通过在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下,根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名,并在基于文件名对各个日志文件进行排序之后,将各个日志文件内的数据进行合并,生成数据合并文件,计算生成数据合并过程中的总时间复杂度以及各个日志文件之间的数据量的差值平均值,最后将总时间复杂度以及所述差值平均值添加进数据合并文件,生成日志归并文件,从而实现对大量的日志文件进行合理整合,便于用户浏览和查找日志文件信息,并在整合的过程中,对日志文件的相关参数进行计算,从而提高数据利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的日志的归并方法的实现流程图;
图2是本发明实施例提供的日志的归并方法S103的具体实现流程图;
图3是本发明实施例提供的日志的归并方法S104的具体实现流程图;
图4是本发明实施例提供的日志的归并装置的结构框图;
图5是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的日志的归并方法的实现流程,该方法流程包括步骤S101至S106。各步骤的具体实现原理如下。
S101:在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下。
由于容器技术可以实现程序的快速部署,日益成为了人们生活中经常使用的技术,以Docker为代表的基于容器的虚拟化技术是当前虚拟技术的热点,当前的Docker是一个开源的应用容器引擎,该应用容器引擎可以控制多个Docker容器的运行。一个宿主机内可以部署多个Docker容器,同时一个Docker容器中的程序还可以在不同的宿主机中运行。
可以理解地,当一个Docker容器中的程序在不同的宿主机中运行时,生成的相关的日志文件也会存储于不同的宿主机中,因此用户难以对该Docker容器的整体运行情况进行分析。
可选地,在本发明实施例中,通过接收用户输入的容器IP,确定用户选择的目标容器。再创建一个basedir目录,根据目标容器的容器ip对应的宿主机列表,将宿主机列表中的宿主机内存储的且由目标容器生成的日志文件拷贝并存储于该basedir目录下,从而对各个宿主机中存储的由目标容器生成的日志文件作一个初次合并,为后续的归并及分析过程提供数据支持。
S102:根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名。
在本发明实施例中,由于需要在后续的过程中对日志目录下的各个日志文件中的各行数据进行排序,为了减少排序时所消耗的时间,所以在本步骤中需要对日志文件在存储于各个宿主机时的文件名进行修改。
可选地,所述根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名,包括:
将所述日志文件中的第一行数据的时间戳对应的时间作为所述日志文件的第一时间,所述时间戳用于记录数据的生成时间;将所述日志文件中的最后一行数据的时间戳对应的时间作为所述日志文件的第二时间;将所述第一时间和所述第二时间写入所述日志文件的文件名的末尾,以修改所述所述日志文件的文件名。
示例性地,假设一个日志文件的原来的文件名为:A,若该日志文件的第一行数据的时间戳对应的时间为20180101100333,而该日志文件的第一行数据的时间戳对应的时间为20180104090234,则修改后的日志文件的文件名为:A(20180101100333,20180104090234)。
S103,根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件。
可以理解地,在本发明实施例中,通过日志文件的文件名进行排序,不需要在每次数据合并时都分析一次各个日志文件中各行数据的时间戳,有利于减少排序以及合并过程中所消耗的时间。
作为本发明的一个实施例,如图2所示,上述S103包括:
S1031,根据所述日志文件的文件名内的所述第一时间由小到大的顺序,对各个所述日志文件进行排序。
示例性地,如上文示例所述,一个日志文件的文件名为:A(20180101100333,20180104090234),另一个日志文件的文件名为:B(20180102000003,20180105090001)则在本发明实施例中,根据20180101100333以及20180102000003对两个日志文件进行排序,可以理解地,根据本发明实施例中的排序规则,日志文件A(20180101100333,20180104090234)会排在日志文件B(20180102000003,20180105090001)之前。
S1032,将排序在第一位的所述日志文件标记为第一日志文件,将排序在第二位的所述日志文件标记为第二日志文件。
值得注意地,在本发明实施例中,排序在第二位的日志文件是初始的第二日志文件,由于本实施例提供的是一个循环执行的过程,所以第二日志文件是可变的,在每一轮计算之后,就会将日志目录中当前的第二日志文件的下一个日志文件作为新的第二日志文件,并根据新的第二日志文件重复进行新的一轮执行过程。
S1033,将所述第一日志文件内的数据存入所述数据合并文件。
可以理解地,在所述第一日志文件内的数据存入之前,数据合并文件已经创建,只是在第一日志文件内的数据存入之前,数据合并文件内并没有数据。本发明实施例实际上是一个逐渐向数据合并文件添加数据的过程。
S1034:判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间。
可以理解地,在第一日志文件内的数据存入数据合并文件之后,数据合并文件内包含有多行数据,每一行数据都有其对应的时间戳。而且由于在本发明实施例中,每一个日志文件内包含的各行数据是按照对应的时间戳代表的时间由早至晚排列的,而且根据下文的合并规则,一个数据合并文件内的各行数据也是按照对应的时间戳代表的时间由早至晚排列的,所以在本发明实施例中,通过判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间,就可以判断出当前的第二日志文件内的全部数据的生成时间是否整体晚于当前的数据合并文件内的全部数据。
S1035,若所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间,则将所述第二日志文件内的全部数据统一存入所述数据合并文件的末行数据之后。
S1036,若所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间,则按照所述第二日志文件中各条数据的时间戳,将所述第二日志文件中的各条数据依次插入所述数据合并文件中,以使插入后的所述数据合并文件内各行数据的时间戳对应的时间由小到大排列。
在本发明实施例中的本步骤中,按照第二日志文件中各行数据的时间戳对应的时间,将各行数据依次作为待插数据,将待插数据插入数据合并文件中的特定区域,这个特定区域的上一行数据的时间戳对应的时间不晚于待插数据的时间戳对应的时间,特定区域的下一行数据的时间戳对应的时间不早于待插数据的时间戳对应的时间。
S1037,按照所述日志目录下各个日志文件排序的顺序,将当前的所述第二日志文件的下一个所述日志文件标记为新的第二日志文件,并返回执行判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间的操作,直至所述日志目录下的各个所述日志文件内的数据均存入所述数据合并文件。
如上文所述,本实施例提供的是一个循环执行的过程,所以第二日志文件是可变的,在每一轮计算之后,就会将日志目录中当前的第二日志文件的下一个日志文件作为新的第二日志文件,并根据新的第二日志文件重复进行新的一轮执行过程。
可以理解地,通过上述排序以及合并的过程,首先可以减少第二日志文件中各行数据插入数据合并文件时对于时间的比对次数;其次由于每个日志文件的文件名中包含了第一时间以及第二时间,因此在实际排序时可以缩小分析时间戳的时间,有利于提高单次时间比对的效率;最后将多个日志文件中的各行数据进行有序的排列和整合,有利于用户浏览和分析日志文件的数据。
S104,计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数。
可以理解地,上文所提到的数据合并文件中虽然整合了原本存储于不同宿主机中各个日志文件的数据,但是并未生成新的数据或参数,在本发明实施例中,为了计算各个日志文件本身的数据特性,需要计算总时间复杂度,从而提高对于日志文件的数据的利用率。
作为本发明的一个实施例,如图3所示,上述S104包括:
S1041,统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第一数量。
S1042,统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第二数量。
S1043,当出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时,记录当前的所述第二日志文件内数据的行数,作为第一数据行数,记录当前的所述数据合并文件内数据的行数,作为第二数据行数。
S1044,通过公式1计算所述总时间复杂度
可选地,所述公式1为:
Figure BDA0001742080630000101
计算所述总时间复杂度,所述Ticom表示所述总时间复杂度,所述num1为所述第一数量,所述num2为所述第二数量,所述linum1i表示第i次出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第一数据行数,所述linum2i表示第i次出现所述所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第二数据行数。
可以理解地,情况1,由于当出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间时,只需要进行一次对比,就可以将第二日志文件内的全部数据统一存入所述数据合并文件的末行数据之后,所以在这种情况下的时间复杂度为1,所以如果一共出现了num1次的第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间的情况,则这种情况对应的总的时间复杂度为num1。
可以理解地,情况2,由于当第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时,当前的数据合并文件是由多个有序排列的数据组成,而当前的第二日志文件也是由多个有序排列的数据组成。基于有序队列合并的时间复杂度的计算规则:若有两个有序队列,一个有序队列的数据量为m,一个有序队列的数据量为n,则二者合并的时间复杂度为O(n+m),所以本发明实施例中,所有符合第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间的情况的,总的时间复杂度为
Figure BDA0001742080630000111
可以理解地,结合上述两种情况,计算出的总时间复杂度为
Figure BDA0001742080630000112
Figure BDA0001742080630000113
S105,计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况。
可选地,通过公式2:
Figure BDA0001742080630000114
计算所述差值平均值,所述logsizei表示依据排序从上至下第i个日志文件的数据量,lognum为所述日志文件的总量,logmean为所述差值平均值。
S106,将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件。
可选地,可以将总时间复杂度以及所述差值平均值添加在所述数据合并文件的首行,以更加清晰地体现目标容器生成的日志文件的特性,便于用户掌握目标容器运行的整体情况。
可以理解地,通过在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下,根据日志文件中数据的生成时间,修改各个所述日志文件的文件名,并在基于文件名对各个日志文件进行排序之后,将各个日志文件内的数据进行合并,生成数据合并文件,计算生成数据合并过程中的总时间复杂度以及各个日志文件之间的数据量的差值平均值,最后将总时间复杂度以及所述差值平均值添加进数据合并文件,生成日志归并文件,实现对大量的日志文件进行合理整合,便于用户浏览和查找日志文件信息,并在整合的过程中,对日志文件的相关参数进行计算,以提高数据利用率。
对应于上文实施例所述的日志的归并方法,图4示出了本发明实施例提供的日志的归并装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图4,该装置包括:
存储模块401,用于在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下;
修改模块402,用于根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名;
合并模块403,用于根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件;
第一计算模块404,用于计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数;
第二计算模块405,用于计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况;
生成模块406,用于将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件。
可选地,所述根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名,包括:
将所述日志文件中的第一行数据的时间戳对应的时间作为所述日志文件的第一时间,所述时间戳用于记录数据的生成时间;将所述日志文件中的最后一行数据的时间戳对应的时间作为所述日志文件的第二时间;将所述第一时间和所述第二时间写入所述日志文件的文件名的末尾,以修改所述日志文件的文件名。
可选地,所述根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件,包括:根据所述日志文件的文件名内的所述第一时间由小到大的顺序,对各个所述日志文件进行排序;将排序在第一位的所述日志文件标记为第一日志文件,将排序在第二位的所述日志文件标记为第二日志文件;将所述第一日志文件内的数据存入所述数据合并文件;判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间;若所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间,则将所述第二日志文件内的全部数据统一存入所述数据合并文件的末行数据之后;若所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间,则按照所述第二日志文件中各条数据的时间戳,将所述第二日志文件中的各条数据依次插入所述数据合并文件中,以使插入后的所述数据合并文件内各行数据的时间戳对应的时间由小到大排列;按照所述日志目录下各个日志文件排序的顺序,将当前的所述第二日志文件的下一个所述日志文件标记为新的第二日志文件,并返回执行判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间的操作,直至所述日志目录下的各个所述日志文件内的数据均存入所述数据合并文件。
可选地,所述计算所述总时间复杂度,包括:
统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第一数量;统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第二数量;当出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时,记录当前的所述第二日志文件内数据的行数,作为第一数据行数,记录当前的所述数据合并文件内数据的行数,作为第二数据行数;通过公式:
Figure BDA0001742080630000141
Figure BDA0001742080630000142
计算所述总时间复杂度,所述Ticom表示所述总时间复杂度,所述num1为所述第一数量,所述num2为所述第二数量,所述linum1i表示第i次出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第一数据行数,所述linum2i表示第i次出现所述所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第二数据行数。
可选地,所述计算所述差值平均值,包括:
通过公式:
Figure BDA0001742080630000143
计算所述差值平均值,所述logsizei表示依据排序从上至下第i个日志文件的数据量,lognum为所述日志文件的总量,logmean为所述差值平均值。
可以理解地,通过在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下,根据日志文件中数据的生成时间,修改各个所述日志文件的文件名,并在基于文件名对各个日志文件进行排序之后,将各个日志文件内的数据进行合并,生成数据合并文件,计算生成数据合并过程中的总时间复杂度以及各个日志文件之间的数据量的差值平均值,最后将总时间复杂度以及所述差值平均值添加进数据合并文件,生成日志归并文件,实现对大量的日志文件进行合理整合,便于用户浏览和查找日志文件信息,并在整合的过程中,对日志文件的相关参数进行计算,以提高数据利用率。
图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如日志的归并程序。所述处理器50执行所述计算机程序52时实现上述各个日志的归并方法实施例中的步骤,例如图1所示的步骤101至106。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元401至406的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (6)

1.一种日志的归并方法,其特征在于,包括:
在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下;
根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名;
根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件;
计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数;
计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况;
将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件;
所述根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名,包括:
将所述日志文件中的第一行数据的时间戳对应的时间作为所述日志文件的第一时间,所述时间戳用于记录数据的生成时间;
将所述日志文件中的最后一行数据的时间戳对应的时间作为所述日志文件的第二时间;
将所述第一时间和所述第二时间写入所述日志文件的文件名的末尾,以修改所述日志文件的文件名;
所述根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件,包括:
根据所述日志文件的文件名内的所述第一时间由小到大的顺序,对各个所述日志文件进行排序;
将排序在第一位的所述日志文件标记为第一日志文件,将排序在第二位的所述日志文件标记为第二日志文件;
将所述第一日志文件内的数据存入所述数据合并文件;
判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间;
若所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间,则将所述第二日志文件内的全部数据统一存入所述数据合并文件的末行数据之后;
若所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间,则按照所述第二日志文件中各条数据的时间戳,将所述第二日志文件中的各条数据依次插入所述数据合并文件中,以使插入后的所述数据合并文件内各行数据的时间戳对应的时间由小到大排列;
按照所述日志目录下各个日志文件排序的顺序,将当前的所述第二日志文件的下一个所述日志文件标记为新的第二日志文件,并返回执行判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间的操作,直至所述日志目录下的各个所述日志文件内的数据均存入所述数据合并文件。
2.如权利要求1所述的日志的归并方法,其特征在于,所述计算所述总时间复杂度,包括:
统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第一数量;
统计在所述依次将各个所述日志文件内的数据进行合并的过程中,出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间的次数,作为第二数量;
当出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时,记录当前的所述第二日志文件内数据的行数,作为第一数据行数,记录当前的所述数据合并文件内数据的行数,作为第二数据行数;
通过公式:计算所述总时间复杂度,所述Ticom表示所述总时间复杂度,所述num1为所述第一数量,所述num2为所述第二数量,所述linum1i表示第i次出现所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第一数据行数,所述linum2i表示第i次出现所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间时的所述第二数据行数。
3.如权利要求1所述的日志的归并方法,其特征在于,所述计算所述差值平均值,包括:
通过公式:计算所述差值平均值,所述logsizei表示依据排序从上至下第i个日志文件的数据量,lognum为所述日志文件的总量,logmean为所述差值平均值。
4.一种终端设备,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:
在确定目标容器后,创建日志目录,并将各个宿主机中所述目标容器生成的日志文件存储于所述日志目录下;
根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名;
根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件;
计算总时间复杂度,所述总时间复杂度用于表示生成所述数据合并文件所需要的单位时间的个数;
计算差值平均值,所述差值平均值用于表示各个所述日志文件之间的数据量的差异情况;
将所述总时间复杂度以及所述差值平均值添加进所述数据合并文件,生成日志归并文件;
所述根据所述日志文件中数据的生成时间,修改各个所述日志文件的文件名,包括:
将所述日志文件中的第一行数据的时间戳对应的时间作为所述日志文件的第一时间,所述时间戳用于记录数据的生成时间;
将所述日志文件中的最后一行数据的时间戳对应的时间作为所述日志文件的第二时间;
将所述第一时间和所述第二时间写入所述日志文件的文件名的末尾,以修改所述日志文件的文件名;
所述根据所述日志文件的文件名对各个所述日志文件进行排序,并根据排序的顺序,依次将各个所述日志文件内的数据进行合并,以生成数据合并文件,包括:
根据所述日志文件的文件名内的所述第一时间由小到大的顺序,对各个所述日志文件进行排序;
将排序在第一位的所述日志文件标记为第一日志文件,将排序在第二位的所述日志文件标记为第二日志文件;
将所述第一日志文件内的数据存入所述数据合并文件;
判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间;
若所述第二日志文件的文件名内的所述第一时间晚于所述数据合并文件内末行数据的时间戳对应的时间,则将所述第二日志文件内的全部数据统一存入所述数据合并文件的末行数据之后;
若所述第二日志文件的文件名内的所述第一时间不晚于所述数据合并文件内末行数据的时间戳对应的时间,则按照所述第二日志文件中各条数据的时间戳,将所述第二日志文件中的各条数据依次插入所述数据合并文件中,以使插入后的所述数据合并文件内各行数据的时间戳对应的时间由小到大排列;
按照所述日志目录下各个日志文件排序的顺序,将当前的所述第二日志文件的下一个所述日志文件标记为新的第二日志文件,并返回判断所述第二日志文件的文件名内的所述第一时间是否晚于所述数据合并文件内末行数据的时间戳对应的时间,直至所述日志目录下的各个所述日志文件内的数据均存入所述数据合并文件。
5.如权利要求4所述的终端设备,其特征在于,所述计算所述差值平均值,包括:
通过公式:计算所述差值平均值,所述logsizei表示依据排序从上至下第i个日志文件的数据量,lognum为所述日志文件的总量,logmean为所述差值平均值。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述方法的步骤。
CN201810824218.7A 2018-07-25 2018-07-25 日志的归并方法及终端设备 Active CN109165201B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810824218.7A CN109165201B (zh) 2018-07-25 2018-07-25 日志的归并方法及终端设备
PCT/CN2018/105540 WO2020019436A1 (zh) 2018-07-25 2018-09-13 一种日志的归并方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810824218.7A CN109165201B (zh) 2018-07-25 2018-07-25 日志的归并方法及终端设备

Publications (2)

Publication Number Publication Date
CN109165201A CN109165201A (zh) 2019-01-08
CN109165201B true CN109165201B (zh) 2023-04-14

Family

ID=64898006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810824218.7A Active CN109165201B (zh) 2018-07-25 2018-07-25 日志的归并方法及终端设备

Country Status (2)

Country Link
CN (1) CN109165201B (zh)
WO (1) WO2020019436A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032565A (zh) 2019-03-26 2019-07-19 阿里巴巴集团控股有限公司 一种生成统计信息的方法、系统以及电子设备
CN113010607A (zh) * 2021-04-06 2021-06-22 工银科技有限公司 系统间数据同步方法、装置、计算机系统、存储介质
CN114584346B (zh) * 2022-01-28 2024-01-12 深圳融安网络科技有限公司 日志流的处理方法、系统、终端设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605028A (zh) * 2009-02-17 2009-12-16 北京安天电子设备有限公司 一种日志记录合并方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5444673B2 (ja) * 2008-09-30 2014-03-19 富士通株式会社 ログ管理方法、ログ管理装置、ログ管理装置を備えた情報処理装置、及びプログラム
US10311024B2 (en) * 2016-08-31 2019-06-04 Ca, Inc. Merging file storage directory structures through user interface visualization of refactoring decisions
CN107526674A (zh) * 2017-08-31 2017-12-29 郑州云海信息技术有限公司 一种嵌入式系统日志记录的方法与装置
CN107959587A (zh) * 2017-11-23 2018-04-24 上海斐讯数据通信技术有限公司 基于海量文件的处理结果日志合并装置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605028A (zh) * 2009-02-17 2009-12-16 北京安天电子设备有限公司 一种日志记录合并方法和系统

Also Published As

Publication number Publication date
CN109165201A (zh) 2019-01-08
WO2020019436A1 (zh) 2020-01-30

Similar Documents

Publication Publication Date Title
US9787706B1 (en) Modular architecture for analysis database
US11200258B2 (en) Systems and methods for fast and effective grouping of stream of information into cloud storage files
Liu et al. HSim: a MapReduce simulator in enabling cloud computing
CN109165201B (zh) 日志的归并方法及终端设备
KR101768181B1 (ko) 최적화된 브라우저 렌더링 프로세스
CN105022670A (zh) 一种云计算平台中的异构分布式任务处理系统及其处理方法
WO2018054221A1 (en) Pipeline dependent tree query optimizer and scheduler
CN108388509B (zh) 一种软件测试方法、计算机可读存储介质及终端设备
US11151089B2 (en) Compression of log data using pattern recognition
CN107562532B (zh) 一种预测设备集群的硬件资源利用率的方法及装置
US11681770B2 (en) Determining whether to process identified uniform resource locators
CN111046045A (zh) 处理数据倾斜的方法、装置、设备及存储介质
Tan et al. Hadoop framework: impact of data organization on performance
CN111460011A (zh) 页面数据展示方法、装置、服务器及存储介质
CN102831102A (zh) 一种在计算机集群上进行矩阵乘积运算的方法和系统
US10896056B2 (en) Cluster expansion method and apparatus, electronic device and storage medium
US20180217913A1 (en) Systems and methods for performance evaluation of input/output (i/o) intensive enterprise applications
CN117786299A (zh) 一种稀疏矩阵求解方法、系统、设备及介质
CN112800091A (zh) 一种流批一体式计算控制系统及方法
CN112764935B (zh) 大数据处理方法、装置、电子设备及存储介质
CN111143456B (zh) 基于Spark的Cassandra数据导入方法、装置、设备及介质
KR101378348B1 (ko) 프라이빗 클라우드 인프라 기반 하둡 클러스터의 기본 프로토타입
CN115686789A (zh) 一种离散事件并行处理方法、终端设备及存储介质
Huang et al. Adaptive Combiner for MapReduce on cloud computing
US20160098411A1 (en) Querying input data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant