计算;推算;计数设备的制造及其应用技术1.本说明书中实施方式关于计算机应用技术领域,具体地说,涉及计算机应用技术领域下的日志压缩技术,更具体地说,涉及一种日志压缩方法、日志搜索方法及相关装置。背景技术:2.日志(log)是用于记录系统或应用操作事件的文件。日志对于处理历史数据、定位问题以及理解系统的活动等具有重要作用。在网络设备、系统及服务程序等运行过程中都会产生一个叫日志的事件记录,日志的一行数据可以记载有日期、时间、使用者及动作等相关操作的描述。因此,有必要将日志进行存储,以满足必要时的日志查看的需求。3.传统技术中,通常是直接将原始日志进行存储或传输。然而日志的数量通常是比较庞大的,直接将原始日志进行存储或传输的方式所需的内存和网络传输资源较多,有必要对日志进行压缩后存储或传输。目前的日志压缩方法的日志压缩率较低,会增加存储和传输压力。技术实现要素:4.本说明书中多个实施方式提供一种日志压缩方法、日志搜索方法及相关装置,以解决相关技术中日志压缩率低的问题。5.第一方面,本说明书的一个实施方式提供一种日志压缩方法,包括:6.获取多个待压缩日志;7.利用第一日志模板对多个所述待压缩日志进行第一次压缩,以获得多个第一压缩日志;所述第一日志模板包括与字符串对应的字符串标识;所述第一日志模板存储于模板库中;8.针对所述多个所述第一压缩日志中的重复字符串生成第一日志模板;所述重复字符串包括存在于多个所述第一压缩日志中的相同字符串;9.基于生成的第一日志模板对所述第一压缩日志进行第二次压缩,以获得压缩日志。10.第二方面,本说明书的一个实施方式提供了一种日志压缩装置,包括:11.日志获取模块,用于获取多个待压缩日志;12.第一压缩模块,用于利用第一日志模板对多个所述待压缩日志进行第一次压缩,以获得多个第一压缩日志;所述第一日志模板包括与字符串对应的字符串标识;所述第一日志模板存储于模板库中;13.模板生成模块,用于针对所述多个所述第一压缩日志中的重复字符串生成第一日志模板;所述重复字符串包括存在于多个所述第一压缩日志中的相同字符串;14.第二压缩模块,用于基于生成的第一日志模板对所述第一压缩日志进行第二次压缩,以获得压缩日志。15.第三方面,本说明书的一个实施方式提供了一种日志搜索方法,包括:16.响应于查询指令,在所述压缩日志中确定与所述查询指令对应的日志内容;17.将确定的所述日志内容作为响应结果返回给所述查询指令的请求方;18.所述查询指令包括全文查询指令,所述全文查询指令包括查询字符串;19.预先建立有倒排索引,所述倒排索引包括第一索引和第二索引,所述第一索引用于表征日志中单词与第一日志模板标识的对应关系;所述第二索引用于表征日志中单词与日志内容所在行标识的对应关系;所述日志内容所在行标识为表征一行日志内容所在行的定位标识20.所述响应于查询指令,在所述压缩日志中确定与所述查询指令对应的日志内容:21.若所述查询指令包括所述全文查询指令,则基于所述第一索引,将所述查询字符串中的单词替换为所述第一日志模板标识,以获得预处理字符串;22.基于所述第二索引,查询所述压缩日志,获得与所述预处理字符串对应的至少一个日志内容所在行标识;23.根据获得的所述日志内容所在行标识,在与所述日志内容所在行标识对应的压缩日志中确定目标行内容;24.根据所述第一日志模板,将所述目标行内容中的第一日志模板还原为所述第一日志模板标识对应的单词,以获得与所述查询指令对应的日志内容。25.第四方面,本说明书的一个实施方式提供了一种电子设备,包括:处理器和存储器;26.其中,所述存储器与所述处理器连接,所述存储器用于存储计算机程序;27.所述处理器,用于通过运行所述存储器中存储的计算机程序,实现如上述的日志压缩方法或如上述的日志搜索方法。28.第五方面,本说明书的一个实施方式提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述的日志压缩方法或如上述的日志搜索方法。29.第六方面,本说明书的一个实施方式提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令时实现如上述的日志压缩方法或如上述的日志搜索方法的步骤。30.本说明书提供的多个实施方式,通过利用模板库中的第一日志模板对待压缩日志进行第一次压缩后,若多个所述第一日志模板中仍存在重复字符串,则基于所述重复字符串生成第一日志模板,更新所述模板库,并基于生成的第一日志模板对所述第一压缩日志进行第二次压缩,以获得压缩日志的方式,解决了由于模板库中已有的第一日志模板不能很好地匹配待压缩日志,而导致的日志压缩率低的问题。附图说明31.图1为本说明书的一个实施方式提供的日志压缩方法和日志搜索方法可能适用的应用场景的示意图;32.图2为本说明书的一个实施方式提供的一种日志压缩方法的流程示意图;33.图3为本说明书的一个实施方式提供的一种日志压缩方法的执行过程示意图;34.图4为本说明书的一个实施方式提供的另一种日志压缩方法的流程示意图;35.图5为本说明书的一个实施方式提供的一种基于滑动窗口对待压缩日志内容进行滑动分割的过程示意图;36.图6为本说明书的一个实施方式提供的一种日志搜索方法的流程示意图;37.图7为本说明书的一个实施方式提供的一种日志压缩装置的结构示意图;38.图8为本说明书的一个实施方式提供的一种电子设备的结构示意图。具体实施方式39.除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本说明书所属领域内具有一般技能的人士所理解的通常意义。本说明书实施例使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来避免构成要素的混同而设置的。40.除非上下文另有要求,否则,在整个说明书中,“多个”表示“至少两个”,“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例”、“一些实施例”、“示例性实施例”、“示例”、“特定示例”或“一些示例”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本说明书的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。41.下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。42.概述43.如背景技术中所述,网络设备、系统及服务程序等,在运作时都会产生一个叫日志的事件记录,一行日志数据可以记载着日期、时间、使用者及动作等相关操作的描述。通过产生的日志,我们可以追溯错误发生的源头,分析错误发生的原因等等。在一台计算机中,操作系统每天都会产生各种各样的日志文件,如应用程序日志、安全日志、系统日志、dns(domain name system,域名系统)服务器日志等等,那么在由多台计算机、网络设备等组成的大数据平台或数据中心等设备集群中,每时每份都会产生海量的日志。海量的日志会占据大量的存储空间,造成成本浪费,因此有必要对海量的日志进行高效地压缩存储。44.相关技术中,日志压缩的方法大多是基于模板的压缩,即根据存储的字符串与编码元素的对应关系,将日志中与编码元素对应的字符串以长度较短的编码元素进行替换,从而减少日志占据的存储空间,实现日志的压缩。但这种方式存在的缺陷是:当出现新的日志格式时,既有的模板(如编码元素)不能适应新的日志格式,导致日志的去重效果不好,日志的压缩率较低。45.为了解决这一问题,发明人通过长期研究发现,可以对一段时间内产生的多个日志先基于已有模板库进行模板替换,以进行第一步压缩,之后提取第一步压缩后的多个日志的重复字段,生成新的模板,并基于新的模板进行第二步压缩,实现对模板库中已有模板无法匹配的重复字段的提取,使得该日志压缩方法可以适用于新日志类型的压缩需求,提高了日志压缩的压缩率,使得压缩获得的日志占据的存储空间更小。46.进一步的,发明人通过研究进一步发现,现有的日志压缩方案均没有考虑到全文搜索的场景。全文搜索即通过输入一串字符,在日志中找到该串字符所在位置的功能。全文搜索功能已经成为如今应用日志搜索的刚性需求。发明人通过对于压缩后的日志内容建立倒排索引,并对日志模板建立倒排索引的方式,实现了根据输入字符串进行全文搜索的功能。47.基于上述构思,本说明书实施例提供了一种日志压缩方法和日志搜索方法,下面将结合附图对本说明书实施例提供的日志压缩方法可能适用的应用场景和可行的实施方式进行示例性的说明。48.场景示例49.参考图1,图1示出了日志压缩方法和日志搜索方法可能适用的应用场景,在该应用环境中,客户端12通过网络与服务器11进行通信。存储设备13可以集成在服务器11上,也可以放在云上或其他服务器上。服务器11可以单独用于执行本说明书实施例提供的日志压缩方法和/或日志搜索方法。例如,服务器11可以获取服务器11或客户端12产生的日志,根据本说明书实施例提供的日志压缩方法对日志进行压缩,并将压缩的日志存储于存储13中。服务器11也可以获取客户端12传输的查询指令,依据所述查询指令,执行本说明书实施例提供的日志搜索方法,从存储设备13存储的压缩日志中,获得搜索结果并返回给客户端12。50.上述的客户端12、服务器11和存储设备13可以共同构成一个大数据平台10。在一些实施方式中,上述的客户端12、服务器11和存储设备13可以共同构成智慧交通平台、政务服务平台等等,本说明书对本说明书实施例提供的日志压缩方法和日志搜索方法可能适用的应用场景并不做限定,具体视实际情况而定。51.上述的客户端12可以是台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、电视机、智能音箱、麦克风等。其中,智能可穿戴设备包括但不限于智能手环、智能手表、智能眼镜、智能头盔、智能项链等。或者,客户端12也可以为能够运行于所述电子设备中的软件。服务器11可以是具有一定运算处理能力的电子设备。其可以具有网络通信模块、处理器和存储器等。当然,所述服务器11也可以是指运行于所述电子设备中的软体。所述服务器11还可以为分布式服务器,可以是具有多个处理器、存储器、网络通信模块等协同运作的系统。或者,服务器11还可以为若干服务器形成的服务器集群。或者,随着科学技术的发展,服务器11还可以是能够实现说明书实施方式相应功能的新的技术手段。例如,可以是基于量子计算实现的新形态的“服务器”。52.示例的方法53.本说明书的一个实施方式提供一种日志压缩方法。所述日志压缩方法可以应用于如图1所示的服务器11,如图2所示,所述日志压缩方法可以包括以下步骤:54.s201:获取多个待压缩日志。55.待压缩日志可以是指客户端或服务器生成的各类日志。在步骤s201中获得的多个待压缩日志可以是在最近一个时间窗口内生成的日志,这些待压缩日志可以先进行缓存,以备后续压缩时读取,该时间窗口的长度可以是3分钟、5分钟、10分钟等等,一般情况下该时间窗口的大小可以与服务器的缓存能力确定,本说明书对所述时间窗口的具体取值并不做限定。56.s202:利用第一日志模板对多个所述待压缩日志进行第一次压缩,以获得多个第一压缩日志;所述第一日志模板包括与字符串对应的字符串标识;所述第一日志模板存储于模板库中。57.模板库可以是服务器中存储的包括多个第一日志模板的数据库。第一日志模板可以包括用于替代特定字符串的模板(该模板具体可以是字符串标识),待压缩日志中可能包括大量重复的字符串,可以利用较为简短的第一日志模板来替换这些重复的字符串。举例来说,同一天产生的待压缩日志中可能均包括相同的日期字符(例如2023-03-16),对于这些日期字符,可以利用一个统一的模板(例如${1})来替换以达到压缩日志字符数,减少日志所占内存大小的目的,在该例子中,字符串标识${1}对应字符串2023-03-16,如此在其他的待压缩日志中,也可以用字符串标识${1}替换待压缩日志中的字符串2023-03-16。58.s203:针对所述多个所述第一压缩日志中的重复字符串生成第一日志模板;所述重复字符串包括存在于多个所述第一压缩日志中的相同字符串。59.在利用模板库中的第一日志模板对待压缩日志进行第一次压缩之后,可以对多个所述第一压缩日志进行重复字符串的提取,并基于提取的重复字符串生成新的第一日志模板,如此,可以使新的第一日志模板与第一次压缩中未被压缩的重复字符串对应,为利用新生成的第一日志模板进行第二次压缩奠定基础。60.举例来说,假设待压缩日志中包括一行日志数据:“2023-02-03 20:32[netty-worker-pool-28]info host 10.10.0.1has sent 40bytes message to host 10.20.0.1”。在进行步骤s203之前,模板库中的第一日志模板可以包括:“${1}”和“${2}”,其中“${1}”对应字符串“2023-02-03”,“${2}”对应字符串“[netty-worker-pool-28]info host 10.10.0.1has sent”。那么在进行第一次日志压缩后,该行日志数据被压缩为“${1}20:32${2}40bytes message to host10.20.0.1”。但经过与其他第一压缩日志中重复字符串的比较发现,“bytes message to host”同样存在于多个第一压缩日志中。因此,可以生成新的第一日志模板:“${3}”对应字符串“bytes message to host”。[0061]在一个实施方式中,存在于多个所述第一压缩日志中的相同字符串是否可以作为重复字符串进行第一日志模板的生成,需要取决于第一日志模板的生成规则。举例来说,若上述例子中的一行日志数据中的字符串“20:32”同时存在于n个第一压缩日志中,当n大于设定的阈值时,才基于该字符串生成新的第一日志模板。当n小于或等于设定的阈值时,则不基于该字符串生成新的第一日志模板。[0062]当然地,除了以字符串同时存在与第一压缩日志的数量为决定是否生成第一日志模板的因素之外,也可以根据字符串中的字符数、字符串同时存在于第一压缩日志的数量等因素设定权重,根据各类因素的加权结果决定是否生成第一日志模板。本说明书对此并不做限定,具体视实际情况而定。[0063]s204:基于生成的第一日志模板对所述第一压缩日志进行第二次压缩,以获得压缩日志。[0064]在本实施例中,当生成了新的第一日志模板后,根据生成的第一日志模板对第一压缩日志进行第二次压缩,可以提高最终获得的压缩日志的压缩率,解决了传统的日志压缩方法对于新的日志格式的压缩率低的问题。[0065]仍然以上述例子来说,如图3所示,当生成了新的第一日志模板:“${3}”对应字符串“bytes message to host”后,可以根据新的的第一日志模板对上述压缩后的第一压缩日志中的数据“${1}20:32${2}40bytes message to host 10.20.0.1”进行第二次压缩,最终该行数据可以以如下方式存储“${1}20:32${2}40${3}10.20.0.1”,如此,可以解决模板库中既有的第一日志模板对于新的日志格式中的重复字符串无法适配的问题,实现对第一压缩日志中的重复字符串的二次压缩,解决了上述压缩率低的问题。[0066]在一些实施方式中,在步骤s203中生成的第一日志模板可以存储于模板库中,以提高模板库对于各类待压缩日志的适配性,提高步骤s202中进行第一次压缩时对于待压缩日志的压缩率,也避免了在步骤s203中重复生成第一日志模板的情况,提高了方法的执行效率。[0067]仍然以上述的例子来说,当步骤s203中生成了新的第一日志模板:“${3}”对应字符串“bytes message to host”后,可以将该第一日志模板存储于模板库中,如此,在后续遇到例如“2023-02-03 20:35[netty-worker-pool-28]info host 10.10.0.1has sent 80bytes message to host 10.20.0.2”的一行数据后,经过步骤s202的第一次压缩即可获得如下的压缩结果:“${1}20:35${2}80${3}10.20.0.2”,不用在步骤s203中重复生成上述模板,从而提升方法的执行效率。[0068]为了提高第一日志模板的生成规则对于日志压缩场景下的适用性,在本说明书的一个实施方式中,所述针对所述多个所述第一压缩日志中的重复字符串生成第一日志模板包括:[0069]将多个所述第一压缩日志的日志内容分词,以将所述第一压缩日志的日志内容划分为多个字符串;[0070]利用局部匹配算法,提取分词后的多个所述第一压缩日志中的重复字符串,在所述局部匹配算法的罚分规则中,匹配字符串的权重与所述匹配字符串的长度正相关;所述匹配字符串包括存在于至少两个所述第一压缩日志中的相同字符串;[0071]根据所述重复字符串,生成第一日志模板。[0072]局部匹配算法是序列比对算法中的一种,与全局比对算法(例如needleman-wunsch算法(尼德曼-翁施算法))不同的是:局部匹配算法是一种进行局部比对的算法,当应用于日志压缩领域时,局部匹配算法用于找出两个或多个日志之间的重复字符串。常用的局部匹配算法可以包括:smith-waterman algorithm(史密斯-沃特曼算法)。[0073]在本实施方式中,对于传统的局部匹配算法进行了优化,使得局部匹配算法可以更加适用于本方案中的字符串的匹配,字符串的长度越长,将其作为模板进行压缩的收益越高,例如前文所举出的例子,将“[netty-worker-pool-28]info host 10.10.0.1has sent”利用第一日志模板进行压缩的收益是明显高于将“has”利用第一日志模板进行压缩的收益的。如果将“has”利用第一日志模板进行压缩,可能获得压缩收益非常小,但会消耗一定的计算资源执行压缩的步骤。[0074]因此,在本实施方式中,在所述局部匹配算法的罚分规则中,将匹配字符串的权重与所述匹配字符串的长度设定为正相关,具体地,在本说明书的一个实施方式中,匹配字符串的权重可以等于所述匹配字符串的长度。如此,基于本说明书实施方式提供的第一日志模板的生成方式生成的第一日志模板,倾向于基于较长的字符串生成第一日志模板,而倾向于将较短的字符串放弃,提高日志压缩效率。[0075]为了避免较少单词数量的重复字符串被生成为第一日志模板,在本说明书的一个实施方式中,所述根据所述重复字符串,生成第一日志模板包括:[0076]若所述重复字符串中的单词数量大于n,则将所述重复字符串划分为多个子字符串,所述子字符串中的单词数量小于或等于n;n为大于1的整数;[0077]在所述子字符串中的字符数大于预设字符数阈值时,建立子字符串与字符串标识的对应关系,以生成第一日志模板。[0078]在本实施例中,除了在局部匹配算法中引入匹配字符串的权重与所述匹配字符串的长度正相关的限制之外,在最终生成第一日志模板时,还设定了预设字符数阈值,避免了较少字符串的重复字符串被生成为第一日志模板的情况,提高了压缩日志时的压缩收益。[0079]为了满足对于压缩日志的搜索需求,在本说明书的一个实施方式中,参考图4,所述日志压缩方法还包括:[0080]s401:响应于查询指令,在所述压缩日志中确定与所述查询指令对应的日志内容;[0081]s402:将确定的所述日志内容作为响应结果返回给所述查询指令的请求方。[0082]在本实施方式中,建立对于查询指令的响应机制,满足对于查询指令的日志内容搜索需求,满足了用户对于压缩日志的搜索需求。[0083]对于压缩日志的搜索(查询)可以分为直接搜索和全文搜索,在本说明书的一个实施方式中,提供了一种直接搜索的可行实现方式,所述查询指令包括直接查询指令,所述直接查询指令包括日志内容所在行标识;所述日志内容所在行标识为表征一行日志内容所在行的定位标识;[0084]所述响应于查询指令,在所述压缩日志中确定与所述查询指令对应的日志内容:[0085]若所述查询指令包括所述直接查询指令,则根据所述日志内容所在行标识,在与所述日志内容所在行标识对应的压缩日志中确定目标行内容;[0086]根据所述第一日志模板,将所述目标行内容中的第一日志模板还原为与所述第一日志模板标识对应的单词,以获得与所述查询指令对应的日志内容。[0087]在直接搜索时,假设直接查询指令包括的日志内容所在行标识指向的一行日志内容为:“${1}host 10.10.0.1${2}40${3}10.20.0.1”,其中的第一日志模板包括:[0088]${1}-》2023-02-03 20:32[netty-worker-pool-28]info;[0089]${2}-》has sent;[0090]${3}-》bytes message to host。[0091]在根据直接查询指令找到上述的一行日志内容后,根据上述的第一日志模板将该行日志内容还原为对应的单词,获得“2023-02-03 20:32[netty-worker-pool-28]info host10.10.0.1has sent 40bytes message to host 10.20.0.1”。[0092]关于全文查询的实现方式,在本说明书的一个实施方式中,所述查询指令包括全文查询指令,所述全文查询指令包括查询字符串;[0093]预先建立有倒排索引,所述倒排索引包括第一索引和第二索引,所述第一索引用于表征日志中单词与第一日志模板标识的对应关系;所述第二索引用于表征日志中单词与日志内容所在行标识的对应关系;所述日志内容所在行标识为表征一行日志内容所在行的定位标识;[0094]所述响应于查询指令,在所述压缩日志中确定与所述查询指令对应的日志内容:[0095]若所述查询指令包括所述全文查询指令,则基于所述第一索引,将所述查询字符串中的单词替换为所述第一日志模板标识,以获得预处理字符串;[0096]基于所述第二索引,查询所述压缩日志,获得与所述预处理字符串对应的至少一个日志内容所在行标识;[0097]根据获得的所述日志内容所在行标识,在与所述日志内容所在行标识对应的压缩日志中确定目标行内容;[0098]根据所述第一日志模板,将所述目标行内容中的第一日志模板还原为所述第一日志模板标识对应的单词,以获得与所述查询指令对应的日志内容。[0099]举例来说,在第一日志模板生成时,可以将第一日志模板的内容分词并创建倒排索引,比如以第一日志模板:“${3}-》bytes message to host”为例(“‑》”表示对应),假设该模板的第一日志模板标识为${3},则会建立以下第一索引:[0100]bytes-》${3};[0101]message-》${3};[0102]to-》${3};[0103]host-》${3}。[0104]不难理解的是,第一索引可以称为模板内容索引,用于表示单词所在的模板。[0105]在压缩日志存储时,可以建立第二索引,以日志内容“${1}20:32${2}40${3}10.20.0.1”为例,假设该行日志内容的日志内容所在行标识为1,则会创建以下第二索引:[0106]${1}-》1;[0107]20:32-》1;[0108]${2}-》1;[0109]40-》1;[0110]${3}-》1;[0111]10.20.0.1-》1。[0112]通过上述例子不难理解,第二索引用于表示日志中的内容在日志中的哪一行。[0113]在全文搜索过程中,假设用户输入的全文查询指令包括的查询字符串为“info and bytes and 10.20.0.1”,通过基于所述第一索引,将所述查询字符串中的单词替换为所述第一日志模板标识,以获得预处理字符串。通过第一索引可以发现,单词“info”和“bytes”分别存在于第一日志模板${1}和${3}的对应字符串中,则将查询字符串中的这两个单词替换为对应的第一日志模板,获得预处理字符串:${1}and${3}and 10.20.0.1。通过第二索引,发现预处理字符串对应的至少一个日志内容所在行标识,根据该日志内容所在行标识,在与所述日志内容所在行标识对应的压缩日志中确定目标行内容,假设目标行内容为:${1}host 10.10.0.1${2}40${3}10.20.0.1。最后,将目标行内容的第一日志模板还原为与其对应的字符串,获得与所述查询指令对应的日志内容为“2023-02-03 20:32[netty-worker-pool-28]info host 10.10.0.1has sent 40bytes message to host 10.20.0.1”,从而实现全文搜索。[0114]基于上述方式实现的对于压缩日志的全文搜索和直接搜索功能,具有实施简便的特点,有利于提高搜索响应效率。[0115]发明人通过研究日志的构成发现,在日志中,通常包括大量的,用于表征代码中方法执行顺序信息的堆栈输出内容(也可称为trace信息),这些内容通常较为庞大,且格式、内容较为统一,如果采用上述的模板替换方案进行压缩,可能导致该部分内容压缩时消耗较多算力的问题。[0116]为了解决这一问题,在本说明书的一个实施方式中,所述模板库还包括:第二日志模板,所述第二日志模板包括与堆栈输出内容对应的堆栈标识;所述堆栈输出内容用于表征代码中方法执行顺序的信息;[0117]所述利用第一日志模板对多个所述待压缩日志进行第一次压缩之前,还包括:[0118]s501:基于预设的正则表达式,确定所述待压缩日志中的堆栈输出内容;[0119]s502:若存在所述第二日志模板包括与从所述待压缩日志中确定的堆栈输出内容对应的堆栈标识,则利用所述堆栈标识替换所述待压缩日志中的堆栈输出内容;[0120]s503:若不存在所述第二日志模板包括与从所述待压缩日志中确定的堆栈输出内容对应的堆栈标识,则为确定的所述堆栈输出内容对应新的堆栈标识,并根据确定的所述堆栈输出内容与堆栈标识,生成新的第二日志模板,基于生成的第二日志模板,将所述待压缩日志中的堆栈输出内容替换为对应的堆栈标识。[0121]在本实施方式中,通过预设的正则表达式确定所述待压缩日志中的堆栈输出内容,具有简便、易行,且消耗算力低的特点。此外,在步骤s503中,当确定的堆栈输出内容没有第二日志模板相对应时,则为确定的所述堆栈输出内容对应新的堆栈标识并进行压缩,并根据确定的所述堆栈输出内容与堆栈标识,生成新的第二日志模板。如此,可以对于新的堆栈输出内容也对应第二日志模板进行压缩,提高了日志压缩方法对于新的日志格式与内容的适应性,提高了该日志压缩方法的日志压缩率。[0122]与新生成的第一日志模板类似的,生成的新的第二日志模板也可以存储到模板库中,为后续相同的待压缩日志的堆栈输出内容提供可用的第二日志模板。[0123]为了提高压缩效率,在本说明书的一个实施方式中,提供了一种可行的压缩方法,可选地,所述第一日志模板包括的单词数量小于或等于n;n为大于1的整数;[0124]对所述待压缩日志进行压缩的方法包括:[0125]以n个单词为窗口,对所述待压缩日志进行滑动分割,以将所述待压缩日志的日志内容划分为多个字符串,所述字符串中的单词数小于或等于n;[0126]利用所述第一日志模板分别与所述待压缩日志中的多个字符串匹配,并利用所述第一日志模板替换与所述第一日志目标相匹配的所述待压缩日志中的字符串。[0127]在本实施方式中,如图5所示,假设待压缩日志内容为“2023-02-03 20:32[netty-worker-pool-28]info host 10.10.0.1has sent 40bytes message to host 10.20.0.1”,第一日志模板为:${1}-》2023-02-03 20:32[netty-worker-pool-28]info。n的取值为3,即第一日志模板中的单词数量小于或等于3。[0128]以n个单词为窗口,对所述待压缩日志进行滑动分割后,获得如下十二个字符串:[0129]1:2023-02-03 20:32[netty-worker-pool-28];[0130]2:20:32[netty-worker-pool-28]info;[0131]3:[netty-worker-pool-28]info host;[0132]4:info host 10.10.0.1;[0133]5:host 10.10.0.1has;[0134]6:10.10.0.1has sent;[0135]7:has sent 40;[0136]8:sent 40bytes;[0137]9:40bytes message;[0138]10:bytes message to;[0139]11:message to host;[0140]12:to host 10.20.0.1。[0141]利用所述第一日志模板分别与所述待压缩日志中的多个字符串匹配,发现第一日志模板为:${1}与第十一个字符串匹配,因此,利用所述第一日志模板替换与所述第一日志目标相匹配的所述待压缩日志中的字符串后,获得的结果如下:2023-02-03 20:32[netty-worker-pool-28]info host 10.10.0.1has sent 40bytes${1}10.20.0.1。[0142]通过上述方式对待压缩日志进行压缩,可以有效提高第一日志模板与待压缩日志中对应字符串的匹配准确度。[0143]为了提高日志压缩效率,在本说明书的一个实施方式中,所述利用所述第一日志模板分别与所述待压缩日志中的多个字符串匹配包括:[0144]以并行方式执行利用所述第一日志模板分别与所述待压缩日志中的多个字符串匹配的步骤。[0145]由于模板库中的第一日志模板的数量通常为多个,且每次第一日志模板与待压缩日志的匹配都独立,因此可以将每次的匹配过程作为一个独立执行单位并行执行。并行方式执行的方式包括但不限于:多线程执行、多进程执行、基于大数据服务执行等。[0146]基于相同的构思,本说明书实施方式还提供了一种日志搜索方法,如图6所示,包括:[0147]s601:响应于查询指令,在所述压缩日志中确定与所述查询指令对应的日志内容;[0148]s602:将确定的所述日志内容作为响应结果返回给所述查询指令的请求方;[0149]所述查询指令包括全文查询指令,所述全文查询指令包括查询字符串;[0150]预先建立有倒排索引,所述倒排索引包括第一索引和第二索引,所述第一索引用于表征日志中单词与第一日志模板标识的对应关系;所述第二索引用于表征日志中单词与日志内容所在行标识的对应关系;所述日志内容所在行标识为表征一行日志内容所在行的定位标识;[0151]步骤s601包括:[0152]若所述查询指令包括所述全文查询指令,则基于所述第一索引,将所述查询字符串中的单词替换为所述第一日志模板标识,以获得预处理字符串;[0153]基于所述第二索引,查询所述压缩日志,获得与所述预处理字符串对应的至少一个日志内容所在行标识;[0154]根据获得的所述日志内容所在行标识,在与所述日志内容所在行标识对应的压缩日志中确定目标行内容;[0155]根据所述第一日志模板,将所述目标行内容中的第一日志模板还原为所述第一日志模板标识对应的单词,以获得与所述查询指令对应的日志内容。[0156]关于压缩日志的具体获取过程可参考上文描述的日志压缩方法中的相关限定。关于各个步骤的具体可行执行过程和有益效果可参考上文中的相关描述,本说明书在此不做赘述。[0157]示例的装置、电子设备、存储介质和软件[0158]本说明书的一个实施方式还提供一种日志压缩装置,如图7所示,所述日志压缩装置可以包括:[0159]日志获取模块701,用于获取多个待压缩日志;[0160]第一压缩模块702,用于利用第一日志模板对多个所述待压缩日志进行第一次压缩,以获得多个第一压缩日志;所述第一日志模板包括与字符串对应的字符串标识;所述第一日志模板存储于模板库中;[0161]模板生成模块703,用于针对所述多个所述第一压缩日志中的重复字符串生成第一日志模板;所述重复字符串包括存在于多个所述第一压缩日志中的相同字符串;[0162]第二压缩模块704,用于基于生成的第一日志模板对所述第一压缩日志进行第二次压缩,以获得压缩日志。[0163]本实施例提供的计算资源的管理装置,与本说明书上述实施例所提供的日志压缩方法或日志搜索方法属于同一申请构思,可执行本说明书上述任意实施例所提供的日志压缩方法或日志搜索方法,具备执行该日志压缩方法或日志搜索方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本说明书上述实施例提供的日志压缩方法或日志搜索方法的具体处理内容,此处不再加以赘述。[0164]本说明书另一实施例还提出一种计算设备,参见图8所示,本说明书的一个示例性实施例还提供了一种计算设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时执行本说明书上述实施例中描述的根据本说明书各种实施例的日志压缩方法或日志搜索方法中的步骤。[0165]该计算设备的内部结构可以如图8所示,该计算设备包括通过系统总线连接的处理器、存储器、网络接口和输入装置。其中,该计算设备的处理器用于提供计算和控制能力。该中控设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以本说明书上述实施例中描述的根据本说明书各种实施例的日志压缩方法或日志搜索方法中的步骤。[0166]处理器可包括主处理器,还可包括基带芯片、调制解调器等。[0167]存储器中保存有执行本发明技术方案的计算机程序,还可以保存有操作系统和其他关键程序。具体地,计算机程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器可以包括只读存储器(read-only memory,rom)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,ram)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。[0168]处理器可以是通用处理器,例如通用处理器(cpu)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。[0169]输入设备可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。[0170]输出设备可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。[0171]通信接口可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wlan)等。[0172]处理器执行存储器中所存放的计算机程序,以及调用其他设备,可用于实现本技术上述实施例所提供的任意一种日志压缩方法或日志搜索方法的各个步骤。[0173]该计算设备还可以包括显示组件和语音组件,该显示组件可以是液晶显示屏或者电子墨水显示屏,该计算设备的输入装置可以是显示组件上覆盖的触摸层,也可以是计算设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。[0174]本领域技术人员可以理解,图8中示出的结构,仅仅是与本说明书方案相关的部分结构的框图,并不构成对本说明书方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0175]除了上述方法和设备以外,本说明书实施例提供的日志压缩方法或日志搜索方法还可以是计算机程序产品,其包括计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的日志压缩方法或日志搜索方法中的步骤。[0176]所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。[0177]此外,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行本说明书上述“示例的方法”部分中描述的根据本说明书各种实施例的日志压缩方法或日志搜索方法中的步骤。[0178]需要说明的是,本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。[0179]可以理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本说明书实施方式,而非限制本说明书的范围。[0180]可以理解,在本说明书中的各种实施方式中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施方式的实施过程构成任何限定。[0181]可以理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本说明书实施方式对此并不限定。[0182]除非另有说明,本说明书实施方式所使用的所有技术和科学术语与本说明书的技术领域的技术人员通常理解的含义相同。本说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本说明书的范围。本说明书所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本说明书实施方式和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。[0183]可以理解,本说明书实施方式的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施方式的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。[0184]可以理解,本说明书实施方式中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。[0185]本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。[0186]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。[0187]在本说明书所提供的几个实施方式中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0188]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。[0189]另外,在本说明书各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0190]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0191]以上所述,仅为本说明书的具体实施方式,但本说明书的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,本说明书的保护范围应所述以权利要求的保护范围为准。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
一种日志压缩方法、日志搜索方法及相关装置与流程 专利技术说明
作者:admin
2023-06-28 22:34:39
413
关键词:
计算;推算;计数设备的制造及其应用技术
专利技术