CN109446173B - 日志数据处理方法、装置、计算机设备和存储介质 - Google Patents

日志数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN109446173B
CN109446173B CN201811088160.0A CN201811088160A CN109446173B CN 109446173 B CN109446173 B CN 109446173B CN 201811088160 A CN201811088160 A CN 201811088160A CN 109446173 B CN109446173 B CN 109446173B
Authority
CN
China
Prior art keywords
file
log
analyzed
log file
state
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
CN201811088160.0A
Other languages
English (en)
Other versions
CN109446173A (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 CN201811088160.0A priority Critical patent/CN109446173B/zh
Publication of CN109446173A publication Critical patent/CN109446173A/zh
Application granted granted Critical
Publication of CN109446173B publication Critical patent/CN109446173B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及基础运营技术,公开了一种日志数据处理方法、装置、计算机设备和存储介质。所述方法包括:获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据创建时间的先后顺序选取预设数量的待解析日志文件写入第一文件队列;调用多个第一线程对待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;将接收日志文件写入第二文件队列;调用多个第二线程读取接收日志文件以提取相互关联的第一标识及第二标识并将其关联存储至数据库中;从拆分得到的状态日志文件中选取目标状态日志文件,将目标状态日志文件写入第三文件队列;调用第三线程读取目标状态日志文件以提取状态描述信息并将其存储至数据库。

Description

日志数据处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及互联网技术领域,特别是涉及一种日志数据处理方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的迅速发展,电子邮件逐渐取代纸质信件成为人们常用的沟通手段,在电子邮件的发送过程中,邮件网关起到重要作用,邮件网关(例如ironport网关设备)在发送邮件后,会通过异步输出日志记录每封邮件的处理情况,通过解析日志可以获取邮件的发送结果。
传统技术中,由于日志文件中包含的信息众多,有很多无用的信息,邮件网关在解析日志文件获取邮件发送结果时,需要花费大量的时间,导致邮件发送结果的获取效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高邮件发送结果获取效率的日志数据处理方法、装置、计算机设备和存储介质。
一种日志数据处理方法,所述方法包括:
获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据所述创建时间的先后顺序从所述待解析日志文件集合中选取预设数量的待解析日志文件,将选取的所述待解析日志文件写入第一文件队列;
调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;
将拆分得到的所述接收日志文件写入第二文件队列;
调用多个第二线程从所述第二文件队列中读取接收日志文件,从读取到的所述接收日志文件中提取第一标识及与所述第一标识相关联的第二标识,将提取到的所述第一标识及其对应的第二标识关联存储至数据库中;
从拆分得到的状态日志文件中选取目标状态日志文件,将所述目标状态日志文件写入第三文件队列;
调用多个第三线程从所述第三文件队列中读取目标状态日志文件,从读取到的所述目标状态日志文件中提取状态描述信息及与所述状态描述信息对应的第二标识,根据所述第二标识将所述状态描述信息存储至所述数据库。
在其中一个实施例中,所述根据所述创建时间的先后顺序从所述待解析日志文件集合中选取预设数量的待解析日志文件,包括:
获取所述当前待解析日志文件集合中各个待解析日志文件的内存大小;
获取所述第一文件队列对应的当前可用内存容量;
根据各个所述待解析日志文件对应的内存大小及所述第一文件队列对应的当前可用内存容量确定所述待解析日志文件对应的选取数量。
在其中一个实施例中,所述调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分,包括:
获取预设的关键字,所述关键字包括第一类关键字和第二类关键字;
将所述第一类关键字与所述待解析日志文件进行匹配以得到对应的接收日志文件,将所述第二类关键字与所述待解析日志文件进行匹配以得到对应的状态日志文件。
在其中一个实施例中,所述方法还包括:
调用监控线程分别对所述第一文件队列、所述第二文件队列以及所述第三文件队列进行监控,根据各个文件队列的日志文件数量对各个文件队列对应的线程数量进行调整。
在其中一个实施例中,在所述将选取的所述待解析日志文件写入第一文件队列之后,还包括:
将选取的所述待解析日志文件写入第四文件队列,并将写入第四文件队列的所述待解析日志文件的状态标记为第一状态;
在调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分之后,所述方法还包括:
将拆分完成的待解析日志文件在所述第四文件队列中的状态更新为第二状态;
在将所述第一标识及其对应的第二标识关联存储至数据库中之后,还包括:
将完成数据库关联存储的第一标识及第二标识对应的待解析日志文件在第四文件队列中的状态更新为第三状态;
从拆分得到的状态日志文件中选取目标状态日志文件,包括:
根据所述第四文件队列中待解析日志文件的当前状态确定目标待解析日志文件,将所述目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
一种日志数据处理装置,所述装置包括:
待解析日志文件选取模块,用于获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据所述创建时间的先后顺序从所述待解析日志文件集合中选取预设数量的待解析日志文件,将选取的所述待解析日志文件写入第一文件队列;
拆分模块,用于调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;
接收日志文件写入模块,用于将拆分得到的所述接收日志文件写入第二文件队列;
标识提取模块,用于调用多个第二线程从所述第二文件队列中读取接收日志文件,从读取到的所述接收日志文件中提取第一标识及与所述第一标识相关联的第二标识,将提取到的所述第一标识及其对应的第二标识关联存储至数据库中;
目标状态日志文件写入模块,用于从拆分得到的状态日志文件中选取目标状态日志文件,将所述目标状态日志文件写入第三文件队列;
状态描述信息提取模块,用于调用多个第三线程从所述第三文件队列中读取目标状态日志文件,从读取到的所述目标状态日志文件中提取状态描述信息及与所述状态描述信息对应的第二标识,根据所述第二标识将所述状态描述信息存储至所述数据库。
在其中一个实施例中,所述待解析日志文件选取模块还用于获取所述当前待解析日志文件集合中各个待解析日志文件的内存大小;获取所述第一文件队列对应的当前可用内存容量;根据各个所述待解析日志文件对应的内存大小及所述第一文件队列对应的当前可用内存容量确定所述待解析日志文件对应的选取数量。
在其中一个实施例中,所述拆分模块用于获取预设的关键字,所述关键字包括第一类关键字和第二类关键字;将所述第一类关键字与所述待解析日志文件进行匹配以得到对应的接收日志文件,将所述第二类关键字与所述待解析日志文件进行匹配以得到对应的状态日志文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意实施例所述的日志数据处理方法所述的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意实施例所述的日志数据处理方法所述的步骤。
上述日志数据处理方法、装置、计算机设备和存储介质,首先按照创建时间先后顺序将待解析日志文件写入第一文件队列,然后调用多个第一线程对带解析日志文件进行拆分以得到接收日志文件及状态日志文件,将接收日志文件写入第二文件队列,然后调用多个第二线程读取接收日志文件并提取相互关联的第一标识和第二标识,并将第一标识和第一标识关联存储至数据库中,进一步获取目标状态日志文件并写入第三文件队列,接着调用多个第三线程读取目标状态日志文件以得到状态描述信息及其对应的第二标识,根据该第二标识将状态描述信息存储至数据库中,本申请中,通过设置多个队列,多个线程,同时对多个日志文件按照时间先后顺序进行解析处理,可以提高邮件发送结果的获取效率。
附图说明
图1为一个实施例中日志数据处理方法的应用场景图;
图2为一个实施例中日志数据处理方法的流程示意图;
图3为另一个实施例中日志数据处理方法的流程示意图;
图4为一个实施例中日志数据处理装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的日志数据处理方法,可以应用于如图1所示的应用环境中。其中,邮件网关104、数据库108分别与日志服务器106通过网络进行通信。邮件网关104发送邮件后异步输出日志文件,将日志文件推送到日志服务器106进行解析,对于需要解析的日志文件,日志服务器106按照创建时间先后顺序进行选取,将选取的日志文件加入第一文件队列,然后调用多个第一线程对第一文件队列中的日志文件分别进行拆分,得到接收日志文件和状态日志文件,将解析得到的接收日志文件加入第二文件队列,接着调用多个第二线程从第二文件队列中读取接收日志文件,从读取到的接收日志文件中提取第一标识及与第一标识相关联的第二标识,将第一标识及其对应的第二标识关联存储至数据库108中,进一步,日志服务器106从解析得到的状态日志文件中选取目标状态日志文件,将状态日志文件写入第三文件队列,然后调用多个第三线程从第三文件队列中读取状态日志文件,从读取到的状态日志文件中提取状态描述信息,将状态描述信息存储至数据库108,从而完成日志文件的解析及邮件发送结果的获取。其中,日志服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种日志数据处理方法,以该方法应用于图1中的日志服务器106为例进行说明,包括以下步骤:
步骤S202,获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,将选取的待解析日志文件写入第一文件队列。
具体地,待解析日志文件指的是由邮件网关输出的需要进行解析的日志文件,日志文件中包含了邮件对应的第一标识、第二标识及邮件发送的状态描述信息等,其中,第一标识为邮件系统生成邮件时为邮件分配的ID(identification,标识),第二标识为邮件网关接收到邮件系统的邮件后为该邮件分配的ID,用于在邮件网关中唯一标识该邮件,日志文件的创建时间指的是邮件网关输出该日志文件的时间。
在本实施例中,日志服务器定时扫描获取待解析日志文件,将获取到的所有的待解析日志文件按照创建时间的先后顺序进行排序,然后从创建时间最早的待解析日志文件开始依次选取预设数量的待解析日志文件,将这些日志文件写入第一文件队列。
步骤S204,调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件。
具体地,第一线程用于对第一文件队列中的待解析日志文件进行拆分,将每一个待解析日志文件拆分得到一个接收日志文件及一个状态日志文件,其中,接收日志文件中包含多个第一标识及多个第二标识,每一个第一标识存在唯一一个与之关联的第二标识,状态日志文件中包含多个第二标识及状态描述信息,状态描述信息用于描述某一封邮件的发送状态,与第二标识相关联,发送状态包括发送成功的状态,发送失败的状态及对应的原因描述。
步骤S206,将拆分得到的接收日志文件写入第二文件队列。
步骤S208,调用多个第二线程从第二文件队列中读取接收日志文件,从读取到的接收日志文件中提取第一标识及与第一标识相关联的第二标识,将提取到的第一标识及其对应的第二标识关联存储至数据库中。
具体地,日志服务器将拆分得到的接收日志文件依次写入第二文件队列,然后运行多个第二线程,其中,第二线程用于从第二文件队列中读取接收日志文件,并从读取到的接收日志文件中提取相互关联的第一标识及第二标识,并将提取的第一标识和第二标识关联存储至数据库中。
步骤S210,从拆分得到的状态日志文件中选取目标状态日志文件,将目标状态日志文件写入第三文件队列。
步骤S212,调用多个第三线程从第三文件队列中读取目标状态日志文件,从读取到的目标状态日志文件中提取状态描述信息及与状态描述信息对应的第二标识,根据第二标识将状态描述信息存储至数据库。
具体地,对于拆分得到的所有状态日志文件,日志服务器可以从中选取符合要求的状态日志文件作为目标状态日志文件,并将这些目标状态日志文件写入第三文件队列,然后调用多个第三线程对第三文件队列中的状态日志文件依次进行读取,并从读取到的状态日志文件中提取状态描述信息及与状态描述信息对应的第二标识,将提取到的第二标识与数据库中的第二标识进行匹配,当匹配成功时,将该状态描述信息与数据库中匹配上的第二标识进行关联存储。
在一个实施例中,对于大多数邮件而言,其对应的日志数据通常在同一个日志文件中,因此,为了确保后续的状态描述信息可以更快的存储进数据库中,日志服务器可以判断某个状态日志文件对应的接收日志文件(即与状态日志同属于一个待解析日志拆分得到的接收日志文件)中所有相互关联的第一标识及第二标识是否已经成功存储至数据库中,若是,则将该状态日志文件确定为目标状态日志文件。
在另一个实施例中,日志服务器可以判断某个状态日志文件对应的接收日志文件及该接收日志文件之前(即对应的待解析日志文件的创建时间早于该接收日志文件的接收日志文件)中所有相互关联的第一标识及第二标识是否已经成功存储至数据库中,若是,则将该状态日志文件确定为目标状态日志文件,这样可以避免有些邮件的接收日志数据(相互关联的第一标识与第二标识)与状态日志数据(状态描述信息)在不同的两个日志文件中时,由于状态日志数据对应的日志文件先被线程处理完,而导致该状态日志数据存储时由于无法匹配上第二标识而导致无法存储至数据库的情况。
上述日志数据处理方法中,日志服务器首先按照创建时间先后顺序将待解析日志文件写入第一文件队列,然后调用多个第一线程对带解析日志文件进行拆分以得到接收日志文件及状态日志文件,将接收日志文件写入第二文件队列,然后调用多个第二线程读取接收日志文件并提取相互关联的第一标识和第二标识,并将第一标识和第一标识关联存储至数据库中,进一步获取目标状态日志文件并写入第三文件队列,接着调用多个第三线程读取目标状态日志文件以得到状态描述信息及其对应的第二标识,根据该第二标识将状态描述信息存储至数据库中,本申请中,通过设置多个队列,多个线程,同时对多个日志文件按照时间先后顺序进行解析处理,可以提高邮件发送结果的获取效率;同时,由于日志解析由专门的日志处理服务器进行处理,可以节省邮件网关的运行资源。
在一个实施例中,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,包括:获取当前待解析日志文件集合中各个待解析日志文件的内存大小;获取第一文件队列对应的当前可用内存容量;根据各个待解析日志文件对应的内存大小及第一文件队列对应的当前可用内存容量确定待解析日志文件对应的选取数量。
具体地,可以设置各个待解析日志文件为相同大小的文件,则待解析日志文件对应的选取数量不超过第一文件队列对应的当前可用内存容量与待解析日志文件的内存大小的比值,如第一文件队列对应的当前可用内存容量为10.2M,待解析日志文件的内存大小为2M,则待解析日志文件对应的选取数量不超过5;若各个待解析日志文件为内存大小不同的日志文件,则保证选取的所有待解析日志文件的内存大小累加值不超过第一文件队列的当前可用内存容量即可。
上述实施例中,通过根据待解析日志文件的内存大小及第一文件队列对应的当前可用内存容量确定待解析日志文件的选取数量,可以防止第一文件队列中加载的日志文件过多而导致内存溢出的现象。
在一个实施例中,调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,包括:获取预设的关键字,关键字包括第一类关键字和第二类关键字;将第一类关键字与待解析日志文件进行匹配以得到对应的接收日志文件,将第二类关键字与待解析日志文件进行匹配以得到对应的状态日志文件。
其中,第一类关键字用于与待解析日志文件进行匹配以得到对应的接收日志文件,第一类关键字可以是描述第一标识的字段名称,例如,可以是“Message-ID”,第二类关键词用于与待解析日志文件进行匹配以得到对应的状态日志文件,第二类关键字为与邮件发送结果的描述信息相关的关键字,例如,与发送成功的结果相关的关键字“发送成功”、与发送失败的结果相关的关键字“地址错误”“Adress not found”等等。
具体地,将第一类关键字与待解析日志文件进行匹配时,可以将第一类关键词与日志文件中的每一条日志数据进行全匹配,当任意一条日志数据中匹配到与第一类关键字相同的词时,将该条日志数据写入接收日志文件中,当与每条日志数据匹配完后,即得到接收日志文件;将第二类关键字与待解析日志文件匹配时,可以将逐一将每一个第二类关键字分别与日志文件中的每一条日志数据进行匹配,当任意一条日志数据中匹配到与第二类关键字相同或部分相同的词时,将该条日志数据写入状态日志文件中,当每一个第二类关键字分别与日志文件中每一条日志数据匹配完后,即得到状态日志文件。
上述实施例中,通过关键字匹配对日志文件进行拆分,可以过滤掉日志文件中的无用信息,从而提高对日志文件进行解析的效率,快速获取到邮件的发送结果。
在一个实施例中,上述方法还包括:调用监控线程分别对第一文件队列、第二文件队列以及第三文件队列进行监控,根据各个文件队列的日志文件数量对各个文件队列对应的线程数量进行调整。
具体地,当任意一个文件队列的日志文件数量超过第一预设阈值且持续时间超过第一预设时间时,增加该文件队列对应的线程数量;当某一个文件队列的日志文件数量小于第二预设阈值且持续时间超过第二预设时间时,减少该文件队列对应的线程数量。可以理解的是,本实施例中第一预设阈值、第二预设阈值、第二预设时间、第一预设时间可根据经验进行人工设定。
上述实施例中,通过设置监控线程对文件队列进行监控以对各个文件队列对应的线程数量进行动态调整,使得日志服务器的内存资源能够得到充分利用,同时,可以提高对日志文件的处理效率。
在一个实施例中,如图3所示,提供一种日志数据处理方法,包括以下步骤:
步骤S302,获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,将选取的待解析日志文件写入第一文件队列。
步骤S304,将选取的待解析日志文件写入第四文件队列,并将写入第四文件队列的待解析日志文件的状态标记为第一状态。
其中,第四文件队列中的日志文件为正在解析处理过程中的日志文件,第四队列中的日志文件的状态标记根据日志文件对应的处理进程进行实时更新。第一状态表示待解析日志文件处于待处理的状态。
步骤S306,调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件。
步骤S308,将拆分完成的待解析日志文件在第四文件队列中的状态更新为第二状态。
其中,第二状态表示待解析日志文件处于已拆分的状态。具体地,当第一文件队列中某个待解析日志文件拆分完成后,将第四文件队列中,该拆分完成的待解析日志文件的状态更新为第二状态。
步骤S310,将拆分得到的接收日志文件写入第二文件队列。
步骤S312,调用多个第二线程从第二文件队列中读取接收日志文件,从读取到的接收日志文件中提取第一标识及与第一标识相关联的第二标识,将提取到的第一标识及其对应的第二标识关联存储至数据库中。
步骤S314,将完成数据库关联存储的第一标识及第二标识对应的待解析日志文件在第四文件队列中的状态更新为第三状态。
其中,第三状态表示待解析日志文件处于已入库的状态,即该待解析日志文件中相互关联的第一标识与第二标识已关联存储至数据库中。具体地,当第二文件队列中,某个接收日志文件对应的所有相互关联的标识(第一标识及第二标识)在数据库中关联存储完成后,将第四文件队列中与该接收日志文件对应的待解析日志文件的状态更新为第三状态。
步骤S316,根据第四文件队列中待解析日志文件的当前状态确定目标待解析日志文件,将目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
具体地,日志服务器可以调用监控线程定时对第四文件队列进行扫描,获取第四文件队列中各个待解析日志文件的当前状态,当前状态用于表示该待解析日志文件的当前处理进行。在一个实施例中,当任意一个待解析日志文件的当前状态为第三状态时,将该待解析日志文件确定为目标待解析日志文件;在另一个实施例中,当任意一个待解析日志文件的当前状态为第三状态,且第四文件队列中,所有创建时间早于该待解析日志文件的待解析日志文件的当前状态均为第三状态,则将该待解析日志文件确定为目标待解析日志文件。进一步,服务器将目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
步骤S318,调用多个第三线程从第三文件队列中读取目标状态日志文件,从读取到的目标状态日志文件中提取状态描述信息及与状态描述信息对应的第二标识,根据第二标识将状态描述信息存储至数据库。
进一步,将读取到的状态日志文件所对应的待解析日志文件从第四文件队列中移除。
上述实施例中,通过将待解析日志文件写入第四文件队列,通过对第四文件队列中各个待解析日志文件进行实时状态更新,从而可以快速确定待解析日志文件的当前状态,提高日志文件的解析效率,从而快速获取邮件的发送结果。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种日志数据处理装置400,包括:待解析日志文件选取模块402、拆分模块404、接收日志文件写入模块406、标识提取模块408、目标状态日志文件写入模块410和状态描述信息提取模块412,其中:
待解析日志文件选取模块402用于获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,将选取的待解析日志文件写入第一文件队列;
拆分模块404用于调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;
接收日志文件写入模块406用于将拆分得到的接收日志文件写入第二文件队列;
标识提取模块408用于调用多个第二线程从第二文件队列中读取接收日志文件,从读取到的接收日志文件中提取第一标识及与第一标识相关联的第二标识,将提取到的第一标识及其对应的第二标识关联存储至数据库中;
目标状态日志文件写入模块410用于从拆分得到的状态日志文件中选取目标状态日志文件,将目标状态日志文件写入第三文件队列;
状态描述信息提取模块412用于调用多个第三线程从第三文件队列中读取目标状态日志文件,从读取到的目标状态日志文件中提取状态描述信息及与状态描述信息对应的第二标识,根据第二标识将状态描述信息存储至数据库。
在一个实施例中,待解析日志文件选取模块还用于获取当前待解析日志文件集合中各个待解析日志文件的内存大小;获取第一文件队列对应的当前可用内存容量;根据各个待解析日志文件对应的内存大小及第一文件队列对应的当前可用内存容量确定待解析日志文件对应的选取数量。
在一个实施例中,拆分模块用于获取预设的关键字,关键字包括第一类关键字和第二类关键字;将第一类关键字与待解析日志文件进行匹配以得到对应的接收日志文件,将第二类关键字与待解析日志文件进行匹配以得到对应的状态日志文件。
在一个实施例中,上述装置还包括:动态调整模块,用于调用监控线程分别对第一文件队列、第二文件队列以及第三文件队列进行监控,根据各个文件队列的日志文件数量对各个文件队列对应的线程数量进行调整。
在一个实施例中,上述装置还包括:
第一状态标记模块,用于将选取的待解析日志文件写入第四文件队列,并将写入第四文件队列的待解析日志文件的状态标记为第一状态;
第二状态标记模块,用于将拆分完成的待解析日志文件在第四文件队列中的状态更新为第二状态;
第三状态标记模块,用于将完成数据库关联存储的第一标识及第二标识对应的待解析日志文件在第四文件队列中的状态更新为第三状态;
拆分模块还用于根据第四文件队列中待解析日志文件的当前状态确定目标待解析日志文件,将目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
关于日志数据处理装置的具体限定可以参见上文中对于日志数据处理方法的限定,在此不再赘述。上述日志数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一标识、第二标识、状态描述信息等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种日志数据处理方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,将选取的待解析日志文件写入第一文件队列;调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;将拆分得到的接收日志文件写入第二文件队列;调用多个第二线程从第二文件队列中读取接收日志文件,从读取到的接收日志文件中提取第一标识及与第一标识相关联的第二标识,将提取到的第一标识及其对应的第二标识关联存储至数据库中;从拆分得到的状态日志文件中选取目标状态日志文件,将目标状态日志文件写入第三文件队列;调用多个第三线程从第三文件队列中读取目标状态日志文件,从读取到的目标状态日志文件中提取状态描述信息及与状态描述信息对应的第二标识,根据第二标识将状态描述信息存储至数据库。
在一个实施例中,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,包括:获取当前待解析日志文件集合中各个待解析日志文件的内存大小;获取第一文件队列对应的当前可用内存容量;根据各个待解析日志文件对应的内存大小及第一文件队列对应的当前可用内存容量确定待解析日志文件对应的选取数量。
在一个实施例中,调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,包括:获取预设的关键字,关键字包括第一类关键字和第二类关键字;将第一类关键字与待解析日志文件进行匹配以得到对应的接收日志文件,将第二类关键字与待解析日志文件进行匹配以得到对应的状态日志文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用监控线程分别对第一文件队列、第二文件队列以及第三文件队列进行监控,根据各个文件队列的日志文件数量对各个文件队列对应的线程数量进行调整。
在一个实施例中,在将选取的待解析日志文件写入第一文件队列之后,处理器执行计算机程序时还实现以下步骤:将选取的待解析日志文件写入第四文件队列,并将写入第四文件队列的待解析日志文件的状态标记为第一状态;在调用多个第一线程对第一文件队列中的待解析日志文件进行拆分之后,处理器执行计算机程序时还实现以下步骤:将拆分完成的待解析日志文件在第四文件队列中的状态更新为第二状态;在将第一标识及其对应的第二标识关联存储至数据库中之后,处理器执行计算机程序时还实现以下步骤:将完成数据库关联存储的第一标识及第二标识对应的待解析日志文件在第四文件队列中的状态更新为第三状态;从拆分得到的状态日志文件中选取目标状态日志文件,包括:根据第四文件队列中待解析日志文件的当前状态确定目标待解析日志文件,将目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,将选取的待解析日志文件写入第一文件队列;调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;将拆分得到的接收日志文件写入第二文件队列;调用多个第二线程从第二文件队列中读取接收日志文件,从读取到的接收日志文件中提取第一标识及与第一标识相关联的第二标识,将提取到的第一标识及其对应的第二标识关联存储至数据库中;从拆分得到的状态日志文件中选取目标状态日志文件,将目标状态日志文件写入第三文件队列;调用多个第三线程从第三文件队列中读取目标状态日志文件,从读取到的目标状态日志文件中提取状态描述信息及与状态描述信息对应的第二标识,根据第二标识将状态描述信息存储至数据库。
在一个实施例中,根据创建时间的先后顺序从待解析日志文件集合中选取预设数量的待解析日志文件,包括:获取当前待解析日志文件集合中各个待解析日志文件的内存大小;获取第一文件队列对应的当前可用内存容量;根据各个待解析日志文件对应的内存大小及第一文件队列对应的当前可用内存容量确定待解析日志文件对应的选取数量。
在一个实施例中,调用多个第一线程对第一文件队列中的待解析日志文件进行拆分,包括:获取预设的关键字,关键字包括第一类关键字和第二类关键字;将第一类关键字与待解析日志文件进行匹配以得到对应的接收日志文件,将第二类关键字与待解析日志文件进行匹配以得到对应的状态日志文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:调用监控线程分别对第一文件队列、第二文件队列以及第三文件队列进行监控,根据各个文件队列的日志文件数量对各个文件队列对应的线程数量进行调整。
在一个实施例中,在将选取的待解析日志文件写入第一文件队列之后,计算机程序被处理器执行时还实现以下步骤:将选取的待解析日志文件写入第四文件队列,并将写入第四文件队列的待解析日志文件的状态标记为第一状态;在调用多个第一线程对第一文件队列中的待解析日志文件进行拆分之后,计算机程序被处理器执行时还实现以下步骤:将拆分完成的待解析日志文件在第四文件队列中的状态更新为第二状态;在将第一标识及其对应的第二标识关联存储至数据库中之后,计算机程序被处理器执行时还实现以下步骤:将完成数据库关联存储的第一标识及第二标识对应的待解析日志文件在第四文件队列中的状态更新为第三状态;从拆分得到的状态日志文件中选取目标状态日志文件,包括:根据第四文件队列中待解析日志文件的当前状态确定目标待解析日志文件,将目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种日志数据处理方法,所述方法包括:
获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据所述创建时间的先后顺序从所述待解析日志文件集合中选取预设数量的待解析日志文件,将选取的所述待解析日志文件写入第一文件队列;
调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;
将拆分得到的所述接收日志文件写入第二文件队列;
调用多个第二线程从所述第二文件队列中读取接收日志文件,从读取到的所述接收日志文件中提取第一标识及与所述第一标识相关联的第二标识,将提取到的所述第一标识及其对应的第二标识关联存储至数据库中;
从拆分得到的状态日志文件中选取目标状态日志文件,将所述目标状态日志文件写入第三文件队列;
调用多个第三线程从所述第三文件队列中读取目标状态日志文件,从读取到的所述目标状态日志文件中提取状态描述信息及与所述状态描述信息对应的第二标识,根据所述第二标识将所述状态描述信息存储至所述数据库。
2.根据权利要求1所述的方法,其特征在于,所述根据所述创建时间的先后顺序从所述待解析日志文件集合中选取预设数量的待解析日志文件,包括:
获取所述当前待解析日志文件集合中各个待解析日志文件的内存大小;
获取所述第一文件队列对应的当前可用内存容量;
根据各个所述待解析日志文件对应的内存大小及所述第一文件队列对应的当前可用内存容量确定所述待解析日志文件对应的选取数量。
3.根据权利要求1所述的方法,其特征在于,所述调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分,包括:
获取预设的关键字,所述关键字包括第一类关键字和第二类关键字;
将所述第一类关键字与所述待解析日志文件进行匹配以得到对应的接收日志文件,将所述第二类关键字与所述待解析日志文件进行匹配以得到对应的状态日志文件。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:
调用监控线程分别对所述第一文件队列、所述第二文件队列以及所述第三文件队列进行监控,根据各个文件队列的日志文件数量对各个文件队列对应的线程数量进行调整。
5.根据权利要求1所述的方法,其特征在于,在所述将选取的所述待解析日志文件写入第一文件队列之后,还包括:
将选取的所述待解析日志文件写入第四文件队列,并将写入第四文件队列的所述待解析日志文件的状态标记为第一状态;
在所述调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分之后,所述方法还包括:
将拆分完成的待解析日志文件在所述第四文件队列中的状态更新为第二状态;
在所述将提取到的所述第一标识及其对应的第二标识关联存储至数据库中之后,还包括:
将完成数据库关联存储的第一标识及第二标识对应的待解析日志文件在第四文件队列中的状态更新为第三状态;
所述从拆分得到的状态日志文件中选取目标状态日志文件,包括:
根据所述第四文件队列中待解析日志文件的当前状态确定目标待解析日志文件,将所述目标待解析日志文件对应的状态日志文件确定为目标状态日志文件。
6.一种日志数据处理装置,其特征在于,所述装置包括:
待解析日志文件选取模块,用于获取当前待解析日志文件集合中各个待解析日志文件的创建时间,根据所述创建时间的先后顺序从所述待解析日志文件集合中选取预设数量的待解析日志文件,将选取的所述待解析日志文件写入第一文件队列;
拆分模块,用于调用多个第一线程对所述第一文件队列中的待解析日志文件进行拆分,得到各个待解析日志文件对应的接收日志文件和状态日志文件;
接收日志文件写入模块,用于将拆分得到的所述接收日志文件写入第二文件队列;
标识提取模块,用于调用多个第二线程从所述第二文件队列中读取接收日志文件,从读取到的所述接收日志文件中提取第一标识及与所述第一标识相关联的第二标识,将提取到的所述第一标识及其对应的第二标识关联存储至数据库中;
目标状态日志文件写入模块,用于从拆分得到的状态日志文件中选取目标状态日志文件,将所述目标状态日志文件写入第三文件队列;
状态描述信息提取模块,用于调用多个第三线程从所述第三文件队列中读取目标状态日志文件,从读取到的所述目标状态日志文件中提取状态描述信息及与所述状态描述信息对应的第二标识,根据所述第二标识将所述状态描述信息存储至所述数据库。
7.根据权利要求6所述的装置,其特征在于,所述待解析日志文件选取模块还用于获取所述当前待解析日志文件集合中各个待解析日志文件的内存大小;获取所述第一文件队列对应的当前可用内存容量;根据各个所述待解析日志文件对应的内存大小及所述第一文件队列对应的当前可用内存容量确定所述待解析日志文件对应的选取数量。
8.根据权利要求6所述的装置,其特征在于,所述拆分模块用于获取预设的关键字,所述关键字包括第一类关键字和第二类关键字;将所述第一类关键字与所述待解析日志文件进行匹配以得到对应的接收日志文件,将所述第二类关键字与所述待解析日志文件进行匹配以得到对应的状态日志文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN201811088160.0A 2018-09-18 2018-09-18 日志数据处理方法、装置、计算机设备和存储介质 Active CN109446173B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811088160.0A CN109446173B (zh) 2018-09-18 2018-09-18 日志数据处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811088160.0A CN109446173B (zh) 2018-09-18 2018-09-18 日志数据处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN109446173A CN109446173A (zh) 2019-03-08
CN109446173B true CN109446173B (zh) 2023-05-16

Family

ID=65530589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811088160.0A Active CN109446173B (zh) 2018-09-18 2018-09-18 日志数据处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN109446173B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110266775A (zh) * 2019-06-04 2019-09-20 南京南瑞继保电气有限公司 文件传输方法、装置、计算机设备及存储介质
CN110362540B (zh) * 2019-07-23 2022-03-01 秒针信息技术有限公司 一种数据存储、访客数获取方法及装置
CN110505238B (zh) * 2019-09-06 2022-01-21 杭州安恒信息技术股份有限公司 基于edr的消息队列的处理装置和方法
CN110716908A (zh) * 2019-09-29 2020-01-21 捷开通讯(深圳)有限公司 日志信息写入方法、系统、存储介质及移动终端
CN110765232B (zh) * 2019-10-11 2023-03-21 深圳平安医疗健康科技服务有限公司 数据处理方法、装置、计算机设备和存储介质
CN110928663A (zh) * 2019-12-02 2020-03-27 中国银行股份有限公司 一种跨平台多线程监控方法及装置
CN111121683A (zh) * 2019-12-05 2020-05-08 山西裕鼎精密科技有限公司 数据处理装置、方法及计算机存储介质
CN111124830B (zh) * 2019-12-24 2024-01-19 个体化细胞治疗技术国家地方联合工程实验室(深圳) 一种微服务的监控方法及装置
CN111310224B (zh) * 2020-01-16 2023-06-02 深圳平安医疗健康科技服务有限公司 日志脱敏方法、装置、计算机设备及计算机可读存储介质
CN112269719B (zh) * 2020-09-16 2022-12-02 苏州浪潮智能科技有限公司 基于ai训练平台的文件操作队列控制方法、装置及介质
CN112162833B (zh) * 2020-09-24 2022-11-15 苏宁云计算有限公司 一种事务日志的处理方法、装置及系统
CN111966950B (zh) * 2020-10-21 2021-01-15 北京每日优鲜电子商务有限公司 日志发送方法、装置、电子设备和计算机可读介质
CN112231290A (zh) * 2020-11-03 2021-01-15 上海智臻智能网络科技股份有限公司 一种本地日志的处理方法、装置、设备及存储介质
CN112559333B (zh) * 2020-12-10 2022-05-20 武汉联影医疗科技有限公司 日志生产方法、装置、计算机设备和存储介质
CN112559476B (zh) * 2020-12-16 2023-07-21 中国平安人寿保险股份有限公司 一种用于提高目标系统性能的日志存储方法及其相关设备
CN115114247A (zh) * 2022-05-30 2022-09-27 中银金融科技有限公司 文件数据处理方法及装置
CN117555874B (zh) * 2024-01-11 2024-03-29 成都大成均图科技有限公司 一种分布式数据库的日志存储方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015049552A (ja) * 2013-08-30 2015-03-16 日本電気株式会社 情報処理装置、ログ処理方法、及びプログラム
CN105224444A (zh) * 2015-10-14 2016-01-06 深圳市金证科技股份有限公司 日志生成方法及装置
CN106126730A (zh) * 2016-07-01 2016-11-16 百势软件(北京)有限公司 一种批量生成告警信息的方法及装置
CN107391762A (zh) * 2017-08-28 2017-11-24 京信通信系统(中国)有限公司 日志数据的处理方法及装置
CN108319543A (zh) * 2018-01-24 2018-07-24 广州江南科友科技股份有限公司 一种计算机日志数据的异步处理方法及其介质、系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721765B2 (en) * 2002-07-02 2004-04-13 Sybase, Inc. Database system with improved methods for asynchronous logging of transactions
US10275281B2 (en) * 2016-09-30 2019-04-30 Salesforce.Com, Inc. Scheduling jobs for processing log files using a database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015049552A (ja) * 2013-08-30 2015-03-16 日本電気株式会社 情報処理装置、ログ処理方法、及びプログラム
CN105224444A (zh) * 2015-10-14 2016-01-06 深圳市金证科技股份有限公司 日志生成方法及装置
CN106126730A (zh) * 2016-07-01 2016-11-16 百势软件(北京)有限公司 一种批量生成告警信息的方法及装置
CN107391762A (zh) * 2017-08-28 2017-11-24 京信通信系统(中国)有限公司 日志数据的处理方法及装置
CN108319543A (zh) * 2018-01-24 2018-07-24 广州江南科友科技股份有限公司 一种计算机日志数据的异步处理方法及其介质、系统

Also Published As

Publication number Publication date
CN109446173A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN109446173B (zh) 日志数据处理方法、装置、计算机设备和存储介质
CN110351357B (zh) 服务器限流方法、装置、计算机设备以及存储介质
CN110209652B (zh) 数据表迁移方法、装置、计算机设备和存储介质
CN111143163B (zh) 数据监控方法、装置、计算机设备和存储介质
CN111191079B (zh) 一种文档内容获取方法、装置、设备及存储介质
CN109032527B (zh) 数据处理方法、存储介质及计算机设备
CN109325058B (zh) 规则批量比对方法、装置、计算机设备和存储介质
CN109902272A (zh) 电子表格数据处理方法、装置、计算机设备和存储介质
US20220005004A1 (en) Method and device for blockchain transaction tracing
CN110275703B (zh) 键值对数据的赋值方法、装置、计算机设备和存储介质
CN111625342A (zh) 一种数据溯源方法、装置及服务器
CN107766512B (zh) 一种日志数据存储方法和日志数据存储系统
CN113268328A (zh) 批处理方法、装置、计算机设备和存储介质
CN110442439B (zh) 任务进程处理方法、装置和计算机设备
CN112528832A (zh) 对pdf格式的继电保护定值单进行处理的方法和系统
CN112948504A (zh) 数据采集方法、装置、计算机设备和存储介质
CN112328325A (zh) 模型文件的执行方法、装置、终端设备及存储介质
CN111522873B (zh) 区块生成方法、装置、计算机设备和存储介质
CN109656948B (zh) 位图数据处理方法、装置、计算机设备和存储介质
CN112463791A (zh) 核电站文档数据获取方法、装置、计算机设备及存储介质
CN112732819A (zh) 基于etl的数据处理方法、装置、设备和存储介质
CN110874416B (zh) 一种图像特征值存储方法、装置和电子设备
CN113761043A (zh) 数据提取方法、装置、计算机设备和存储介质
CN109284260B (zh) 大数据文件读取方法、装置、计算机设备及存储介质
CN111859036B (zh) 短信数据的检测方法、装置、计算机设备及存储介质

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