CN113138968A - 日志压缩方法及日志解压缩方法 - Google Patents
日志压缩方法及日志解压缩方法 Download PDFInfo
- Publication number
- CN113138968A CN113138968A CN202010067172.6A CN202010067172A CN113138968A CN 113138968 A CN113138968 A CN 113138968A CN 202010067172 A CN202010067172 A CN 202010067172A CN 113138968 A CN113138968 A CN 113138968A
- Authority
- CN
- China
- Prior art keywords
- log file
- log
- character string
- compressed
- encoding
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000007906 compression Methods 0.000 title claims abstract description 81
- 230000006835 compression Effects 0.000 title claims abstract description 71
- 230000006837 decompression Effects 0.000 title claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010606 normalization Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- ZGKMBYVBLXODLZ-UHFFFAOYSA-N n-(6-aminohexyl)imidazole-1-carboxamide;hydrochloride Chemical compound Cl.NCCCCCCNC(=O)N1C=CN=C1 ZGKMBYVBLXODLZ-UHFFFAOYSA-N 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种日志压缩方法及日志解压缩方法,日志压缩方法首先确定待压缩日志文件中的字符串;然后基于字符串与编码元素的对应关系,对待压缩日志文件进行压缩;其中,对应关系基于历史日志文件确定。本发明实施例中引入通过历史日志文件确定的字符串与编码元素的对应关系,可以直接根据对应关系对待压缩日志文件进行压缩,简化了日志压缩过程,整个过程不需要很强的专业知识。而且,字符串的长度可以根据需要进行灵活选取,可以提供灵活的压缩比率。另外,由于对待压缩日志文件的压缩过程就是编码过程,因此可以一定程度上对待压缩日志文件进行加密,保证了待压缩日志文件的保密性。
Description
技术领域
本发明涉及互联网技术领域,更具体地,涉及日志压缩方法及日志解压缩方法。
背景技术
随着计算机、通信、网络技术的发展,许多公司、企业、运营商都拥有自己的IT系统和网络设备。对于各种软件、系统、设备的管理,不仅仅需要关注提供的服务和功能,还需要进一步了解系统的访问情况、吞吐量、用户的异常行为以及系统的故障告警等信息,以改善服务内容和质量,提升用户体验,最终提高企业的竞争力。而日志在这一过程中成为了一种重要的资源。例如,电子商务服务商通过网站服务日志,可以挖掘隐含在其内部的商业价值,并将描述用户行为的数据转换为决策者可以利用的有效信息,为经营者提供决策支持。
日志是需要处理的常见数据,是系统运行过程中由程序打印的一些重要业务节点、任务参数、系统状态、系统故障等信息的集合。用户的各种软件、系统、设备、网络节点都会产生日志信息,随着网络节点的增加,业务复杂程度的升高,产生了海量的日志数据。这些海量日志文件的收集和存储成为了一个挑战,比较简单的方法是1)购买专门的存储设备扩大存储空间,2)删除相对较旧的日志文件。对于1),需要增加用户购买存储设备的成本;而对于2),随着业务的演变,数据的时效性已经往往不满足于按天、按周分析,比如广告投放效果数据等,也许需要长期保存。
由于不经过处理的原始日志文件占用了较大的存储空间,为了再尽量不增加成本的情况下长期的保存日志文件,对日志文件进行压缩和解压缩成为了不可避免的问题。
在现有技术中存在着各种日志压缩方法,例如:有方法是,首先判断日志中所述DNS的域名是否属于260万域名;当属于以上260万域名中的DNS时,则对所述DNS原始日志进行分析,并匹配用户账户、计算PV、访问时间点均值、访问时间点方差,最终多条记录的被合并成一条记录,同时删去原始日志。另有方法是:首先获取通讯网络中的第一网络设备产生的历史告警日志集合;基于历史告警日志集合中的历史告警日志的产生时间戳,对历史告警日志集合进行划分,得到多个历史告警日志子集合,每个历史告警日志子集合中的所有历史告警日志在时序上连续;确定历史告警日志集合中的告警类型与多个历史告警日志子集合的对应关系;基于对应关系对历史告警日志集合中的告警类型进行聚类处理,以生成至少一个关联规则;基于至少一个关联规则对多个待处理告警日志进行压缩处理,以得到告警类型为根因告警类型的告警日志。
现有技术中提供的上述日志压缩方法,均是基于规则实现,这些规则必须由相关专家提供,且对日志格式有较大的要求,需要特定的专家归纳总结日志特点,无法对所有格式的日志均实现压缩。
发明内容
为克服上述问题或者至少部分地解决上述问题,本发明实施例提供了一种日志压缩方法及日志解压缩方法。
第一方面,本发明实施例提供了一种日志压缩方法,包括:
确定待压缩日志文件中的字符串;
基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩;
其中,所述对应关系基于历史日志文件确定。
优选地,所述对应关系具体通过如下方法确定:
确定所述历史日志文件中每个字符串的长度以及出现的频率;
将每个字符串的长度以及出现的频率的乘积作为权重,基于初始编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素。
优选地,所述基于初始编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素,具体包括:
去除所述初始编码元素集合中在所述历史日志文件中出现的初始编码元素,得到备选编码元素集合;
基于所述备选编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素。
优选地,所述确定所述历史日志文件中每个字符串的长度以及出现的频率之前,还包括:
将所述历史日志文件中每条记录的时间部分进行格式归一化;
基于预设分隔符,对格式归一化后的所述历史日志文件进行分词处理,确定所述历史日志文件中的字符串。
优选地,所述基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩,具体包括:
基于所述对应关系,确定所述待压缩日志文件中每个字符串对应的编码元素;
基于所述编码元素,对所述待压缩日志文件进行压缩。
优选地,所述字符串为单词或短句。
第二方面,本发明实施例提供了一种日志解压缩方法,包括:
确定待解压缩日志文件中的编码元素;
基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩;
其中,所述对应关系基于历史日志文件确定。
第三方面,本发明实施例提供了一种日志压缩系统,包括:第一确定模块和压缩模块。其中,
第一确定模块用于确定待压缩日志文件中的字符串;
压缩模块用于基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩;
其中,所述对应关系基于历史日志文件确定。
第四方面,本发明实施例提供了一种日志解压缩系统,包括:第二确定模块和解压缩模块。其中,
第二确定模块用于确定待解压缩日志文件中的编码元素;
解压缩模块用于基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩;
其中,所述对应关系基于历史日志文件确定。
第五方面,本发明实施例提供了一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的日志压缩方法或第二方面所述的日志解压缩方法的步骤。
第六方面,本发明实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的日志压缩方法或第二方面所述的日志解压缩方法的步骤。
本发明实施例提供的一种日志压缩方法及日志解压缩方法,日志压缩方法首先确定待压缩日志文件中的字符串;然后基于字符串与编码元素的对应关系,对待压缩日志文件进行压缩;其中,对应关系基于历史日志文件确定。本发明实施例中引入通过历史日志文件确定的字符串与编码元素的对应关系,可以直接根据对应关系对待压缩日志文件进行压缩,简化了日志压缩过程,整个过程不需要很强的专业知识。同时,由于编码元素仍然是字符串,因此,不影响使用其他日志压缩方法进行二次压缩以提高压缩比率。而且,字符串的长度可以根据需要进行灵活选取,可以提供灵活的压缩比率。另外,由于对待压缩日志文件的压缩过程就是编码过程,因此可以一定程度上对待压缩日志文件进行加密,保证了待压缩日志文件的保密性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种日志压缩方法的流程示意图;
图2为本发明实施例提供的一种日志解压缩方法的流程示意图;
图3为本发明实施例提供的一种日志压缩系统的结构示意图;
图4为本发明实施例提供的一种日志解压缩系统的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明实施例中的具体含义。
如图1所示,本发明实施例提供了一种日志压缩方法,包括:
S11,确定待压缩日志文件中的字符串;
S12,基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩;
其中,所述对应关系基于历史日志文件确定。
具体地,本发明实施例中提供的日志压缩方法,其执行主体为服务器,服务器具体可以是电脑服务器或者云端服务器,本发明实施例中对此不作具体限定。
首先执行步骤S11。待压缩日志文件可以是历史日志文件,也可以是新生成的日志文件。待压缩日志文件中的字符串的长度可以根据需要进行灵活选取,由于待压缩日志文件由大量词语组成,每个词语可以作为一个字符串,或者出现频率相同或相近的连续多个词语构成的一个短句作为一个字符串,或者待压缩日志文件中的每个关键词作为一个字符串。字符串之间可以通过分隔符进行分割,分隔符的选取可以根据需要实现,例如可以将空格符、“-”、“@”等符号作为分隔符。
需要说明的是,确定待压缩日志文件中的字符串的方法与确定历史日志文件中的字符串的方法需要一致,以使得通过历史日志文件确定的字符串与编码元素的对应关系,可以适用于待压缩日志文件。
然后执行步骤S12。根据字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩。压缩的过程即为编码的过程,具体通过编码元素实现,实现方式可以是直接采用编码元素替换待压缩日志文件中对应的字符串,还可以是采用预设编码规则,通过编码元素对待压缩日志文件中的字符串进行编码。编码元素是指用于对待压缩日志文件中的字符串进行编码的符号,编码元素具体可以是数字、大写字母、小写字母及其组合。字符串与编码元素的对应关系具体可以通过表格的形式表示,例如通过编码表表示;字符串与编码元素的对应关系还可以通过图的形式表示,例如将字符串作为横坐标、将编码元素作为纵坐标绘制二维编码图。
字符串与编码元素的对应关系通过历史日志文件确定,历史日志文件与待压缩日志文件的结构相似,具体可以是具有相同类型的日志文件,还可以是同一系统对应的日志文件,或相似系统对应的日志文件。例如,历史日志文件与待压缩日志文件的文件名命名方式相同等。历史日志文件的数量可以为一个,也可以为多个或者全部的历史日志文件,本发明实施例中第历史日志文件的数量不作具体限定。历史日志文件可以是未经过压缩的日志文件,也可以是经过其他压缩方法初步压缩后的日志文件,以便通过本发明实施例中提供的日志压缩方法进行二次压缩,进一步提高压缩比率。在确定对应关系时,可以先给定初始编码元素,然后直接根据初始编码元素,确定出编码元素并将编码元素与字符串进行一一对应,还可以根据初始编码元素,通过编码算法实现对字符串的编码,得到字符串与编码元素的对应关系。需要说明的是,由于编码的过程是为了对待压缩日志文件进行压缩,因此编码元素均比对应的字符串的长度短。
本发明实施例中提供的日志压缩方法,首先确定待压缩日志文件中的字符串;然后基于字符串与编码元素的对应关系,对待压缩日志文件进行压缩;其中,对应关系基于历史日志文件确定。本发明实施例中引入通过历史日志文件确定的字符串与编码元素的对应关系,可以直接根据对应关系对待压缩日志文件进行压缩,简化了日志压缩过程,整个过程不需要很强的专业知识。同时,由于编码元素仍然是字符串,因此,不影响使用其他日志压缩方法进行二次压缩以提高压缩比率。而且,字符串的长度可以根据需要进行灵活选取,可以提供灵活的压缩比率。另外,由于对待压缩日志文件的压缩过程就是编码过程,因此可以一定程度上对待压缩日志文件进行加密,保证了待压缩日志文件的保密性。
在上述实施例的基础上,本发明实施例中提供的日志压缩方法,所述对应关系具体通过如下方法确定:
确定所述历史日志文件中每个字符串的长度以及出现的频率;
将每个字符串的长度以及出现的频率的乘积作为权重,基于初始编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素。
具体地,本发明实施例中在确定字符串与编码元素的对应关系时,首先确定历史日志文件中每个字符串的长度以及出现的频率,即简单的对历史日志文件进行统计,每个字符串的长度是指该字符串中包括的所有符号的数量,所有符号的类别包括英文字母、符号以及数字等。每个字符串出现的频率是指相同字符串在历史日志文件中出现的次数。
计算每个字符串的长度以及出现的频率的乘积,并将乘积作为K阶哈夫曼编码算法中的权重,基于初始编码元素集合,通过K阶哈夫曼编码算法确定每个字符串对应的编码元素。初始编码元素集合是预先确定的初始编码元素构成的集合,将初始编码元素集合记为SI1:{e1,e2,...en},n为初始编码元素集合中初始编码元素的个数。例如,可以先用一阶字符编码元素作为初始编码元素,一阶字符编码元素具体可以包括大写英文字母、小写英文字母以及数字,此时初始编码元素集合中共包括62个初始编码元素,即n=62,SI1可以进一步表示为SI:{a,b,c...z,A,B,C...Z,0,1,2...9}。
基于初始编码元素集合,使用K阶哈夫曼编码算法进行编码,其中K为哈夫曼编码算法的阶数,且有K=n,生成每个字符串对应的编码元素可以通过编码表的形式表示,其中编码元素的个数为N=(K-1)nK+1,nK是K阶哈夫曼编码算法中子节点个数为K的节点数,即层数。
由K阶哈夫曼编码算法确定出的编码元素可以保证唯一性。以历史日志文件中的如下日志片段、以数字作为编码元素为例进行说明,可有如下表1中示出的字符串与编码元素。
日志片段:
|vmx|I125:DISKUTIL:sata0:1:capacity=0 logical sector size=2048
|vmx|I125:DISKUTIL:sata0:1:geometry=0/0/0
|vmx|I125:AHCI:Creating ATAPI CDROM on SATA adapter.
|vmx|I125:AHCI:Successfully created device:sata0:1
|vmx|I125:WORKER:Creating new group with numThreads=1(36)
|vmx|I125:DISKUTIL:scsi0:0:max toolsVersion=10336,type=4
表1字符串与编码元素
字符串 | 出现的频率 | 长度 | 权重 | 权重排序 | 编码元素 |
|vmx|I125: | 5 | 12 | 60 | 1 | 2 |
DISKUTIL: | 3 | 9 | 27 | 2 | 3 |
sata0:1 | 3 | 7 | 21 | 3 | 5 |
Creating | 2 | 8 | 16 | 4 | 6 |
AHCI | 2 | 4 | 8 | 8 | 无 |
Successfully | 1 | 12 | 12 | 5 | 7 |
numThreads | 1 | 10 | 10 | 6 | 8 |
toolsVersion | 1 | 10 | 10 | 7 | 9 |
capacity | 1 | 8 | 8 | 9 | 无 |
logical | 1 | 7 | 7 | 10 | 无 |
其他 | 1 | x | x | 11+ | 无 |
表1中,将字符串“AHCI”、“capacity”、“logical”以及其他字符串对应的编码元素设置为无,即不需要对上述字符串进行编码。由表1中示出的内容可以得到字符串与编码元素的对应关系如表2所示。
表2字符串与编码元素的对应关系
字符串 | 编码元素 |
|vmx|I125: | 2 |
DISKUTIL: | 3 |
sata0:1 | 5 |
Creating | 6 |
Successfully | 7 |
numThreads | 8 |
toolsVersion | 9 |
在上述实施例的基础上,本发明实施例中提供的日志压缩方法,所述基于初始编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素,具体包括:
去除所述初始编码元素集合中在所述历史日志文件中出现的初始编码元素,得到备选编码元素集合;
基于所述备选编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素。
具体地,本发明实施例中,为避免初始编码元素集合中存在与历史日志文件中的字符串相同的初始编码元素,因此首先去除初始编码元素集合中在历史日志文件中出现的初始编码元素,得到备选编码元素集合,依次使用初始编码元素集合中的每个初始编码元素ei(1≤i≤n)在历史日志文件中查找,如果在历史日志文件中出现,则ei不可作为编码值,将ei从初始编码元素集合中剔除,初始编码元素集合中的所有初始编码元素均查找完,则得到的初始编码元素集合为备选编码元素集合,记为SII:{e1,e2,...em},m为备选编码元素集合中初始编码元素的个数。例如:上述日志片段中出现了0、1、4,则需要从初始编码元素集合中去除0、1、4,剩余的初始编码元素构成备选编码元素集合。
基于备选编码元素集合,使用K阶哈夫曼编码算法进行编码,其中K为哈夫曼编码算法的阶数,且有K=m,生成每个字符串对应的编码元素可以通过编码表的形式表示,编码表为SC1:{E1,E2,...EN},其中编码元素的个数为N=(K-1)nK+1,nK是K阶哈夫曼编码算法中子节点个数为K的节点数,即层数。
在上述实施例的基础上,本发明实施例中提供的日志压缩方法,所述确定所述历史日志文件中每个字符串的长度以及出现的频率之前,还包括:
将所述历史日志文件中每条记录的时间部分进行格式归一化;
基于预设分隔符,对格式归一化后的所述历史日志文件进行分词处理,确定所述历史日志文件中的字符串。
具体地,本发明实施例中,在确定历史日志文件中的字符串时,首先将历史日志文件中每条记录的时间部分进行格式归一化。例如:对于历史日志文件中的某一条记录:
2019-12-10T14:50:51.406+08:00|vmx|A100:ConfigDB:Setting usb:0.present="TRUE"
可以将其格式化为:
2019-12-10T14:50:51.406+08:00|vmx|A100:ConfigDB:Setting usb:0.%s=%s:::present."TRUE"。
然后根据预设分隔符,对格式归一化后的历史日志文件进行分词处理,确定历史日志文件中的字符串。预设分隔符可以根据需要进行设置,例如可以将短句“|vmx|A100:ConfigDB:Setting usb:0.”作为字符串。
可选的,对于大小写不敏感的历史日志文件,进行标识,以便后续搜索词频更方便。可以对一些显而易见打印预计进行格式规整,利用占位符替换参数,并将参数后移到句子最后,形成短句+参数的样式,该过程通常需要结合运维经验。同时,结合运维领域知识还可从历史日志文件中提炼频繁出现的短句,将短句格式部分和参数部分分离,对短句压缩达到更高的压缩比。也可以考虑某一单词的变形,例如若某一待压缩日志文件中出现短句“Hello Word”的频率为10次,出现短句“Hi Word”的频率为1次,也就是出现单词“Word”的频率为11次,出现单词“Hello”的频率为11次,但是考虑到单词“Hello”与“Hi”是互为变形的结果,表示相同的含义,因此可以将短句“Hello Word”和“Hi Word”认为是同一个短句,出现的频率为11次,长度为10个字符,对应于同一个编码元素。还可以根据人工定义的格式确定短句,本发明实施例中对此不作具体。另外,还可以结合其他压缩方法压缩后的历史日志文件进一步提高压缩比。
在上述实施例的基础上,本发明实施例中提供的日志压缩方法,所述基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩,具体包括:
基于所述对应关系,确定所述待压缩日志文件中每个字符串对应的编码元素;
基于所述编码元素,对所述待压缩日志文件进行压缩。
具体地,在基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩时,首先根据字符串与编码元素的对应关系,确定待压缩日志文件中每个字符串对应的编码元素,具体可以在表示字符串与编码元素的对应关系的编码表中查找每个字符串对应的编码元素。然后采用查找到的编码元素替换待压缩日志文件中对应的字符串,实现对待压缩日志文件的压缩。
上述日志片段的压缩结果可以表示为:
2 3:5:capacity=0logical sector size=2048
2 3:5:geometry=0/0/0
2 AHCI:6ATAPI CDROM on SATA adapter.
2 AHCI:7created device:5
2 WORKER:6 new group with 8=1(36)
2 3:scsi0:0:max 9=10336,type=4
在如表2所示的字符串与编码元素的对应关系中,只采用7个编码元素,也即编码表的长度为7,此时压缩前上述日志片段中的字符数为303,压缩后上述日志片段中的字符数为165。也就是说,通过本发明实施例中提供的日志压缩方法,可以大大缩减待压缩日志文件的大小。如果进一步增加编码元素的数量,即增加编码表的内容,则可以进一步提升压缩比,进一步缩减待压缩日志文件的大小。
另外,对于待压缩日志文件中的记录:
|vmx|A100:ConfigDB:Setting usb:0.%s=%s:::present."TRUE"
若将其中的短句“|vmx|A100:ConfigDB:Setting usb:0.%s=%s”作为一个字符串,且对应的编码元素为b,则压缩后得到的压缩结果为:
b:::present."TRUE"
经过上述压缩过程,大大减少了待压缩日志文件的字符数。
如图2所示,在上述实施例的基础上,本发明实施例中提供了一种日志解压缩方法,包括:
S21,确定待解压缩日志文件中的编码元素;
S22,基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩;
其中,所述对应关系基于历史日志文件确定。
具体地,本发明实施例中提供的日志解压缩方法,其执行主体为服务器,服务器具体可以是电脑服务器或者云端服务器,本发明实施例中对此不作具体限定。
首先执行步骤S21。待解压缩日志文件是指根据本发明实施例中提供的日志压缩方法进行压缩后得到的日志文件。待解压缩日志文件中的编码元素是指替换了压缩前的日志文件中的字符串的编码元素。
然后执行步骤S22。根据字符串与编码元素的对应关系,对待解压缩日志文件进行解压缩。解压缩的过程即为解码的过程,是压缩过程或编码过程的逆过程。本发明实施例中具体可以根据压缩的方法进行解压缩。例如当压缩是通过直接采用编码元素替换待压缩日志文件中对应的字符串实现时,则解压缩的过程可以先通过字符串与编码元素的对应关系,找到与步骤S21中确定的编码元素对应的字符串,并用找到的字符串替换待解压缩日志文件中的编码元素,实现对待解压缩日志文件的解压缩。当压缩是采用预设编码规则,通过编码元素对待压缩日志文件中的字符串进行编码时,解压缩的过程可以是通过预设编码规则对待解压缩日志文件中的编码元素进行解码。
在上述实施例的基础上,本发明实施例中,还可根据需求进行后处理,将日志中时间信息和格式化打印信息恢复为原始日志形态。
在上述实施例的基础上,本发明实施例中提供的日志解压缩方法,所述基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩,具体包括:
基于所述对应关系,确定所述待解压缩日志文件中每个编码元素对应的字符串;
基于所述字符串,对所述待解压缩日志文件进行解压缩。
具体地,在基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩时,首先根据字符串与编码元素的对应关系,确定待解压缩日志文件中每个编码元素对应的字符串,具体可以在表示字符串与编码元素的对应关系的编码表中查找每个编码元素对应的字符串。然后采用查找到的字符串替换待解压缩日志文件中对应的编码元素,实现对待解压缩日志文件的解压缩。
本发明实施例中提供的是一种基于词频的日志压缩方法以及日志解压缩方法,可以解决现有技术中对日志格式或规则依赖,行业性、专业性强,需要专家的问题,只需统计日志中的词频和词长度作为权值,之后使用较为通用的K阶哈夫曼编码选定编码值或直接使用编码值与词语的映射表即编码表,之后即可对满足条件的词用更短的编码进行替换,使用简单,不需要很强的专业知识;通过简单的人工干预,或直接与其他压缩方法结合使用,统计短句的句频和句长,可达到更高的压缩比率;在确定字符串与编码元素的对应关系时,只需提供历史日志信息,即可独立完成,不会影响生产环境的运行;压缩的过程也是一个编码的过程,可以一定程度上对待压缩日志文件进行加密。
如图3所示,在上述实施例的基础上,本发明实施例中提供了一种日志压缩系统,包括:第一确定模块31和压缩模块32。
第一确定模块31用于确定待压缩日志文件中的字符串;
压缩模块32用于基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩;
其中,所述对应关系基于历史日志文件确定。
具体地,本发明实施例中提供的日志压缩系统中各模块的作用与上述日志压缩方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。
如图4所示,在上述实施例的基础上,本发明实施例中提供了一种日志解压缩系统,包括:第二确定模块41和解压缩模块42。
第二确定模块41用于确定待解压缩日志文件中的编码元素;
解压缩模块42用于基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩;
其中,所述对应关系基于历史日志文件确定。
具体地,本发明实施例中提供的日志解压缩系统中各模块的作用与上述日志解压缩方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。
图5所示,在上述实施例的基础上,本发明实施例中提供了一种电子设备,包括:处理器(processor)501、存储器(memory)502、通信接口(Communications Interface)503和通信总线504;其中,
所述处理器501、存储器502、通信接口503通过通信总线504完成相互间的通信。所述存储器502存储有可被所述处理器501执行的程序指令,处理器501用于调用存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:确定待压缩日志文件中的字符串;基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩。或者包括:确定待解压缩日志文件中的编码元素;基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩。
需要说明的是,本实施例中的电子设备在具体实现时可以为服务器,也可以为PC机,还可以为其他设备,只要其结构中包括如图5所示的处理器501、通信接口503、存储器502和通信总线504,其中处理器501、通信接口503和存储器502通过通信总线504完成相互间的通信,且处理器501可以调用存储器502中的逻辑指令以执行上述方法即可。本实施例不对电子设备的具体实现形式进行限定。
存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:确定待压缩日志文件中的字符串;基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩。或者包括:确定待解压缩日志文件中的编码元素;基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩。
在上述实施例的基础上,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:确定待压缩日志文件中的字符串;基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩。或者包括:确定待解压缩日志文件中的编码元素;基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种日志压缩方法,其特征在于,包括:
确定待压缩日志文件中的字符串;
基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩;
其中,所述对应关系基于历史日志文件确定。
2.根据权利要求1所述的日志压缩方法,其特征在于,所述对应关系具体通过如下方法确定:
确定所述历史日志文件中每个字符串的长度以及出现的频率;
将每个字符串的长度以及出现的频率的乘积作为权重,基于初始编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素。
3.根据权利要求2所述的日志压缩方法,其特征在于,所述基于初始编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素,具体包括:
去除所述初始编码元素集合中在所述历史日志文件中出现的初始编码元素,得到备选编码元素集合;
基于所述备选编码元素集合,采用K阶哈夫曼编码算法,确定每个字符串对应的编码元素。
4.根据权利要求2所述的日志压缩方法,其特征在于,所述确定所述历史日志文件中每个字符串的长度以及出现的频率之前,还包括:
将所述历史日志文件中每条记录的时间部分进行格式归一化;
基于预设分隔符,对格式归一化后的所述历史日志文件进行分词处理,确定所述历史日志文件中的字符串。
5.根据权利要求2所述的日志压缩方法,其特征在于,所述基于字符串与编码元素的对应关系,对所述待压缩日志文件进行压缩,具体包括:
基于所述对应关系,确定所述待压缩日志文件中每个字符串对应的编码元素;
基于所述编码元素,对所述待压缩日志文件进行压缩。
6.根据权利要求1-5中任一项所述的日志压缩方法,其特征在于,所述字符串为单词或短句。
7.一种日志解压缩方法,其特征在于,包括:
确定待解压缩日志文件中的编码元素;
基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩;
其中,所述对应关系基于历史日志文件确定。
8.根据权利要求7所述的日志解压缩方法,其特征在于,所述基于字符串与编码元素的对应关系,对所述待解压缩日志文件进行解压缩,具体包括:
基于所述对应关系,确定所述待解压缩日志文件中每个编码元素对应的字符串;
基于所述字符串,对所述待解压缩日志文件进行解压缩。
9.一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一项所述的日志压缩方法或如权利要求7-8中任一项所述的日志解压缩方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的日志压缩方法或如权利要求7-8中任一项所述的日志解压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010067172.6A CN113138968A (zh) | 2020-01-20 | 2020-01-20 | 日志压缩方法及日志解压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010067172.6A CN113138968A (zh) | 2020-01-20 | 2020-01-20 | 日志压缩方法及日志解压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113138968A true CN113138968A (zh) | 2021-07-20 |
Family
ID=76809169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010067172.6A Pending CN113138968A (zh) | 2020-01-20 | 2020-01-20 | 日志压缩方法及日志解压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113138968A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160006456A1 (en) * | 2013-03-22 | 2016-01-07 | Fujitsu Limited | Compression device, compression method, dictionary generation device, dictionary generation method, decompression device, decompression method, information processing system, and recording medium |
US20160006454A1 (en) * | 2013-03-22 | 2016-01-07 | Fujitsu Limited | Compression device, compression method, decompression device, decompression method, information processing system, and recording medium |
US20160211863A1 (en) * | 2015-01-19 | 2016-07-21 | Fujitsu Limited | Converting device and converting method |
US9619478B1 (en) * | 2013-12-18 | 2017-04-11 | EMC IP Holding Company LLC | Method and system for compressing logs |
CN110399347A (zh) * | 2018-04-23 | 2019-11-01 | 华为技术有限公司 | 告警日志压缩方法、装置及系统、存储介质 |
-
2020
- 2020-01-20 CN CN202010067172.6A patent/CN113138968A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160006456A1 (en) * | 2013-03-22 | 2016-01-07 | Fujitsu Limited | Compression device, compression method, dictionary generation device, dictionary generation method, decompression device, decompression method, information processing system, and recording medium |
US20160006454A1 (en) * | 2013-03-22 | 2016-01-07 | Fujitsu Limited | Compression device, compression method, decompression device, decompression method, information processing system, and recording medium |
US9619478B1 (en) * | 2013-12-18 | 2017-04-11 | EMC IP Holding Company LLC | Method and system for compressing logs |
US20160211863A1 (en) * | 2015-01-19 | 2016-07-21 | Fujitsu Limited | Converting device and converting method |
CN105808513A (zh) * | 2015-01-19 | 2016-07-27 | 富士通株式会社 | 转换装置和转换方法 |
CN110399347A (zh) * | 2018-04-23 | 2019-11-01 | 华为技术有限公司 | 告警日志压缩方法、装置及系统、存储介质 |
Non-Patent Citations (1)
Title |
---|
DASHUAI的博客: "哈夫曼(huffman)树和哈夫曼编码", Retrieved from the Internet <URL:https://www.cnblogs.com/kubixuesheng/p/4397798.html> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2464630C2 (ru) | Двухпроходное хеш извлечение текстовых строк | |
CN105893337B (zh) | 用于文本压缩和解压缩的方法和设备 | |
US8694474B2 (en) | Block entropy encoding for word compression | |
US11487797B2 (en) | Iterative application of a machine learning-based information extraction model to documents having unstructured text data | |
CN109684290B (zh) | 日志存储方法、装置、设备及计算机可读存储介质 | |
US10749546B1 (en) | Method and system of content based dynamic data compression | |
CN116783825A (zh) | 对数据日志文件进行有损压缩的方法和系统 | |
CN110399464B (zh) | 一种相似新闻判别方法、系统及电子设备 | |
Granados et al. | Discovering data set nature through algorithmic clustering based on string compression | |
CN113138968A (zh) | 日志压缩方法及日志解压缩方法 | |
CN110334067B (zh) | 一种稀疏矩阵压缩方法、装置、设备及存储介质 | |
CN109831544B (zh) | 一种应用于电子邮箱地址的编码存储方法及系统 | |
CN115603758A (zh) | 一种客户号压缩和解压方法及装置 | |
Souley et al. | A comparative analysis of data compression techniques | |
CN113297154B (zh) | 一种网站日志压缩方法及装置 | |
CN111090787A (zh) | 一种消息处理方法、设备、系统及存储介质 | |
CN110209837B (zh) | 一种装置信息词典的生成方法及计算装置 | |
Jain et al. | A comparative study of lossless compression algorithm on text data | |
CN114818672A (zh) | 文本去重方法及装置、电子设备及可读存储介质 | |
CN114611496A (zh) | 词典的生成方法和装置、存储介质、电子装置 | |
CN114297046A (zh) | 基于日志的事件获取方法、装置、设备及介质 | |
CN109684442B (zh) | 一种文本检索方法、装置、设备及程序产品 | |
CN111884659A (zh) | 一种fst数据的压缩方法和装置 | |
CN112364642B (zh) | 一种文本处理方法及装置 | |
CN117591119B (zh) | 一种海量apk源码特征提取及相似分析方法 |
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 |