CN112559465A - 一种日志压缩方法、装置、电子设备及存储介质 - Google Patents

一种日志压缩方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112559465A
CN112559465A CN202011539773.9A CN202011539773A CN112559465A CN 112559465 A CN112559465 A CN 112559465A CN 202011539773 A CN202011539773 A CN 202011539773A CN 112559465 A CN112559465 A CN 112559465A
Authority
CN
China
Prior art keywords
log
variable
template
sample
compression
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.)
Pending
Application number
CN202011539773.9A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202011539773.9A priority Critical patent/CN112559465A/zh
Publication of CN112559465A publication Critical patent/CN112559465A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种日志压缩方法、装置、电子设备及存储介质,该方法包括:将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。能够有效提高日志的压缩率,同时压缩的时间开销较低。

Description

一种日志压缩方法、装置、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种日志压缩方法、装置、电子设备及存储介质。
背景技术
现代很多系统都会记录日志数据以完成错误诊断、用户行为建模、系统性能分析、潜在安全风险预警等功能。随着系统规模的扩大,相应的日志数据的规模也在迅速增长,在一些情况下,系统日志的规模甚至达每日PB量级。由于错误的出现具有隐蔽性和滞后性的特点(往往在异常发生数天甚至数周之后才会出现实际错误),程序员在完成错误诊断的过程中往往需要查阅很早以前的日志。同时,出于审计的需要,相关法律规定日志数据需要保存180天。所以,在每日产生PB量级规模的日志数据的前提下,长时间保存这些日志数据通常需要耗费较大规模的系统资源和成本开销。
为了降低存储成本,一个常用的思路便是针对这些日志进行压缩,通用的无损压缩方法比如lzma、gzip等都能够识别字节层级的冗余,但是并不能结合日志数据本身的特点(比如日志往往由结构化的语句输出,每一次输出时只有变量部分不同)来实现日志压缩。针对日志数据,有一些之前的工作会首先提取输出日志的结构化语句(本发明称之为日志模板),并针对日志模板和变量做分别处理。但是遗憾的是这样的一些方法,基本都是围绕用户系统或小规模系统日志而设计的,在大规模系统上并不适用。一方面,由于没有考虑到大规模系统日志的特点(变量众多,单条日志信息量巨大等),这些日志专用压缩方案的压缩率并不理想,在一些情况下,甚至比通用的方法还要差;另一方面,由于没有考虑到日志的PB级规模,这些方法的实现通常过于低效,无法满足实际的生产需求。
因此,如何更好的实现日志存储,已经成为业界亟待解决的问题。
发明内容
本发明提供一种日志压缩方法、装置、电子设备及存储介质,用以解决现有技术中不能有效实现日志压缩的问题。
本发明提供一种日志压缩方法,包括:
将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;
通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;
将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;
将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
根据本发明提供的一种日志压缩方法,在所述通过预训练前缀树对所述日志体进行匹配的步骤之前,所述方法还包括:
获取日志样本,将所述日志样本分为日志头样本和日志体样本;
根据所述日志体样本构建日志前缀树,并得到日志模板;
通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系。
根据本发明提供的一种日志压缩方法,根据所述日志体样本构建日志前缀树,并得到日志模板的步骤,具体包括:
根据所述日志体样本的日志长度,构建前缀树的内部节点;
其中,所述日志长度是指日志体样本按照预设分割符切分为不同的段之后,单条日志所包含的段的数目;
根据新的日志体样本的日志长度,确定所述日志长度内部节点对应的日志模板组;
将新的日志体样本与所述日志模板组进行相似度比较,在相似度小于预设阈值时,将所述新的日志体样本添加到日志模板组中,更新前缀树的叶节点。
根据本发明提供的一种日志压缩方法,通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系的步骤,具体包括:
根据所述每个日志模板的样本变量,通过枚举的方式,得到所述样本变量之间的典型数字关系;
所述典型数字关系,包括:变量类内关系、变量类间关系和混合关系;
计算每一种典型数字关系对应的残差变量,并计算每一个残差变量的熵值;
根据每一个残差变量的熵值,贪心地选择熵值尽可能低的残差变量,得到每个日志模板的变量关联关系。
根据本发明提供的一种日志压缩方法,所述通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量的步骤,具体包括:
按照预设分隔符将所述日志体分割为不同段,根据分割后所得段的数目确定所述日志体对应的日志模板组;
根据所述日志模板组对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量。
根据本发明提供的一种日志压缩方法,所述通过弹性编码的方式进行编码,得到编码结果的步骤,具体包括:
将数据中最高的符号位通过循环左移到最低位,得到第一中间数据;
然后将第一中间数据中的负数,将第一中间数据中的正数保持不变,将除最后一位的负数外的其他负数都翻转,得到第二中间数据;
将所述第二中间数据的所有比特,切分为7个比特一组的小段,对于每一个小段添加0或者1的标志来标识当前段是否为最后一段,得到第三中间数据;
将第三中间数据中所有前导全0的段统一删去,得到编码结果。
根据本发明提供的一种日志压缩方法,根据所述编码结果得到日志压缩结果的步骤,具体包括:
将所述日志头中的除时间外的其它数据和所述编码结果进行打包处理,得到日志压缩结果。
基于本发明提供的一种日志压缩装置,包括:切分模块,用于将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;
匹配模块,用于通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;
分析模块,用于将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;
压缩模块,用于将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述日志压缩方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述日志压缩方法的步骤。
本发明提供的一种日志压缩方法、装置、电子设备及存储介质,通过基于前缀树的日志模板提取工具提取得到日志模板,同时挖掘得到各模板对应的变量之间潜在的关联关系,构建预设前缀树,然后基于预设前缀树,将利用日志模板提取获得每条日志对应的模板号和变量数值。采用基于关联关系的变换方法,将原始的数字变量变换成为对应的残差变量,采用基于差分的时间编码技术,采用基于弹性编码机制的数字变量编码方法,能够有效提高大规模系统日志的压缩率,同时压缩速度较高。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的日志压缩法的流程示意图;
图2为本发明提供的预训练前缀树示意图;
图3为本发明所描述的前缀树针对输入的日志样本进行分组处理示意图;
图4为本发明提供的弹性编码过程示意图;
图5为本发明提供的日志压缩装置;
图6为本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的日志压缩法的流程示意图,如图1所示,包括:
步骤S1,将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;
本发明中将日志文件区分为日志头和日志体来分别进行处理,针对于日志头中的时间数据计算上下的差分值,仅保留差分值而不保存原始数据,而针对日志头中除时间数据外的其它数据,暂不进行处理,将其暂时缓存,待后续打包时使用。
本发明中所描述的日志体将进一步根据预训练前缀树进行处理。
本发明中针对于时间变量采样技术可以有效降低时间数据所占空间,有效提升日志压缩效率。
步骤S2,通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;
图2为本发明提供的预训练前缀树示意图,图2所示,包含根节点、内部节点和叶子节点。第一层内部节点指示的是日志的长度,即日志按照特定的分隔符切分为不同的段之后单条日志所包含的段的数目,其他各层内部节点为日志的前缀段。叶子节点包含一个模板组,内部含有若干已有的日志模板。
在完成了前缀树的构建之后,本实施例将输入不同的日志,每一条日志将首先按照分隔符做切分,然后按照他包含的段的数量做分类,找到对应的模板组,然后在模板组内当前日志将会逐个模板进行匹配,看当前日志是否是该模板的一个实例,如果是,则匹配成功,如果找不到这样的模板,则匹配失败。
对于匹配成功的日志,则将得到它对应的日志模板编号并获得相应的各个变量。
步骤S3,将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;
具体的,本发明中在确定所述日志变量的残差变量后,仅仅保留残差变量用于后续日志压缩时的存储,可以有效减少存储的数据量,提升日志压缩的有效性和压缩速度。
步骤S4,将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
更具体的,根据所述编码结果得到日志压缩结果的步骤,具体包括:
将所述日志头中的除时间数据外的其它数据和所述编码结果进行打包处理,得到日志压缩结果。
本发明中所描述的打包处理的方式,是常用打包方式,本发明并不对此进行限定。
本发明在最后压缩时,需要重新将日志头和日志体经过处理后的所有文件均进行打包,因此本发明将所述日志头中的除时间数据外的其它数据和所述编码结果进行打包处理,得到最终的日志压缩结果。
本发明通过基于前缀树的日志模板提取工具提取得到日志模板,同时挖掘得到各模板对应的变量之间潜在的关联关系,构建预设前缀树,然后基于预设前缀树,将利用日志模板提取获得每条日志对应的模板号和变量数值。采用基于关联关系的变换方法,将原始的数字变量变换成为对应的残差变量,采用基于差分的时间编码技术,采用基于弹性编码机制的数字变量编码方法,能够有效提高大规模系统日志的压缩率,同时压缩速度较高。
基于上述任一实施例,在所述通过预训练前缀树对所述日志体进行匹配的步骤之前,所述方法还包括:
获取日志样本,将所述日志样本分为日志头样本和日志体样本;
根据所述日志体样本构建日志前缀树,并得到日志模板;
通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系。
具体的,图3为本发明所描述的前缀树针对输入的日志样本进行分组处理示意图,如图3所示,新输入的样本将被前缀树分派到某一个模板组,该日志样本将根据自己和模板组内其他日志模板的相似程度决定是要做模板合并还是形成一条新的日志模板。在模板提取完成之后,将在得到的日志样本变量上进行变量关系挖掘,主要针对现有变量枚举计算典型的残差变量,根据残差变量的熵值决定是否选取该残差变量对应的变量关系。
本发明中通过上述训练方式,有效保证了模板组的多样化,有利于后续步骤的进行。
基于上述任一实施例,根据所述日志体样本构建日志前缀树,并得到日志模板的步骤,具体包括:
根据所述日志体样本的日志长度,构建前缀树的内部节点;
其中,所述日志长度是指日志体样本按照预设分割符切分为不同的段之后,单条日志所包含的段的数目;
根据新的日志体样本的日志长度,确定所述日志长度内部节点对应的日志模板组;
将新的日志体样本与所述日志模板组进行相似度比较,在相似度小于预设阈值时,将所述新的日志体样本添加到日志模板组中,更新前缀树的叶节点。
具体的,在训练开始之前,树初始化状态仅包含根节点,此后每当新的日志加入,将首先按照长度、前缀段等进行分类,该分类过程为一个前缀树的遍历过程。如果在这一过程中发现某一个内部节点(包括按长度分类的内部节点和按照前缀段分类的内部节点)不存在,则将创建新的内部节点,以及它所对应的新的叶子节点。最终该新的日志会找到一个叶子节点以及它所对应的模板组,对于该模板组内的若干模板,新日志将会逐一与他们计算相似度,相似度的计算方法为用两条日志/模板相同的段数量除以总的段数量,这里需要注意的是由于变量部分可能以不同的方法存在,因此它将被看作是一个有效段,即既不会被算入到上面的相同的段数量内,也不会被算入到总的段数量内。之后,比对这一相似度和一个阈值的大小关系,如果超过该阈值,则说明当前新日志和之前已有的一个模板属于同一个模板,当前新的日志仅仅是一个新的实例,这样,新的日志将不会创建新的模板,而是会更新老模板,将和原来老模板对应不同的部分替换成为变量。相反,如果比对之后的相似度小于阈值,那么就会将新的日志视为一个新的模板,并创建一个新的模板。通过这样的过程,使用前缀树将能够从日志样本中提取得到对应的各个模板。
通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系,最终得到预训练前缀树。
本发明中所构建的前缀树,能够通过日志模板的方式,有效减少数据存储的量,同时,分析日志变量之间的关系,仅仅保留变量的残差变量,进一步减少了压缩的数据量,保证了压缩速率和效果。
基于上述任一实施例,通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系的步骤,具体包括:
根据所述每个日志模板的样本变量,通过枚举的方式,得到所述样本变量之间的典型数字关系;
所述典型数字关系,包括:变量类内关系、变量类间关系和混合关系;
计算每一种典型数字关系对应的残差变量,并计算每一个残差变量的熵值;
根据每一个残差变量的熵值,贪心地选择熵值尽可能低的残差变量,得到每个日志模板的变量关联关系。
具体的,该过程包含关系列举和关系选择阶段,本发明将出现在同一个模板的同一个位置的一组变量看作一类变量。在第一个阶段,本发明将围绕提取得到变量类,枚举他们对应的典型关系组合,这里本发明枚举的是一些日志变量之间的典型数字关系,具体来说包括:变量类内关系、变量类间关系和混合关系。
类内关系是指同一个类的变量普遍密切相关,如果对他们做差分处理将会显著降低变量的大小。类间关系是指某一类变量等于另一类变量加上一个数值,或者等于另两类变量之和。混合关系是指如果对于某一类变量做差分处理,它所对应的结果将对应等于另一个类变量,典型的例子就是对于连续IO的场景,上一次的Offset加上Length将等于下一次的Offset,这样如果将Offset做差值,其最终结果将和Length的数值非常接近(在连续写的情况下完全相等)。对于每一种关系,本发明都可以找到他们对应的残差变量。所谓的残差变量,即按照这一关系计算得到的结果,例如如果存在一个A=B+C的关系,那么A-B-C就将成为它对应的残差变量,如果存在一个O2=O1+L1的混合关系,那么O2-O1-L1就将成为它对应的残差变量。而第一阶段的任务就是按照提取得到的类变量,枚举并计算他们之间可能的三类关系对应的残差变量。并计算每一个残差变量的熵值。
在第二阶段,在选择关系的过程中,将按照熵值对于残差变量进行排序,然后贪心地选取熵值尽可能低的残差变量,在这一过程中如果引入某一个残差变量对于全局可解的变量类并无贡献,即引入的变量类不可解;本发明将不再引入该残差变量,即每次仅选取那些能够保证带来新的可解变量类的残差变量,重复执行该过程,直到所有的变量类都可解为止。这样本发明选取得到的所有残差变量对应的关系,就是本发明将在后续压缩过程中使用的关系。
本发明通过在变量数值上进一步开展关联关系挖掘任务,可以有效确定日志变量对应的残差变量,从而实现在日志压缩时,仅仅保存该残差变量即可,有效减少压缩数据量。
基于上述任一实施例,所述通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量的步骤,具体包括:
按照预设分隔符将所述日志体分割为不同段,根据分割后所得段的数目确定所述日志体对应的日志模板组;根据所述日志模板组对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量。
具体的,本实施例将输入不同的日志,每一条日志将首先按照分隔符做切分,然后按照分割后所得段的数目做分类,找到对应的模板组,然后在模板组内当前日志将会逐个模板进行匹配,看当前日志是否是该模板的一个实例,如果是,则匹配成功,如果找不到这样的模板,则匹配失败。对于匹配成功的日志,我们将得到它对应的模板编号并获得相应的各个变量。
基于上述任一实施例,所述通过弹性编码的方式进行编码,得到编码结果的步骤,具体包括:
将数据中最高的符号位通过循环左移到最低位,得到第一中间数据;
然后将第一中间数据中的负数,将第一中间数据中的正数保持不变,将除最后一位的负数外的其他负数都翻转,得到第二中间数据;
将所述第二中间数据的所有比特,切分为7个比特一组的小段,对于每一个小段添加0或者1的标志来标识当前段是否为最后一段,得到第三中间数据;
将第三中间数据中所有前导全0的段统一删去,得到编码结果。
具体的,图4为本发明提供的弹性编码过程示意图,如图4所示,整个弹性编码过程包含四个步骤,第一步是将最高的符号位通过循环左移移动到最低位;第二步对于负数,将除了最后一位的其他位都翻转,对于正数则保持不变;第三步将所有的bit切分成7个bit位一组的小段,对于每一个小段添加0或者1的标志来标识当前段是否为最后一段;第四步,将所有前导全0的段统一删去,仅保留其他段。采用这样的一个方法,能够使用8n个bit来表示[-27n,-27(n-1))∪(27(n-1)-1,27n-1](0<n<6)范围内的数字,
本发明所描述的弹性编码方式非常适用于系统日志数字变量普遍大小不大的特点,从而显著降低存储开销。
图5为本发明提供的日志压缩装置,如图5所示,包括:切分模块510、匹配模块520、分析模块530和压缩模块540;其中,切分模块510用于将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;其中,匹配模块520用于通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;其中,分析模块530用于将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;其中,压缩模块540用于将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
本发明通过基于前缀树的日志模板提取工具提取得到日志模板,同时挖掘得到各模板对应的变量之间潜在的关联关系,构建预设前缀树,然后基于预设前缀树,将利用日志模板提取获得每条日志对应的模板号和变量数值。采用基于关联关系的变换方法,将原始的数字变量变换成为对应的残差变量,采用基于差分的时间编码技术,采用基于弹性编码机制的数字变量编码方法,能够有效提高大规模系统日志的压缩率,同时压缩速度较高。
可选的,所述装置还包括训练模块,所述训练模块用于:获取日志样本,将所述日志样本分为日志头样本和日志体样本;
根据所述日志体样本构建日志前缀树,并得到日志模板;
通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系,得到预训练前缀树。
所述匹配模块,具体用于:根据所述日志体样本的日志长度,构建前缀树的内部节点;
其中,所述日志长度是指日志体样本按照预设分割符切分为不同的段之后,单条日志所包含的段的数目;
根据新的日志体样本的日志长度,确定所述日志长度内部节点对应的日志模板组;
将新的日志体样本与所述日志模板组进行相似度比较,在相似度小于预设阈值时,将所述新的日志体样本添加到日志模板组中,更新前缀树的叶节点。
所述匹配模块,具体还用于:根据所述每个日志模板的样本变量,通过枚举的方式,得到所述样本变量之间的典型数字关系;
所述典型数字关系,包括:变量类内关系、变量类间关系和混合关系;
计算每一种典型数字关系对应的残差变量,并计算每一个残差变量的熵值;
根据每一个残差变量的熵值,贪心地选择熵值尽可能低的残差变量,得到每个日志模板的变量关联关系。
本发明通过基于前缀树的日志模板提取工具提取得到日志模板,同时挖掘得到各模板对应的变量之间潜在的关联关系,构建预设前缀树,然后基于预设前缀树,将利用日志模板提取获得每条日志对应的模板号和变量数值。采用基于关联关系的变换方法,将原始的数字变量变换成为对应的残差变量,采用基于差分的时间编码技术,采用基于弹性编码机制的数字变量编码方法,能够有效提高大规模系统日志的压缩率,同时压缩速度较高。
图6为本发明提供的电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行日志压缩方法,该方法包括:将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的日志压缩方法,该方法包括:将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的日志压缩方法,该方法包括:将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种日志压缩方法,其特征在于,包括:
将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;
通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;
将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;
将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
2.根据权利要求1所述日志压缩方法,其特征在于,在所述通过预训练前缀树对所述日志体进行匹配的步骤之前,所述方法还包括:
获取日志样本,将所述日志样本分为日志头样本和日志体样本;
根据所述日志体样本构建日志前缀树,并得到日志模板;
通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系,得到预训练前缀树。
3.根据权利要求2所述日志压缩方法,其特征在于,根据所述日志体样本构建日志前缀树,并得到日志模板的步骤,具体包括:
根据所述日志体样本的日志长度,构建前缀树的内部节点;
其中,所述日志长度是指日志体样本按照预设分割符切分为不同的段之后,单条日志所包含的段的数目;
根据新的日志体样本的日志长度,确定所述日志长度内部节点对应的日志模板组;
将新的日志体样本与所述日志模板组进行相似度比较,在相似度小于预设阈值时,将所述新的日志体样本添加到日志模板组中,更新前缀树的叶节点。
4.根据权利要求2所述日志压缩方法,其特征在于,通过所述日志模板提取每个日志模板对应的样本变量,根据所述样本变量,通过枚举的方式,确定每个日志模板的变量关联关系的步骤,具体包括:
根据所述每个日志模板的样本变量,通过枚举的方式,得到所述样本变量之间的典型数字关系;
所述典型数字关系,包括:变量类内关系、变量类间关系和混合关系;
计算每一种典型数字关系对应的残差变量,并计算每一个残差变量的熵值;
根据每一个残差变量的熵值,贪心地选择熵值尽可能低的残差变量,得到每个日志模板的变量关联关系。
5.根据权利要求1所述日志压缩方法,其特征在于,所述通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量的步骤,具体包括:
按照预设分隔符将所述日志体分割为不同段,根据分割后所得段的数目确定所述日志体对应的日志模板组;
根据所述日志模板组对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量。
6.根据权利要求1所述日志压缩方法,其特征在于,所述通过弹性编码的方式进行编码,得到编码结果的步骤,具体包括:
将数据中最高的符号位通过循环左移到最低位,得到第一中间数据;
然后将第一中间数据中的正数保持不变,对于第一中间数据中的负数来说,将除最后一位以外的其他位都翻转,由此得到第二中间数据;
将所述第二中间数据的所有比特,切分为7个比特一组的小段,对于每一个小段添加0或者1的标志来标识当前段是否为最后一段,得到第三中间数据;
将第三中间数据中所有前导全0的段统一删去,得到编码结果。
7.根据权利要求1所述日志压缩方法,其特征在于,根据所述编码结果得到日志压缩结果的步骤,具体包括:
将所述日志头中的除时间数据外的其它数据和所述编码结果进行打包处理,得到日志压缩结果。
8.一种日志压缩装置,其特征在于,包括:
切分模块,用于将日志文件分为日志头和日志体,计算所述日志头中的时间数据的差分值,得到日志头时间差分值;
匹配模块,用于通过预训练前缀树对所述日志体进行匹配,得到所述日志体匹配的日志模板编号和日志变量;
分析模块,用于将所述日志模板编号对应的变量关联关系应用到所述日志变量上,得到所述日志变量的残差变量;
压缩模块,用于将所述日志体匹配的日志模板编号、日志变量的残差变量和所述日志头时间差分值,通过弹性编码的方式进行编码,得到编码结果,根据所述编码结果得到日志压缩结果。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述日志压缩方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述日志压缩方法的步骤。
CN202011539773.9A 2020-12-23 2020-12-23 一种日志压缩方法、装置、电子设备及存储介质 Pending CN112559465A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011539773.9A CN112559465A (zh) 2020-12-23 2020-12-23 一种日志压缩方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011539773.9A CN112559465A (zh) 2020-12-23 2020-12-23 一种日志压缩方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112559465A true CN112559465A (zh) 2021-03-26

Family

ID=75031642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011539773.9A Pending CN112559465A (zh) 2020-12-23 2020-12-23 一种日志压缩方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112559465A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113934701A (zh) * 2021-10-12 2022-01-14 网易(杭州)网络有限公司 日志处理方法、装置、服务器和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113934701A (zh) * 2021-10-12 2022-01-14 网易(杭州)网络有限公司 日志处理方法、装置、服务器和存储介质

Similar Documents

Publication Publication Date Title
CN110678929B (zh) 用于高效压缩基因组序列读段的方法和系统
CN107729526B (zh) 一种文本结构化的方法
CN106909575B (zh) 文本聚类方法和装置
CN107403075B (zh) 比对方法、装置及系统
US11151089B2 (en) Compression of log data using pattern recognition
Aronson et al. Towards an engineering approach to file carver construction
CN106778079A (zh) 一种基于MapReduce的DNA序列k‑mer频次统计方法
CN109067708B (zh) 一种网页后门的检测方法、装置、设备及存储介质
CN112445912B (zh) 一种故障日志分类方法、系统、设备以及介质
CN105574156A (zh) 文本聚类方法、装置及计算设备
CN111144117A (zh) 知识图谱中文地址消除歧义方法
CN112463784A (zh) 数据去重方法、装置、设备及计算机可读存储介质
CN104484391A (zh) 字符串相似度的计算方法和装置
CN109670153B (zh) 一种相似帖子的确定方法、装置、存储介质及终端
CN112559465A (zh) 一种日志压缩方法、装置、电子设备及存储介质
CN114881131A (zh) 一种生物序列处理和模型训练方法
WO2022160819A1 (zh) 文档批量翻译方法、装置、电子设备及存储介质
CN117216239A (zh) 文本去重方法、装置、计算机设备及存储介质
CN111026736B (zh) 数据血缘管理方法及装置、数据血缘解析方法及装置
CN113971283A (zh) 一种基于特征的恶意应用程序检测方法及设备
KR20160111327A (ko) 정보 처리 장치 및 데이터 관리 방법
CN113378156B (zh) 一种基于api的恶意文件检测方法和系统
CN113537349A (zh) 大型主机硬件故障识别方法、装置、设备及存储介质
CN114021112A (zh) 密码算法能量分析方法及装置、存储介质及电子设备
CN113688240A (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
CB03 Change of inventor or designer information

Inventor after: Zhang Guangyan

Inventor after: Wei Junyu

Inventor after: Zheng Weimin

Inventor before: Zhang Guangyan

Inventor before: Wei Junyu

Inventor before: Zheng Weimin

CB03 Change of inventor or designer information