CN104050269B - 日志压缩方法及装置、解压缩方法及装置 - Google Patents
日志压缩方法及装置、解压缩方法及装置 Download PDFInfo
- Publication number
- CN104050269B CN104050269B CN201410283777.3A CN201410283777A CN104050269B CN 104050269 B CN104050269 B CN 104050269B CN 201410283777 A CN201410283777 A CN 201410283777A CN 104050269 B CN104050269 B CN 104050269B
- Authority
- CN
- China
- Prior art keywords
- record
- sequence
- character string
- field
- character
- 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
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
一种日志压缩方法及装置、解压缩方法及装置,所述日志压缩方法包括:读取所述日志中的记录;将所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息;通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串;创建压缩文件,所述压缩文件包括所述压缩文件的头信息;将所得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所创建的压缩文件中。上述的方案,可以有效提高日志的压缩率,简单高效。
Description
技术领域
本发明涉及数据压缩技术领域,特别是涉及一种日志压缩方法及装置、解压缩方法及装置。
背景技术
互联网产生大数据,随着互联网技术的不断发展,数据也将像能源、材料一样,成为战略性资源。如何利用数据资源深挖创新、提升效益,是诸多IT企业的追求目标。互联网所产生的大数据,主要来自于对互联网访问日志的深度分析。因此,对互联网访问日志的收集和存储成为关键。尤其是日志存储,由于不经压缩的原始日志所占存储空间过大,必须对原始日志进行压缩,才能达到长期保存目的。
现有技术中,存在着各种文件压缩方法,可以应用于互联网访问日志记录的压缩。但是,现有的各种文件压缩方法由于为充分考量互联网访问日志的特点,因而存在着压缩率低的问题。
发明内容
本发明实施例解决的问题是如何有效地提高日志文件的压缩率。
为解决上述问题,本发明实施例提供了一种日志压缩方法,所述方法包括:
读取所述日志中的记录,所述记录包括至少一个字段,所述字段中包括至少一个字符组成的字符串;
将所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息;
通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串;
创建压缩文件,所述压缩文件包括所述压缩文件的头信息,所述头信息包括用于标识所述日志压缩方法的标识信息、所述日志中记录的行数信息、所述日志的记录所包括的字段个数的信息;
将所得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所创建的压缩文件中。
可选地,所述日志的记录的所述字段中的字符串之间有序排列,所述通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志的记录的所述字段中的字符串进行合并处理,得到合并字符串,包括:
遍历所述日志的记录的所述字段中的字符串;
在第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述第一位序的记录的所述字段中新的字符串;
将所述日志中非第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数;
将所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符去掉,留下非重复字符,得到所述非第一位序的记录的所述字段的新的字符串,所述非第一位序的记录的所述字段的新的字符串包括所述非第一位序的记录的位序信息和所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符的个数的信息;
以得到的所述第一位序的记录的所述字段中新的字符串作为开头,将所生成的非第一位序的记录的所述字段中新的字符串依次添加到所述第一位序的记录的所述字段中新的字符串之后,且所述第一位序的记录的所述字段中新的字符串与非第一位序的记录的所述字段中新的字符串之间、以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
可选地,当所述日志的记录的所述字段中的字符串之间无序排列时,将所述日志的记录的所述字段中的字符串进行有序排列,并执行所述通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的操作。
可选地,所述通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串,包括:
遍历所述日志的记录的所述字段中的字符串,获取所述日志的记录中所述字段的字符串;
将所述日志的记录的所述字段中的字符串采用预设字符串进行代替,得到新的字符串,所述预设字符串的字符数量小于所述日志的记录的所述字段中的字符串的字符数量;
将所得到的新的字符串进行合并,得到合并字符串,在所述合并字符串中,所得到的新的字符串之间设置有分隔标识。
一种日志解压缩方法,其特征在于,包括:
获取并解压缩压缩文件中经过压缩的所述日志的记录中所述字段的合并字符串;
通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,所述恢复后的所述日志的记录中所述字段的字符串包括所述记录在所述日志中的位序信息;
将恢复后具有相同的位序信息的字段中的字符串按照顺序拼接,得到所述记录;
将拼接得到的记录按照所述记录的位序信息进行排序,得到解压缩后的日志。
可选地,通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,包括:
获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在所述日志中的位序信息;
获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与排序后第一位序的记录的所述字段之间非重复的字符,二者之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息;
根据所述排序后第一位序的记录的所述字段与所述排序后非第一位序的记录的所述字段之间重复字符的个数信息,在所获取的相邻两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后非第一位序的记录的所述字段和所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述非第一位序的所述记录的所述字段的字符串。
可选地,通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,包括:
获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在所述日志中的位序信息;
获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间非重复的字符,二者之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息;
根据所述排序后第一位序的记录的所述字段与所述排序后非第一位序的记录的所述字段之间重复字符的个数信息,在所获取的相邻两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后非第一位序的记录的所述字段和所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述非第一位序的所述记录的所述字段的字符串。
可选地,通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,包括:
获取所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串;
将所获取的所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串中的预设字符串采用相应的重复字符串代替,得到恢复后的所述日志的记录的所述字段的字符串,所述预设字符串的字符数量小于所述重复字符串的字符数量。
本发明实施例还提供了一种日志压缩装置,包括:
读取单元,适于读取所述日志中的记录,所述记录包括至少一个字段,所述字段中包括至少一个字符组成的字符串;
存储单元,适于将所述读取单元所读取的所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息;
合并单元,适于通过将所述存储单元中存储的所述日志的记录的所述字段中的字符串分别与所选取的基准记录的相同字段中的字符串进行比较,将所述存储单元中存储的所述日志中记录中所述字段的字符串进行合并处理,得到合并字符串;
创建单元,适于创建压缩文件,所述压缩文件包括所述压缩文件的头信息,所述头信息包括用于标识所述日志压缩方法的标识信息、所述日志中记录的行数信息、所述日志的记录所包括的字段个数的信息;
压缩单元,适于将合并单元合并得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所述创建单元所创建的压缩文件中。
可选地,所述合并单元包括:
第一遍历子单元,适于遍历所述日志的记录的所述字段中的字符串,所述日志的记录的所述字段中的字符串之间有序排列;
第一添加子单元,适于在第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述第一位序的记录的所述字段中新的字符串;
第一比较子单元,适于将所述日志中非第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数;
第一生成子单元,适于将所述第一比较子单元所获取的所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间重复的字符去掉,留下非重复字符,得到所述非第一位序的记录的所述字段中的新的字符串,所述非第一位序的记录的所述字段中的新的字符串包括所述非第一位序的记录的位序信息和所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符的个数的信息;
第一合并子单元,适于以所述第一添加子单元得到所述第一位序的记录的所述字段中新的字符串作为开头,将所述第一生成子单元所生成的非第一位序的记录的所述字段中的新的字符串,依次添加到所述第一添加子单元得到的所述第一位序的记录的所述字段中新的字符串之后,且在所述第一位序的记录的所述字段中新的字符串与所述非第一位序的记录的所述字段中的新的字符串之间,以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
可选地,所述合并单元包括:
排序子单元,适于将所述日志的记录的所述字段中的字符串有序排列,所述日志的记录的所述字段中的字符串之间无序排列;
第二遍历子单元,适于遍历排序后的所述日志的记录的所述字段中的字符串;
第二添加子单元,适于在排序后第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述排序后第一位序的记录的所述字段中新的字符串;
第二比较子单元,适于将排序后非第一位序的记录的所述字段中的字符串与所述排序后第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数;
第一生成子单元,适于将排序后非第一位序的记录的所述字段中的字符串与排序后第一位序的记录的所述字段的字符串之间的重复字符去掉,留下非重复字符,生成所述排序后非第一位序的记录的所述字段中新的字符串,所述排序后非第一位序的记录的所述字段中新的字符串包括所述排序后非第一位序的记录位序信息和所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符个数的信息;
第二合并子单元,适于将所述第二生成子单元所生成的排序后非第一位序的记录的所述字段中新的字符串依次添加到所述排序后第一位序的记录的所述字段的新的字符串之后,且所述排序后第一位序的记录的所述字段的新的字符串与排序后非第一位序的记录的所述字段中新的字符串,以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
可选地,所述合并单元包括:
第三遍历子单元,适于遍历所述日志的记录的所述字段中的字符串,获取所述日志中记录的所述字段的字符串中的重复字符串;
第一替换子单元,适于将所述日志的记录的所述字段中的字符串采用预设字符串进行代替,得到新的字符串,所述日志的记录的所述字段中的字符串的字符数量大于所述预设字符串的字符数量;
第三合并子单元,适于将所述第一替换子单元得到的新的字符串进行合并,得到合并字符串,在所述合并字符串中,所得到的新的字符串之间设置有分隔标识,得到合并字符串。
本发明实施例提供了一种日志解压缩装置,包括:
解压缩单元,适于获取并解压缩所述压缩文件中经过压缩的所述日志的记录中字段的合并字符串,所述合并字符串;
恢复单元,适于通过将所述解压缩单元解压缩得到的合并字符串与选取的基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录的所述字段中的字符串,所述恢复后的所述日志的记录的所述字段中的字符串包括所述记录在所述日志中的位序信息;
拼接单元,适于所述恢复单元得到的具有恢复后相同位序信息的的字段的字符串按照顺序拼接,得到所述日志的记录;
排序单元,适于将所述拼接单元拼接得到的日志的记录按照所述日志的记录的位序信息进行排序后,得到解压缩后的日志。
可选地,所述恢复单元包括:
第一获取子单元,适于获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在日志中的位序信息;
第二获取子单元,适于获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间非重复的字符,所述非第一位序的记录的字段与所述第一位序的记录的所述字段之间重复字符的个数信息,以及所述非第一位序的记录在所述日志中的位序信息;
第一恢复子单元,适于根据所述第一获取子单元获取所述合并字符串中第一分隔标识之前的字符串和所述第三获取子单元所获取的第一位序的记录的所述字段的字符串与所述第一位序的记录的所述字段之间重复字符的个数信息,在所述两个分隔标识之间的字符串中所述非重复的字符前,添加所述第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段之间的重复字符,并同时删除所述非第一位序的记录的字段与所述第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的非第一位序的所述记录的所述字段的字符串。
可选地,所述恢复单元包括:
第三获取子单元,适于获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在日志中的位序信息;
第四获取子单元,适于获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间非重复的字符,所述排序后非第一位序的记录的字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息;
第二恢复子单元,适于根据所述第三获取子单元获取的所述合并字符串中第一分隔标识之前的字符串和所述第四获取子单元所获取的排序后第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,在所述两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述排序后非第一位序的记录的所述字段中的字符串。
可选地,所述恢复单元包括:
第五获取子单元,适于获取所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串;
第二替换子单元,适于将所述第五获取子单元所获取的所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的预设字符串采用所述日志的记录的所述字段中的字符串代替,得到恢复后的所述日志的记录的所述字段的字符串
与现有技术相比,本发明的技术方案具有以下的优点:
上述的技术方案,通过将日志记录的各字段的字符串进行相应的合并处理,可以显著缩小各字节字符串的大小,然后,再将经过合并处理的各字段的字符串添加到压缩文件中,可以有效提高日志的压缩率,简单高效。
附图说明
图1是本发明实施例中的一种日志压缩方法的流程图;
图2是本发明实施例中的一种通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的流程图;
图3是本发明实施例中的一种通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的流程图;
图4是本发明实施例中的一种通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的流程图;
图5是本发明实施例中的一种日志解压缩方法的流程图;
图6是本发明实施例中的一种将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串的流程图;
图7是本发明实施例中的又一种将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串的流程图;
图8是本发明实施例中的又一种将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串的流程图;
图9是本发明实施例中的一种日志压缩装置的结构示意图;
图10是本发明实施例中的一种合并单元的结构示意图;
图11是本发明实施例中的又一种合并单元的结构示意图;
图12是本发明实施例中的又一种合并单元的结构示意图;
图13是本发明实施例中的一种日志解压缩装置的结构示意图;
图14是本发明实施例中的一种恢复单元的结构示意图;
图15是本发明实施例中的又一种恢复单元的结构示意图;
图16是本发明实施例中的又一种恢复单元的结构示意图。
具体实施方式
互联网访问日志中的记录由无数条用户访问记录所组成,每条记录由相对固定的字段所组成,且不同记录的同一字段较长,且同一字段之间存在着较多重复的字符。例如,互联网互联协议(Internet Protocol,简称IP)地址、统一资源定位符(Uniform ResourceLocator,简称URL),cookie(指网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据)等。
现有技术中的文件压缩方法,由于未考虑到互联网日志的上述特点,因此,存在着日志压缩率低的问题。
为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过将按照字段存放在一起的字符串经过合并处理,可以缩小合并字符串的字符数量,从而可以有效提高互联网日志的压缩率。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1示出了本发明实施例中的一种日志压缩方法的流程图。如图1所示的日志压缩方法,包括:
步骤S11:读取所述日志中的记录。
在具体实施中,日志中的每条记录可以包括一个以上的字段,每个字段中又可以包括一个以上的字符组成的字符串。
在具体实施中,所述日志可以包括互联网访问日志。互联网访问日志中记录了用户对相关网站的浏览记录,通过对日志中的记录进行分析,可以得出用户访问相关网站的习惯,网站是否为搜索引擎青睐等。
步骤S12:将所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息。
在具体实施中,日志中的每条记录具有相对固定的字段。由于每条记录的相同字段中的字符串之间通常具有规律性。例如,日志的记录的相同字段的字符串之间具有重复的字符串等。因此,可以将日志的记录按照字段存放,也即是将日志中的每条记录的相同的字段存放在一起,以便于对日志的记录的所述字段中的字符串进行合并处理。
在具体实施中,为了在解压缩的时候,将合并在一起的日志记录的所述字段进行恢复,在将日志的记录按照字段存放时,可以在所存储的记录的字段中添加所述记录在所述日志中的位序信息。通过位序信息,可以将同一条记录的每个字段重新拼接在一起。
步骤S13:通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串。
在具体实施中,可以根据各个字段的字符串的特点,将每条记录的相同字段中字符串与选取的基准记录进行比较,并根据比较结果进行合并处理,以减少日志的记录的字符数量。在日志中的记录的字符数量减少的情况下,再将日志进行压缩,将可以有效减少压缩的日志的大小,从而可以有效提高日志的压缩率,节省日志的存储空间。
步骤S14:创建压缩文件,所述压缩文件包括所述压缩文件的头信息。
在具体实施中,所述头信息可以包括所述日志的标识信息、所述日志中记录的行数信息、所述日志的记录的所包括的字段个数的信息。其中,所述日志的标识信息用于对于所述的日志压缩方法进行标识。
步骤S15:将所得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所创建的压缩文件中。
在具体实施中,可以根据日志记录的不同字段中字符串的特点,对日志的记录的所述字段中的字符串进行合并处理。
图2示出了本发明实施例中的一种通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的流程图,以下通过具体步骤进行详细说明:
步骤S21:遍历所述日志的记录的所述字段中的字符串。
在具体实施中,由于所述日志的记录的所述字段中的字符串之间有序排列,通过遍历所述日志的记录的所述字段中的字符串,可以将所述日志的记录的所述字段中的字符串分别与选取的基准记录的所述字段中的字符串进行比较,并进行相应的处理。
步骤S22:在第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述第一位序的记录的所述字段中新的字符串。
在具体实施中,所述日志的每条记录的相同字段中的字符串有序排列,例如,按照时间顺序进行排列。因此,可以选取第一位序的记录的所述字段中的字符串作为基准字符串,将其他的非第一位序的记录的所述字段中的字符串与选取的基准字符串进行比较。
在具体实施中,由于非第一位序的记录的所述字段中的字符串将与第一位序的记录的所述字段进行比较,为了保持合并后的以分隔标识分隔的字符串的结构的一致性,可以在第一位序的记录的所述字段中添加值为零的重复字符的个数的信息,从而可以得到第一位序的所述字段中新的字符串。
步骤S23:将所述日志中非第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数。
在具体实施中,通过将日志中的所有非第一位序的记录的所述字段与第一位序的记录的所述字段中字符串逐一进行比较,可以得出两者之间具有的重复字符以及所述重复字符的个数信息。
步骤S24:将所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符去掉,留下非重复字符,得到所述非第一位序的记录的所述字段的新的字符串,所述非第一位序的记录的所述字段的新的字符串包括所述非第一位序的记录的位序信息和所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符的个数的信息。
在具体实施中,通过将日志中的所有非第一位序的记录的所述字段与第一位序的记录的所述字段中字符串按照字符逐一进行比较,将非第一位序的记录的所述字段与第一位序的记录的所述字段之间具有的重复字符串删除,留下非重复的字符,并在非重复的字符串前添加二者之间具有的重复字符的个数信息,从而得到非第一位序记录的所述字段中新的字符串。由于在非第一位序记录的所述字段中新的字符串中不再保留与第一位序记录的所述字段中重复的字符,因此,可以减少非第一位序的记录的所述字段中字符串的字符数量。
步骤S25:将所生成的非第一位序的记录的所述字段中新的字符串依次添加到所述第一位序的记录的所述字段中新的字符串之后,且所述第一位序的记录的所述字段中新的字符串与非第一位序的记录的所述字段中新的字符串之间、以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
在具体实施中,分隔标识可以根据实际的需要进行设置。例如,可以使用“\t”作为分隔标识,以对合并字符串中的新的字符串起到分隔和标识的作用。
图2所示的日志的记录的所述字段中的字符串的合并方法可以用于合并有序排列的日志的记录的所述字段中的字符串。例如,日志的记录中的时间戳字段,当字段中的字符串序列如:"2014-04-2813:52:23"、"2014-04-2813:53:31"、"2014-04-2814:00:09"、"2014-04-2814:03:06",可将其合并为“01002014-04-2813:52:23\t02141:31\t031114:00:09\t04114:03:06”。
由此可见,合并前的时间戳字段的字符串合并后的长度与为经过图2所述的合并处理得到的时间戳字段的合并字符串的长度相比,字符数量明显减少。
在具体实施中,当日志的每条记录的相同的字段的字符串之间具有顺序的时候,可以采用图2所示的方式,对日志中的每条记录的相同字段的字符串进行合并处理。
图3示出了本发明实施例中的另一种通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的流程图,以下通过具体步骤进行详细说明:
步骤S31:将所述日志的记录的所述字段中的字符串进行有序排列,所述日志的记录的所述字段中的字符串之间无序排列。
步骤S32:遍历所述日志的记录的所述字段中的字符串。
步骤S33:在排序后第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述排序后第一位序的记录的所述字段中新的字符串。
步骤S34:将所述日志中排序后非第一位序的记录的所述字段中的字符串与所述排序后第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数。
步骤S35:将所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符去掉,留下非重复字符,得到所述排序后非第一位序的记录的所述字段的新的字符串,所述排序后非第一位序的记录的所述字段的新的字符串包括所述排序后非第一位序的记录的位序信息和所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符的个数的信息。
步骤S36:将所生成的排序后非第一位序的记录的所述字段中新的字符串依次添加到所述排序后第一位序的记录的所述字段中新的字符串之后,且所述排序后第一位序的记录的所述字段中新的字符串与排序后非第一位序的记录的所述字段中新的字符串之间、以及所述排序后非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
与图2不同的是,采用图3中的方法所处理的日志记录的所述字段中字符串之间无序排列。因此,可以首先执行步骤S31:将所述日志的记录的所述字段中的字符串进行有序排列。然后,再以排序后第一位序的日志的记录的字段中的字符串作为基准字符串,将排序后的非第一位序的日志的记录的字段中的字符串逐一与排序后第一位序的日志的记录的字段中的字符串进行比较并合并。
在具体实施中,图3所示的方法可以用于日志记录的字符串数量较多,且部分重复的字段进行合并处理。例如,网络之间互连的协议(Internet Protocol,简称IP)字段、统一资源定位符(Uniform Resource Locator,简称URL)字段等。
图4示出了本发明实施例中的另一种通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的流程图,以下通过具体步骤进行详细说明:
步骤S41:遍历所述日志的记录的所述字段中的字符串,获取所述日志的记录中所述字段的字符串。
在具体实施中,所述日志的记录的所述字段中的字符串相同。
步骤S42:将所述日志的记录的所述字段中的字符串采用预设字符串进行代替,得到新的字符串。
在具体实施中,所述预设字符串的字符数量可以远远小于所述日志的记录的所述字段中的字符串的字符数量。因此,可以有效缩小合并字符串中的字符的数量。
步骤S43:将所得到的新的字符串进行合并,得到合并字符串,在所述合并字符串中,所得到的新的字符串之间设置有分隔标识。
图4所示的日志记录的所述字段中的字符串的合并处理方法,适用于处理的日志记录的字段具有:所述日志中的每条记录的所述字段中的字符串完全相同,且字符串中的字符数量较多的特点。例如,图片访问日志记录的代理(agent)字段会大量出现如“Mozilla/4.0(compatible;MSIE 7.0;Windows NT 6.2;WOW64;Trident/6.0;.NET4.0E;.NET4.0C;InfoPath.2)”。由于,此种日志的记录的所述字段的类型较少,且字段中的字符串相同,因此,可以建立日志的记录的字段中的字符串与预设字符串之间的对应关系,将所述日志的记录的所述字段进行合并处理时,可以将日志中的每条记录中的所述字段中的字符串作为一个整体,分别采用预设字符串进行代替。由于预设字符串的字符数量可以远远小于与之对应的所述日志的记录的字段中的字符串数量,因此,可以在很大程度上减少合并字符串中的字符数量,进而可以提高压缩率。
图5示出了本发明实施例中的一种日志解压缩方法的流程图。如图5所示的日志解压缩方法,可以包括:
步骤S51:获取并解压缩压缩文件中经过压缩的所述日志的记录中所述字段的合并字符串。
在具体实施中,通过解压缩所述压缩文件,可以得到日志的记录中所包括的各个字段的合并字符串。
步骤S52:通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,所述恢复后的所述日志的记录中所述字段的字符串包括所述记录在所述日志中的位序信息。
在具体实施中,由于合并字符串是日志记录的所述字段中的字符串与选取的基准字符串进行比较得到的,因而可以通过将得到的合并字符串与基准字符串进行比较,以恢复日志的记录的字段中的字符串。
步骤S53:将恢复后具有相同的位序信息的字段中的字符串按照顺序拼接,得到所述记录。
在具体实施中,恢复后得到的日志记录的字段的字符串可以包括有所述记录在日志中的位序信息,通过将具有相同位序信息的字段的字符串按照各字段在记录的顺序拼接在一起,可以得到所述记录。
步骤S54:将拼接得到的记录按照所述记录的位序信息进行排序,得到解压缩后的日志。
在具体实施中,所述记录的位序信息用于标志所述记录在日志中的位置,通过将拼接得到的记录按照所述记录的位序信息进行排序,便可以恢复记录在日志中的位置,得到解压缩后的日志。
图6示出了本发明实施例中的一种将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串的流程图,以下通过具体的步骤说明:
步骤S61:获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在所述日志中的位序信息。
步骤S62:获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括非第一位序的记录的所述字段与排序后第一位序的记录的所述字段之间非重复的字符,二者之间重复字符的个数信息,以及所述非第一位序的记录在所述日志中的位序信息。
步骤S63:根据所述第一位序的记录的所述字段与所述非第一位序的记录的所述字段之间重复字符的个数信息,在所获取的相邻两个分隔标识之间的字符串中所述非重复的字符前,添加所述非第一位序的记录的所述字段和所述第一位序的记录的所述字段之间的重复字符,并同时删除所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述非第一位序的所述记录的所述字段的字符串。
在具体实施中,图6所述的日志的记录的字段中的字符串的恢复方法为图2所示的日志的记录的字段的字符串的合并方法的逆过程,请参照前述对于图2所示的日志的记录的字段中的字符串的合并方法对图6所示的日志的记录的字段中的字符串的恢复方法进行理解。
图7示出了本发明实施例中的又一种将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串的流程图,以下通过具体的步骤说明:
步骤S71:获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在所述日志中的位序信息。
步骤S72:获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间非重复的字符,二者之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息。
步骤S73:根据所述排序后第一位序的记录的所述字段与所述排序后非第一位序的记录的所述字段之间重复字符的个数信息,在所获取的相邻两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后非第一位序的记录的所述字段和所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述非第一位序的所述记录的所述字段的字符串。
在具体实施中,图7所述的日志的记录的字段中的字符串的恢复方法为图3所示的日志的记录的字段的字符串的合并方法的逆过程,请参照前述对于图3所示的日志的记录的字段中的字符串的合并方法对图7所示的日志的记录的字段中的字符串的恢复方法进行理解。
图8示出了本发明实施例中的又一种将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串的流程图,以下通过具体的步骤说明:
步骤S81:获取所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串。
步骤S82:将所获取的所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串中的预设字符串采用相应的所述日志的记录的所述字段中的字符串代替,得到恢复后的所述日志的记录的所述字段的字符串,所述预设字符串的字符数量小于所述日志的记录的所述字段中的字符串的字符数量。
在具体实施中,图8所述的日志的记录的字段中的字符串的恢复方法为图4所示的日志的记录的字段的字符串的合并方法的逆过程,请参照前述对于图2所示的日志的记录的字段中的字符串的合并方法对图4所示的日志的记录的字段中的字符串的恢复方法进行理解。
图9示出了本发明实施例中的一种日志压缩装置的结构示意图。如图9所示的日志压缩装置90,可以包括读取单元91、存储单元92、合并单元93、创建单元94和压缩单元95,读取单元91、存储单元92、合并单元93依次连接,压缩单元95分别与合并单元93和创建单元94相连接。其中:
读取单元91,适于读取所述日志中的记录,所述记录包括至少一个字段,所述字段中包括至少一个字符组成的字符串。
存储单元92,适于将所述读取单元91所读取的所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息。
合并单元93,适于通过将所述存储单元92中存储的所述日志的记录的所述字段中的字符串分别与所选取的基准记录的相同字段中的字符串进行比较,将所述存储单元中存储的所述日志中记录中所述字段的字符串进行合并处理,得到合并字符串。
创建单元94,适于创建压缩文件,所述压缩文件包括所述压缩文件的头信息,所述头信息包括用于标识所述日志压缩方法的标识信息、所述日志中记录的行数信息、所述日志的记录所包括的字段个数的信息。
压缩单元95,适于将合并单元93合并得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所述创建单元94所创建的压缩文件中。
图10示出了本发明实施例中的一种合并单元的结构示意图。如图10所示的合并单元100,可以包括第一遍历子单元101、第一添加子单元102、第一比较子单元103、第一生成子单元104、第一合并子单元105,第一遍历子单元101分别与第一添加子单元102和第一比较子单元103连接,第一比较子单元103、第一生成子单元104和第一合并子单元105依次连接,且第一添加子单元102还与第一合并子单元105相连接。其中:
第一遍历子单元101,适于遍历所述日志的记录的所述字段中的字符串。在具体实施中,所述日志的记录的所述字段中的字符串之间有序排列。
第一添加子单元102,适于在第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述第一位序的记录的所述字段中新的字符串。
第一比较子单元103,适于将所述日志中非第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数。
第一生成子单元104,适于将所述第一比较子单元103所获取的非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间重复的字符去掉,留下非重复字符,得到所述非第一位序的记录的所述字段中的新的字符串。在具体实施中,所述非第一位序的记录的所述字段中的新的字符串包括所述非第一位序的记录的位序信息和所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符的个数信息。
第一合并子单元105,适于将所述第一生成子单元104所生成的非第一位序的记录的所述字段中的新的字符串,依次添加到所述第一添加子单元102得到的所述第一位序的记录的所述字段中新的字符串之后,且在所述第一位序的记录的所述字段中新的字符串与所述非第一位序的记录的所述字段中的新的字符串之间,以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
图11示出了本发明实施例中的又一种合并单元的结构示意图。如图11所示的合并单元110,可以包括排序子单元111、第二遍历子单元112、第二添加子单元113、第二比较子单元114、第二生成子单元115和第二合并子单元116,第二遍历子单元112分别与排序子单元111、第二添加子单元113、第二遍历子单元114相连接,第二生成子单元115分别与第二比较子单元114和第二合并子单元116相连接,第二添加子单元113还与第二合并子单元116相连接。其中:
排序子单元111,适于将所述日志的记录的所述字段中的字符串有序排列,所述日志的记录的所述字段中的字符串之间无序排列。
第二遍历子单元112,适于遍历经过所述排序子单元111排序后的所述日志的记录的所述字段中的字符串。
第二添加子单元113,适于在经过所述排序子单元111排序后第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述排序后第一位序的记录的所述字段中新的字符串。
第二比较子单元114,适于将所述排序后非第一位序的记录的所述字段中的字符串与所述排序后第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数。
第二生成子单元115,适于将所述第二比较子单元114获取的所述排序后非第一位序的记录的所述字段与排序后第一位序的记录的所述字段之间的重复字符去掉,留下非重复字符,生成所述排序后非第一位序的记录的所述字段中新的字符串,所述排序后非第一位序的记录的所述字段中新的字符串包括第二比较子单元114获取的所述排序后非第一位序的记录位序信息与所述排序后第一位序的记录的所述字段之间的重复字符个数的信息。
第二合并子单元116,适于将所述第二生成子单元115所生成的排序后非第一位序的记录的所述字段中新的字符串依次添加到所述排序后第一位序的记录的所述字段的新的字符串之后,且所述排序后第一位序的记录的所述字段的新的字符串与排序后非第一位序的记录的所述字段中新的字符串,以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
图12示出了本发明实施例中的又一种合并单元的结构示意图。如图12所示的合并单元120,可以包括依次连接的第三遍历子单元121、第一替换子单元122和第三合并子单元123。其中:
第三遍历子单元121,适于遍历所述日志的记录的所述字段中的字符串,获取所述日志中记录的所述字段的字符串中的重复字符串。
第一替换子单元122,适于将所述日志的记录的所述字段中的字符串采用预设字符串进行代替,得到新的字符串,所述日志的记录的所述字段中的字符串的字符数量大于所述预设字符串的字符数量。
第三合并子单元123,适于将所述第一替换子单元122得到的新的字符串进行合并,得到合并字符串,在所述合并字符串中,所得到的新的字符串之间设置有分隔标识,得到合并字符串。
图13示出了本发明实施例中一种日志解压缩装置的结构示意图。如图13所示的日志解压缩装置130,可以包括依次连接的解压缩单元131、恢复单元132、拼接单元133和排序单元134。其中:
解压缩单元131,适于获取并解压缩所述压缩文件中经过压缩的所述日志的记录中字段的合并字符串。
恢复单元132,适于通过将所述解压缩单元131解压缩得到的合并字符串与选取的基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录的所述字段中的字符串,所述恢复后的所述日志的记录的所述字段中的字符串包括所述记录在所述日志中的位序信息。
拼接单元133,适于将所述恢复单元132得到的具有恢复后相同位序信息的字段的字符串按照顺序拼接,得到所述日志的记录。
排序单元134,适于将所述拼接单元133拼接得到的日志的记录按照所述日志的记录的位序信息进行排序后,得到解压缩后的日志。
图14示出了本发明实施例中一种恢复单元的结构示意图。如图14所示的恢复单元140,可以包括第一获取子单元141、第二获取子单元142和第一恢复子单元143,第一恢复子单元143分别与第一获取子单元141和第二获取子单元142相连接。其中:
第一获取子单元141,适于获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在日志中的位序信息。
第二获取子单元142,适于获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间非重复的字符,所述非第一位序的记录的字段与所述第一位序的记录的所述字段之间重复字符的个数信息,以及所述非第一位序的记录在所述日志中的位序信息。
第一恢复子单元143,适于根据所述第一获取子单元141所获取的所述合并字符串中第一分隔标识之前的字符串和第二获取子单元142所获取的第一位序的记录的所述字段的字符串与所述第一位序的记录的所述字段的字符串之间重复字符的个数信息和,在所述两个分隔标识之间的字符串中所述非重复的字符前,添加所述第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段之间的重复字符,并同时删除所述非第一位序的记录的字段与所述第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的非第一位序的所述记录的所述字段的字符串。
图15示出了本发明实施例中又一种恢复单元的结构示意图。如图15所示的恢复单元150,可以包括第三获取子单元151、第四获取子单元152和第二恢复子单元153,第二恢复子单元153分别与第三获取子单元151和第四获取子单元152相连接。其中:
第三获取子单元151,适于获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在日志中的位序信息;
第四获取子单元152,适于获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间非重复的字符,所述排序后非第一位序的记录的字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息;
第二恢复子单元153,适于根据第三获取子单元151获取的所述合并字符串中第一分隔标识之前的字符串和第四获取子单元152所获取的排序后第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,在所述两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述排序后非第一位序的记录的所述字段中的字符串。
图16示出了本发明实施例中又一种恢复单元的结构示意图。如图16所示的恢复单元160,可以包括依次连接的第五获取子单元161、第二替换子单元162。其中:
第五获取子单元161,适于获取所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串。
第二替换子单元162,适于将所述第五获取子单元161所获取的所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串中的相应的预设字符串采用所述日志的记录的所述字段中的字符串代替,得到恢复后的所述日志的记录的所述字段的字符串。在具体实施中,所述日志的记录的所述字段中的字符串与所述预设字符串具有一一对应的关系。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (11)
1.一种日志压缩方法,其特征在于,包括:
读取所述日志中的记录,所述记录包括至少一个字段,所述字段中包括至少一个字符组成的字符串;
将所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息;
通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串,具体包括:遍历所述日志的记录的所述字段中的字符串;在第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述第一位序的记录的所述字段中新的字符串;将所述日志中非第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数;将所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符去掉,留下非重复字符,得到所述非第一位序的记录的所述字段的新的字符串,所述非第一位序的记录的所述字段的新的字符串包括所述非第一位序的记录的位序信息和所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间的重复字符的个数的信息;以得到的所述第一位序的记录的所述字段中新的字符串作为开头,将所生成的非第一位序的记录的所述字段中新的字符串依次添加到所述第一位序的记录的所述字段中新的字符串之后,且所述第一位序的记录的所述字段中新的字符串与非第一位序的记录的所述字段中新的字符串之间、以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串;
创建压缩文件,所述压缩文件包括所述压缩文件的头信息,所述头信息包括用于标识所述日志压缩方法的标识信息、所述日志中记录的行数信息、所述日志的记录所包括的字段个数的信息;
将所得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所创建的压缩文件中。
2.根据权利要求1所述的日志压缩方法,其特征在于,当所述日志的记录的所述字段中的字符串之间无序排列时,将所述日志的记录的所述字段中的字符串进行有序排列,并执行所述通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串的操作。
3.根据权利要求1所述的日志压缩方法,其特征在于,所述通过将所述日志中记录的所述字段的字符串分别与所选取的基准记录的所述字段中的字符串进行比较,将所述日志中记录的所述字段的字符串进行合并处理,得到合并字符串,包括:
遍历所述日志的记录的所述字段中的字符串,获取所述日志的记录的所述字段中的字符串,所述日志的记录中所述字段的字符串相同;
将所述日志的记录的所述字段中的字符串采用预设字符串进行代替,得到新的字符串,所述预设字符串的字符数量小于所述日志的记录的所述字段中的字符串的字符数量;
将所得到的新的字符串进行合并,得到合并字符串,在所述合并字符串中,所得到的新的字符串之间设置有分隔标识。
4.一种日志解压缩方法,其特征在于,包括:
获取并解压缩压缩文件中经过压缩的所述日志的记录中字段的合并字符串;
通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,具体包括:获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在所述日志中的位序信息;获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与排序后第一位序的记录的所述字段之间非重复的字符,二者之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息;根据所述排序后第一位序的记录的所述字段与所述排序后非第一位序的记录的所述字段之间重复字符的个数信息,在所获取的相邻两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后非第一位序的记录的所述字段和所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述非第一位序的所述记录的所述字段的字符串;其中,所述恢复后的所述日志的记录中所述字段的字符串包括所述记录在所述日志中的位序信息;
将恢复后具有相同的位序信息的字段中的字符串按照顺序拼接,得到所述记录;
将拼接得到的记录按照所述记录的位序信息进行排序,得到解压缩后的日志。
5.根据权利要求4所述的日志解压缩方法,其特征在于,通过将合并字符串与基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录中所述字段的字符串,包括:
获取所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串;
将所获取的所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串中的预设字符串采用相应的所述日志的记录的所述字段中的字符串代替,得到恢复后的所述日志的记录的所述字段的字符串,所述预设字符串的字符数量小于所述日志的记录的所述字段中的字符串的字符数量。
6.一种日志压缩装置,其特征在于,包括:
读取单元,适于读取所述日志中的记录,所述记录包括至少一个字段,所述字段中包括至少一个字符组成的字符串;
存储单元,适于将所述读取单元所读取的所述日志的记录按照字段进行存放,在所存放的记录的字段中添加所述记录在所述日志中的位序信息;
合并单元,适于通过将所述存储单元中存储的所述日志的记录的所述字段中的字符串分别与所选取的基准记录的相同字段中的字符串进行比较,将所述存储单元中存储的所述日志中记录中所述字段的字符串进行合并处理,得到合并字符串;所述合并单元包括:第一遍历子单元,适于遍历所述日志的记录的所述字段中的字符串,所述日志的记录的所述字段中的字符串之间有序排列;第一添加子单元,适于在第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述第一位序的记录的所述字段中新的字符串;第一比较子单元,适于将所述日志中非第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数;第一生成子单元,适于将所述第一比较子单元所获取的所述非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间重复的字符去掉,留下非重复字符,得到所述非第一位序的记录的所述字段中的新的字符串,所述非第一位序的记录的所述字段中的新的字符串包括所述非第一位序的记录的位序信息与所述第一位序的记录的所述字段之间的重复字符的个数的信息;第一合并子单元,适于以所述第一添加子单元得到所述第一位序的记录的所述字段中新的字符串作为开头,将所述第一生成子单元所生成的非第一位序的记录的所述字段中的新的字符串,依次添加到所述第一添加子单元得到的所述第一位序的记录的所述字段中新的字符串之后,且在所述第一位序的记录的所述字段中新的字符串与所述非第一位序的记录的所述字段中的新的字符串之间,以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串;
创建单元,适于创建压缩文件,所述压缩文件包括所述压缩文件的头信息,所述头信息包括用于标识所述日志压缩方法的标识信息、所述日志中记录的行数信息、所述日志的记录所包括的字段个数的信息;
压缩单元,适于将合并单元合并得到的合并字符串进行压缩,并将压缩后的合并字符串按照所述字段在所述记录的位置顺序依次添加到所述创建单元所创建的压缩文件中。
7.根据权利要求6所述的日志压缩装置,其特征在于,所述合并单元包括:
排序子单元,适于将所述日志的记录的所述字段中的字符串有序排列,所述日志的记录的所述字段中的字符串之间无序排列;
第二遍历子单元,适于遍历排序后的所述日志的记录的所述字段中的字符串;
第二添加子单元,适于在排序后第一位序的记录的所述字段中加入值为零的重复字符个数的信息,得到所述排序后第一位序的记录的所述字段中新的字符串;
第二比较子单元,适于将所述排序后非第一位序的记录的所述字段中的字符串与所述排序后第一位序的记录的所述字段中的字符串进行比较,获取并记录二者之间重复字符的个数;
第二生成子单元,适于将所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符去掉,留下非重复字符,生成所述排序后非第一位序的记录的所述字段中新的字符串,所述排序后非第一位序的记录的所述字段中新的字符串包括所述排序后非第一位序的记录位序信息与所述排序后第一位序的记录的所述字段之间的重复字符个数的信息;
第二合并子单元,适于将所述第二生成子单元生成的排序后非第一位序的记录的所述字段中新的字符串依次添加到所述排序后第一位序的记录的所述字段的新的字符串之后,且所述排序后第一位序的记录的所述字段的新的字符串与排序后非第一位序的记录的所述字段中新的字符串,以及所述非第一位序的记录的所述字段中的新的字符串之间分别设置有分隔标识,得到合并字符串。
8.根据权利要求6所述的日志压缩装置,其特征在于,所述合并单元包括:
第三遍历子单元,适于遍历所述日志的记录的所述字段中的字符串,获取所述日志中记录的所述字段中的字符串;
第一替换子单元,适于将所述日志的记录的所述字段中的字符串采用预设字符串进行代替,得到新的字符串,所述日志的记录的所述字段中的字符串的字符数量大于所述预设字符串的字符数量;
第三合并子单元,适于将所述第一替换子单元得到的新的字符串进行合并,得到合并字符串,在所述合并字符串中,所得到的新的字符串之间设置有分隔标识。
9.一种日志解压缩装置,其特征在于,包括:
解压缩单元,适于获取并解压缩压缩文件中经过压缩的所述日志的记录中字段的合并字符串;
恢复单元,适于通过将所述解压缩单元解压缩得到的合并字符串与选取的基准字符串进行比较,将所述合并字符串进行恢复处理,得到恢复后的所述日志的记录的所述字段中的字符串,所述恢复后的所述日志的记录的所述字段中的字符串包括所述记录在所述日志中的位序信息;所述恢复单元,包括:第一获取子单元,适于获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在日志中的位序信息;第二获取子单元,适于获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括非第一位序的记录的所述字段与所述第一位序的记录的所述字段之间非重复的字符,所述非第一位序的记录的字段与所述第一位序的记录的所述字段之间重复字符的个数信息,以及所述非第一位序的记录在所述日志中的位序信息;第一恢复子单元,适于根据第一获取子单元获取的所述合并字符串中第一分隔标识之前的字符串与第二获取子单元所获取的第一位序的记录的所述字段的字符串与所述第一位序的记录的所述字段之间重复字符的个数信息,在所述两个分隔标识之间的字符串中所述非重复的字符前,添加所述第一位序的记录的所述字段中的字符串与所述第一位序的记录的所述字段之间的重复字符,并同时删除所述非第一位序的记录的字段与所述第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的非第一位序的所述记录的所述字段的字符串;
拼接单元,适于所述恢复单元得到的具有恢复后相同位序信息的字段的字符串按照顺序拼接,得到所述日志的记录;
排序单元,适于将所述拼接单元拼接得到的日志的记录按照所述日志的记录的位序信息进行排序后,得到解压缩后的日志。
10.根据权利要求9所述的日志解压缩装置,其特征在于,所述恢复单元包括:
第三获取子单元,适于获取所述合并字符串中第一分隔标识之前的字符串,所述第一分隔标识之前的字符串包括排序后第一位序的记录的所述字段中的字符串,值为零的重复字符的个数信息和所述记录在日志中的位序信息;
第四获取子单元,适于获取所述合并字符串中相邻两个分隔标识之间的字符串,所述相邻两个分隔标识之间的字符串包括排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间非重复的字符,所述排序后非第一位序的记录的字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,以及所述排序后非第一位序的记录在所述日志中的位序信息;
第二恢复子单元,适于根据所述第三获取子单元获取的所述合并字符串中第一分隔标识之前的字符串和所述第四获取子单元所获取的排序后第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,在所述两个分隔标识之间的字符串中所述非重复的字符前,添加所述排序后第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间的重复字符,并同时删除所述排序后非第一位序的记录的所述字段与所述排序后第一位序的记录的所述字段之间重复字符的个数信息,得到恢复后的所述排序后非第一位序的记录的所述字段中的字符串。
11.根据权利要求9所述的日志解压缩装置,其特征在于,所述恢复单元包括:
第五获取子单元,适于获取所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串;
第二替换子单元,适于将所述第五获取子单元所获取的所述合并字符串中第一分隔标识之前的字符串和相邻两个分隔标识之间的字符串中的相应的预设字符串采用所述日志的记录的所述字段中的字符串代替,得到恢复后的所述日志的记录的所述字段的字符串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410283777.3A CN104050269B (zh) | 2014-06-23 | 2014-06-23 | 日志压缩方法及装置、解压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410283777.3A CN104050269B (zh) | 2014-06-23 | 2014-06-23 | 日志压缩方法及装置、解压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050269A CN104050269A (zh) | 2014-09-17 |
CN104050269B true CN104050269B (zh) | 2017-06-16 |
Family
ID=51503101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410283777.3A Active CN104050269B (zh) | 2014-06-23 | 2014-06-23 | 日志压缩方法及装置、解压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050269B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410424B (zh) * | 2014-11-26 | 2017-06-16 | 西安电子科技大学 | 嵌入式设备内存数据的快速无损压缩方法 |
CN105468748B (zh) * | 2015-11-26 | 2020-05-26 | 航天恒星科技有限公司 | 一种分布式存储位置数据方法及系统 |
CN105516307A (zh) * | 2015-12-09 | 2016-04-20 | 浪潮电子信息产业股份有限公司 | 一种基于压缩的优化云存储系统日志存储的方法 |
CN105654259B (zh) * | 2015-12-25 | 2021-07-06 | 中国民航信息网络股份有限公司 | 大批量代理人运价搜索压缩方法 |
CN107025233B (zh) * | 2016-01-29 | 2020-04-28 | 苏宁云计算有限公司 | 一种数据特征的处理方法及装置 |
CN106021417A (zh) * | 2016-05-12 | 2016-10-12 | 京信通信系统(广州)有限公司 | 日志压缩方法及装置 |
CN106844565B (zh) * | 2016-12-30 | 2020-07-07 | 上海帝联信息科技股份有限公司 | 数据行之间的字符比较方法及装置 |
CN107391583B (zh) * | 2017-06-23 | 2020-07-28 | 微梦创科网络科技(中国)有限公司 | 网站登陆日志信息转换为向量化数据的方法及系统 |
CN107688624B (zh) * | 2017-08-18 | 2020-12-29 | 杭州迪普科技股份有限公司 | 一种日志索引构建方法及装置 |
CN108256017B (zh) * | 2018-01-08 | 2020-12-15 | 武汉斗鱼网络科技有限公司 | 一种用于数据存储的方法、装置及计算机设备 |
CN108306771B (zh) * | 2018-02-09 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 日志上报方法、装置及系统 |
CN108933781B (zh) * | 2018-06-19 | 2021-07-02 | 上海点融信息科技有限责任公司 | 用于处理字符串的方法、装置及计算机可读存储介质 |
CN109617708B (zh) * | 2018-10-31 | 2020-07-31 | 浙江口碑网络技术有限公司 | 一种埋点日志的压缩方法、设备及系统 |
CN110543458A (zh) * | 2019-09-13 | 2019-12-06 | 北京上下文系统软件有限公司 | 一种移动网络上网日志数据的压缩算法 |
CN110851409A (zh) * | 2019-11-06 | 2020-02-28 | 南京星环智能科技有限公司 | 一种日志压缩、解压缩方法、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379136A (zh) * | 2012-04-17 | 2013-10-30 | 中国移动通信集团公司 | 一种日志采集数据压缩方法、解压缩方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312026B2 (en) * | 2009-12-22 | 2012-11-13 | At&T Intellectual Property I, L.P. | Compressing massive relational data |
-
2014
- 2014-06-23 CN CN201410283777.3A patent/CN104050269B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379136A (zh) * | 2012-04-17 | 2013-10-30 | 中国移动通信集团公司 | 一种日志采集数据压缩方法、解压缩方法及装置 |
Non-Patent Citations (2)
Title |
---|
Sub-Atomic Field Processing for Improved Web Log Compression;Sebastian Deorowicz等;《Proceedings of IEEE International Conference on Modern Problems of Radio Engineering, Telecommunications and Computer Science》;20080223;第551-556页 * |
一种基于日志结构的自动压缩/解压缩文件系统的实现方案;甄成 等;《计算机工程与应用》;20030311(第8期);第122-124页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104050269A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050269B (zh) | 日志压缩方法及装置、解压缩方法及装置 | |
US10432484B2 (en) | Aggregating select network traffic statistics | |
EP2490393B1 (de) | Verfahren und Vorrichtung zur Analyse von Datenpaketen | |
Quick et al. | Data reduction and data mining framework for digital forensic evidence: storage, intelligence, review and archive | |
US9210090B1 (en) | Efficient storage and flexible retrieval of full packets captured from network traffic | |
CN104376091B (zh) | 对SQLite中删除的数据进行恢复的方法及装置 | |
CN103164698B (zh) | 文本指纹库生成方法及装置、文本指纹匹配方法及装置 | |
CN105335300B (zh) | 一种数据存储方法及装置 | |
CN106489241A (zh) | 编码器、解码器和方法 | |
CN105740103B (zh) | 一种基于日志的ntfs删除文件恢复方法和装置 | |
CN106202172A (zh) | 文本压缩方法及装置 | |
Sukumar et al. | Review on modern Data Preprocessing techniques in Web usage mining (WUM) | |
CN103237094A (zh) | 一种识别用户的方法及装置 | |
CN113162818A (zh) | 一种分布式流量采集分析的实现方法及系统 | |
US11989161B2 (en) | Generating readable, compressed event trace logs from raw event trace logs | |
CN105447146A (zh) | 一种海量数据的收集与交换系统及方法 | |
Fusco et al. | pcapIndex: an index for network packet traces with legacy compatibility | |
CN107070897A (zh) | 入侵检测系统中基于多属性哈希去重的网络日志存储方法 | |
CN105447168A (zh) | Mp4格式的碎片文件恢复与重组的方法 | |
CN105068885A (zh) | 一种jpg碎片文件恢复与重组的方法 | |
Hadi | Reviewing and evaluating existing file carving techniques for JPEG files | |
CN101572633A (zh) | 网络取证方法及系统 | |
KR101218087B1 (ko) | 하둡 맵리듀스에서 바이너리 형태의 데이터 분석을 위한 입력포맷 추출방법 및 이를 이용한 바이너리 데이터의 분석방법 | |
Velan | Practical experience with IPFIX flow collectors | |
KR101200773B1 (ko) | 하둡 맵리듀스에서 네트워크 패킷 분석을 위한 입력포맷 추출방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |