CN107977442A - 日志文件压缩及解压缩方法、电子设备和可读存储介质 - Google Patents
日志文件压缩及解压缩方法、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN107977442A CN107977442A CN201711295681.9A CN201711295681A CN107977442A CN 107977442 A CN107977442 A CN 107977442A CN 201711295681 A CN201711295681 A CN 201711295681A CN 107977442 A CN107977442 A CN 107977442A
- Authority
- CN
- China
- Prior art keywords
- compression
- subfile
- decompression
- file
- line
- 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.)
- Granted
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/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/13—File access structures, e.g. distributed indices
-
- 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
-
- 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/182—Distributed 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)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种日志文件压缩及解压缩方法、电子设备和计算机可读存储介质。所述日志文件压缩方法通过将待压缩日志文件切分为子文件,并行地逐行压缩多个所述子文件,提高了压缩效率和压缩比,并且压缩子文件与压缩前的行数一一对应,提高后续的解压缩效率。所述日志解压缩方法通过并行地逐行解压缩多个子压缩文件,并在解压缩的同时根据计算任务并行地计算统计日志数据,大大提高了解压缩效率和计算效率。
Description
技术领域
本申请涉及信息处理技术领域,具体地,涉及一种日志文件压缩及解压缩方法、电子设备和计算机可读存储介质。
背景技术
随着大数据时代的来临,数据也能像能源、材料一样称为战略性资源。利用数据资源深挖创新,提升效益,是诸多企业追求的目标。互联网所产生的大数据,主要来自于对互联网的访问日志。因此,存储互联网访问日志的存储成为关键。由于原始日志文件所占用的存储空间过大,为了达到长期保存的目的,必须对原始日志文件进行压缩。
现有技术中,存在有各种单进程的文件压缩方法,但是由于日志文件体积巨大,依靠单进程的文件压缩方法存在压缩及解压缩效率较低的问题。
发明内容
有鉴于此,本申请公开了一种日志文件压缩及解压缩方法、电子设备和计算机可读存储介质,以提高日志文件压缩及解压缩的效率、压缩比和计算效率。
第一方面,提供一种日志文件压缩方法,包括:
将待压缩的日志文件切分为子文件,所述日志文件的每一行数据记录一个操作,所述子文件包括多个所述行;
将每个子文件分别作为一个压缩任务送入压缩任务池;
并行地执行所述压缩任务池中的多个压缩任务;
在所述压缩任务池中的所有压缩任务均完成后,将不同压缩任务获得的压缩子文件合并成压缩结果文件;
其中,逐行压缩所述压缩任务对应的子文件以获取所述压缩子文件;所述压缩子文件的行数与所述子文件的行数一一对应。
进一步地,逐行压缩所述压缩任务对应的子文件以获取所述压缩子文件包括:
读取所述子文件的第一行数据,将所述第一行数据中的时间戳字段的位置信息存储在元信息中;
逐行读取所述子文件之后的各行数据,将读取的当前行中的时间戳修改为与前一行数据中的时间戳的偏移量,并根据预定的压缩算法压缩修改后的当前行;
在所述子文件的所有行压缩完成时输出所述压缩子文件并存储。
进一步地,所述日志文件根据分布式文件系统的存储形式进行切分;
所述压缩结果文件根据分布式文件系统的存储形式进行存储。
进一步地,所述子文件的数量是根据所述待压缩的日志文件的大小和所述分布式文件系统的存储单元的大小计算的。
第二方面,提供一种日志文件解压缩方法,包括:
将待解压的日志文件的所有子压缩文件作为解压缩任务送入解压缩任务池;
并行地执行所述解压缩任务池中的多个解压缩任务,并根据计算任务统计计算所述子压缩文件的日志数据,所述计算任务包括访问量和用户记录;
在所述解压缩任务池中的所有解压缩任务均完成后,汇总所有子压缩文件的计算任务结果,将获取的总计算任务结果输出;
其中,逐行解压所述解压缩任务对应的子压缩文件以获取解压子文件,统计计算所述解压子文件以获取所述子压缩文件的任务计算结果;所述子压缩文件的行数与所述解压子文件的行数一一对应。
进一步地,逐行解压缩所述解压缩任务对应的子压缩文件以获取解压子文件,统计计算所述解压子文件以获取所述子压缩文件的任务计算结果包括:
根据预定的解压缩算法解压所述子压缩文件的第一行数据,并根据元信息中的地址信息获取所述第一行数据的时间戳;
根据预定的解压缩算法逐行解压所述子压缩文件之后的各行数据;
根据时间戳偏移量恢复解压的当前行的时间戳;
根据计算任务统计计算所述当前行的日志数据;
在所述子压缩文件的所有行解压完成时,存储获得的解压子文件,并汇总计算各行的计算结果以获取所述子压缩文件的计算任务结果。
进一步地,所述待解压日志文件的子压缩文件根据分布式文件系统的存储形式进行存储。
第三方面,提供一种电子设备,包括:
至少一个处理器;
存储器,用于存储所述处理器可执行的指令;
所述处理器被配置为执行如上所述的方法。
第四方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如上所述的方法。
本申请实施例通过将待压缩日志文件切分为子文件,并行地逐行压缩多个所述子文件,提高了压缩效率和压缩比,并且压缩子文件与压缩前的行数一一对应,提高后续的解压缩效率。通过并行地逐行解压缩多个子压缩文件,并在解压缩的同时根据计算任务并行地计算统计日志数据,大大提高了解压缩效率和计算效率。
附图说明
通过以下参照附图对本申请实施例的描述,本申请的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本申请实施例的日志文件压缩方法的流程图;
图2是本申请实施例的子文件压缩方法的流程图;
图3是本申请实施例的日志文件压缩方法的示意图;
图4是本申请实施例的日志文件解压缩方法的流程图;
图5是本申请实施例的子压缩文件解压缩方法的流程图;
图6是本申请实施例的日志文件解压缩方法的示意图;
图7是本申请实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1是本申请实施例的日志文件压缩方法的流程图。如图1所示,在步骤S100,将待压缩日志文件切分为子文件。具体地,所述待压缩日志文件根据分布式文件系统的存储形式进行切分,所述待压缩日志文件的大小和分布式文件系统的存储单元的大小决定了所述子文件的数量。
HDFS(Hadoop Distributed File System,分布式文件系统)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集的应用处理带来了很多便利。HDFS的设计是用于支持大文件的。运行在HDFS上的程序也是用于处理大数据集的。这些程序仅写一次数据,一次或多次读数据请求,并且这些读操作要求满足流式传输速度。HDFS支持文件的一次写多次读操作。一个基于HDFS存储的大文件可以被分成多个小文件存储在不同的数据块中,如果需要,每个数据块可以分布在不同的数据节点上。而且,在一个小文件小于一个数据块的大小时,并不占用整个数据块的存储空间。
在步骤S200,将每个子文件作为一个压缩任务送入压缩任务池中。
在步骤S300,并行地执行压缩任务池中的多个压缩任务。具体地,根据系统中配置信息进行调度任务,启动多个压缩任务进程进行工作。其中,所述配置信息包括描述字段属性对应的标志(例如时间戳字段标志等)、所述系统可同时启动的压缩任务进程的数量等。
在步骤S400,在压缩任务池中的压缩任务均已经完成时,将获得的所有压缩子文件合并成压缩结果文件。具体地,所述压缩结果文件根据分布式文件系统的存储方式进行存储,各个压缩子文件分别存储在一个数据块中。
所述日志文件压缩方法通过将过大的日志文件切分为相对较小的多个子文件,然后将每个子文件分别作为一个压缩任务送入压缩任务池中,采用多压缩任务进程同时工作的并发集群处理以提高压缩效率。
图2是本申请实施例的子文件压缩方法的流程图。如图2所示,在步骤S310,读取文件的第一行数据,将其中的时间戳的位置信息存储在元信息中。其中,所述元信息位于压缩子文件的头部字段,以存储第一行数据中的时间戳字段位置信息。
在步骤S320,读取下一行数据,获取读取的当前行的时间戳。并根据配置信息将特殊字段进行标志,例如,存放时间戳的字段,存放访问用户的标识的字段,存放访问关键字的字段等。这便于提高后续的解压缩和计算的效率。
在步骤S330,将当前行的时间戳修改为与前一行数据中的时间戳的偏移量。例如,当前行的时间戳为2017-11-17 09:57:34,其前一行数据中的时间戳为2017-11-17 09:57:32,则将当前行中的时间戳字段的内容修改为短整型数字2。这便大大提升了压缩比例。
在步骤S340,根据预定的压缩算法压缩当前行并存储。
在步骤S350,判断当前行是否为该子文件的最后一行。若当前行是该子文件的最后一行,执行步骤S360。若当前行不是该子文件的最后一行,执行步骤S320。
在步骤S360,输出压缩子文件并存储在对应的分布式文件系统的数据块中。
应理解,所述预定的压缩算法可以为适合于文件压缩的任一压缩算法,下面以LZ77压缩算法为例,举例说明本申请实施例所述的压缩算法。
LZ77压缩算法是由以色列教授Jacob ziv和Abeaham Lempel在1977提出的,所以命名为LZ77。LZ77的压缩原理为如果文件中有两块内容相同的话,那么只要知道前一块的位置和大小,就可以确定后一块的内容。所以可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小小于被替换内容的大小,所以文件得到了压缩。例如,有个文件的内容为:
http://jiurl.yeah.net http://jiurl.nease.net
其中有些部分的内容,前面已经出现过了,下面用()括起来的部分就是相同的部分。
http://jiurl.yeah.net(http://jiurl.)nease(.net)
我们使用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容,也即
http://jiurl.yeah.net(22,13)nease(23,4)
(22,13)中,22为相同内容块与当前位置之间的距离,13为相同内容的长度。(23,4)中,23为相同内容块与当前位置之间的距离,4为相同内容的长度。
由于(两者之间的距离,相同内容的长度)这一对信息的大小,小于被替换内容的大小,所以文件得到了压缩。
LZ77压缩算法使用"滑动窗口"的方法,来寻找文件中的相同部分,也就是匹配串。所述串是指一个任意字节的序列,而不仅仅是可以在文本文件中显示出来的那些字节的序列。所述串强调的是它在文件中的位置,它的长度是随着匹配的情况而变化的。
LZ77压缩算法需要设定一个最小匹配长度,只有当两个串的匹配长度大于最小匹配长度时,才认为这是一个匹配。例如,“距离”使用15位,“长度”使用8位,那么“(之间的距离,匹配长度)对”将使用23位,也就是差1位3个字节。由此,如果匹配长度小于3个字节的话,那么用“(之间的距离,匹配长度)对”进行替换的话,不但没有压缩,反而会增大。
图3是本申请实施例的日志文件压缩方法的示意图。如图3所示,日志文件3被且分为子文件31和子文件32。应理解,日志文件3是示例性的,不是一条日志记录的全部内容。日志文件3包含6条日志记录,子文件31和子文件32分别包含前三条日志记录和后三条日志内容。将子文件31和子文件32送入压缩任务池33中,根据任务调度并行执行压缩任务。下面以子文件32的压缩过程为例。
读取子文件32的第一行数据,获取第一行数据的时间戳“2017-11-16T14:36:12”,将其存储在子文件32的元信息中。第一行数据中的时间戳保持不变,根据LZ77压缩算法对第一行数据的其他文本进行压缩。其中,在第一行数据中存在匹配串(keyword)和(Time),将其分别替换为(22,7)和(18,4)。将压缩后的第一行数据存储在压缩子文件32’的第一行中。
读取子文件32的第二行数据,根据配置信息中的时间戳字段标志获取第二行数据的时间戳“2017-11-16T14:36:22”。通过计算可知,第二行数据的时间戳相对于第一行的偏移量为10s。将第二行数据的时间戳字段的信息修改为[10]。根据LZ77压缩算法对第二行数据的其他文本进行压缩。其中,在第二行数据中存在匹配串(<keywords>)和(</keyword><Tim eCreatedSystemTime=”),将其分别替换为(68,10)和(70,34)。将压缩后的第一二行数据存储在压缩子文件32’的第二行中。如图3所示,子文件32的第二行数据通过时间戳压缩和LZ77压缩算法压缩之后的数据为:
(68,10)rizhiyasuo(70,34)[10]”/>
由此,通过计算时间戳偏移量进行时间戳压缩,并通过LZ77压缩算法压缩其他文本,大大缩小了存储空间。
同理,可获得子文件32的第三行数据经过时间戳压缩和LZ77算法压缩之后的数据:(137,10)zhuhang(72,5)(141,34)[12]”/>。将其存储在压缩子文件32’的第三行中。
应理解,图中的括号和方括号只是便于理解,在实际压缩过程中并不存在。
同理,子文件31通过时间戳压缩和LZ77压缩算法压缩之后获得压缩子文件31’。
将压缩子文件31’和32’合并为压缩结果文件3’存储于分布式文件系统中。
综上所述,通过逐行计算时间戳偏移量进行时间戳压缩,并通过预定的压缩算法压缩其他文本,提高了压缩比例。并且,日志文件在压缩前后的各行数据一一对应,也会提高后续的解压缩和计算的效率。
日志数据在大数据分析中起着至关重要的作用,在进行日志大数据的统计计算时,需要将压缩后的日志数据进行解压缩。
图4是本申请实施例的日志文件解压缩方法的流程图。如图4所示,在步骤S1000,将待解压文件的所有子压缩文件作为解压缩任务送入解压缩任务池中。由于,在进行日志文件压缩时,压缩结果文件是按照分布式文件系统的存储方式进行存储的,每个子压缩文件均存储在不同的数据块中。因此,待解压的日志文件不需要寻找其压缩前的切分位置再进行切分。
在步骤S2000,并行地执行多个解压缩任务,并根据计算任务统计计算日志数据。其中,所述计算任务包括在该时段的网络访问量,活跃用户和热门关键词搜索等。应理解,不同类型的日志数据会有不同的计算任务。具体地,根据系统中配置信息进行调度任务,启动多个解压缩任务进程进行工作。其中,所述配置信息包括描述字段属性对应的标志(例如时间戳字段标志等)、所述系统可同时启动的压缩任务进程的数量等。
在步骤S3000,在所有解压缩任务完成后,汇总所有子压缩文件的计算任务结果,将获取的总计算任务结果输出反馈给调用端。
所述日志文件解压缩方法通过采用多个解压缩任务进程同时通过的并发集群处理方法以提高解压缩的效率。通过在解压缩的同时进行对日志数据进行统计计算,使得日志数据的统计计算与日志文件的解压缩同步完成,不需要形成等待和依赖,提高了计算效率。
图5是本申请实施例的子压缩文件解压缩方法的流程图。如图5所示,在步骤S2100,根据预定的解压缩算法解压所述子压缩文件的第一行数据,并根据子压缩文件的元信息中的地址信息获取第一行数据中的时间戳。应理解,所述预定的解压缩算法是对应于压缩算法的算法。本申请实施例依旧以LZ77算法为例,例如,有个压缩文件的内容为:
http://jiurl.yeah.net(22,13)nease(23,4)
其中,(22,13)中,22为相同内容块与当前位置之间的距离,13为相同内容的长度。(23,4)中,23为相同内容块与当前位置之间的距离,4为相同内容的长度。那么,解压到(22,13)时文件的内容为:
http://jiurl.yeah.net(http://jiurl.)nease(23,4)
解压文件末尾(23,4)之后,解压缩后的文件内容为:
http://jiurl.yeah.net(http://jiurl.)nease(.net)
其中,括号中的内容为解压出来的内容,括号只是为了方便理解,实际中并不存在。
在步骤S2200,根据预定的解压缩算法解压下一行数据。
在步骤S2300,根据时间戳偏移量恢复解压的当前行的时间戳。具体地,根据配置信息中的时间戳字段标志找到时间戳字段,根据前一行的时间戳和时间戳字段中的偏移量计算当前行的时间戳。
在步骤S2400,根据计算任务统计计算当前行的日志数据。例如,计算任务为某个关键词在这个时间段(也即所述待解压日志所记录的时间段)的搜索量。根据配置信息中的关键字字段标志找到当前行的关键字信息,若找的关键字信息与计算任务中的关键字信息一致,则记录搜索量的计数器加一。
在步骤S2500,判断当前行是否为该子压缩文件的最后一行。如当前压缩行是该子压缩文件的最后一行,执行步骤S2600。若当前压缩行不是该子压缩文件的最后一行,执行步骤S2200。
在步骤S2600,汇总计算各行的计算结果以获取该子压缩文件的计算任务结果。
通过采用解压缩任务和计算任务同时进行的方法,提高了解压缩和计算的效率。同时,采用配置信息中的字段属性的标志,加快了获取相应特殊字段的获取时间,进而提高解压缩和计算的效率。
图6是本申请实施例的日志文件解压缩方法的示意图。如图6所示,待解压日志文件6包括子压缩文件61和子压缩文件62。其计算任务为关键字中含“rizhi”的搜索量。将子压缩文件61和子压缩文件62解压缩任务池66中,根据任务调度并行执行解压缩任务。下面以子压缩文件61为例。
根据预定的解压缩算法(示例采用LZ77算法)解压子压缩文件61的第一行数据:
<keywords>rizhiyasuo</(22,7)><TimeCreatedSystem(18,4)=”2017-11-16T14:35:12”/>
由LZ77算法的解压原理可知,(22,7)的原内容为(keyword),(18,4)的原内容为(Time)。由于第一行数据中的时间戳信息保持不变,所以第一行数据此时解压完成,将解压后的第一行数据存储于解压子文件61’的第一行。根据关键字字段标志获取此行的关键字为“rizhiyasuo”,包含“rizhi”,因此记录搜索量的计数器加1。
根据子压缩文件61的元信息中的地址信息获取第一行数据中的时间戳为“2017-11-16T14:35:12”。
根据LZ77算法解压子压缩文件61的第二行数据:
(70,10)ziwenjian(69,34)[3]”/>
由LZ77算法的解压原理可知,(70,10)的原内容为(<keywords>),(69,34)的原内容为(</keyword><TimeCreatedSystemTime=”)。根据配置文件中的时间戳字段标志获取时间戳字段的信息为[3],也即子压缩文件的第二行数据相对于第一行数据的时间戳偏移量是3s。由此,第二行数据的时间戳信息恢复为“2017-11-16T14:35:15”。将解压后的第二行数据存储于解压子文件61’的第二行。根据关键字字段标志获取此行的关键字为“ziwenjian”,不包含“rizhi”。
同理,根据LZ77算法解压子压缩文件的第三行数据。并根据其与第二行数据的时间戳偏移量恢复时间戳信息。将解压后的第三行数据存储于解压子文件61’的第三行。根据根据关键字字段标志获取此行的关键字为“renwuchi”,不包含“rizhi”。
综上,汇总计算子压缩文件61的各行日志数据的计算结果,在子压缩文件61中,也即在2017-11-16T14:35:12至2017-11-16T14:35:46时间段内,包含“rizhi”的关键字的搜索量为1次。
同理,子压缩文件62解压后存储在解压子文件62’中,汇总计算子压缩文件62的各行日志数据的计算结果,在子压缩文件62中,也即在2017-11-16T14:36:12至2017-11-16T14:36:34时间段内,包含“rizhi”的关键字的搜索量为1次。
汇总子压缩文件61和子压缩文件62的计算任务结果,也即在2017-11-16T14:35:12至2017-11-16T14:36:34共1分24秒的时间段内,包含“rizhi”的关键字的搜索量为2次。将此总计算任务结果输出反馈给调用端。
综上所述,通过采用解压缩任务和计算任务同时进行的方法,提高了解压缩和计算的效率。同时,采用配置信息中的字段属性的标志,加快了获取相应特殊字段的获取时间,进而提高解压缩和计算的效率。
图7是本申请实施例的电子设备的示意图。图7所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(I/O)装置75。输入/输出(I/O)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置75通过输入/输出(I/O)控制器76与系统相连。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
也可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域技术人员而言,本申请可以有各种改动和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种日志文件压缩方法,包括:
将待压缩的日志文件切分为子文件,所述日志文件的每一行数据记录一个操作,所述子文件包括多个所述行;
将每个子文件分别作为一个压缩任务送入压缩任务池;
并行地执行所述压缩任务池中的多个压缩任务;
在所述压缩任务池中的所有压缩任务均完成后,将不同压缩任务获得的压缩子文件合并成压缩结果文件;
其中,逐行压缩所述压缩任务对应的子文件以获取所述压缩子文件;所述压缩子文件的行数与所述子文件的行数一一对应。
2.根据权利要求1所述的日志文件压缩方法,其特征在于,逐行压缩所述压缩任务对应的子文件以获取所述压缩子文件包括:
读取所述子文件的第一行数据,将所述第一行数据中的时间戳字段的位置信息存储在元信息中;
逐行读取所述子文件之后的各行数据,将读取的当前行中的时间戳修改为与前一行数据中的时间戳的偏移量,并根据预定的压缩算法压缩修改后的当前行;
在所述子文件的所有行压缩完成时输出所述压缩子文件并存储。
3.根据权利要求1所述的日志文件压缩方法,其特征在于,所述日志文件根据分布式文件系统的存储形式进行切分;
所述压缩结果文件根据分布式文件系统的存储形式进行存储。
4.根据权利要求3所述的日志文件压缩方法,其特征在于,所述子文件的数量是根据所述待压缩的日志文件的大小和所述分布式文件系统的存储单元的大小计算的。
5.一种日志文件解压缩方法,包括:
将待解压的日志文件的所有子压缩文件作为解压缩任务送入解压缩任务池;
并行地执行所述解压缩任务池中的多个解压缩任务,并根据计算任务统计计算所述子压缩文件的日志数据,所述计算任务包括访问量和用户记录;
在所述解压缩任务池中的所有解压缩任务均完成后,汇总所有子压缩文件的计算任务结果,将获取的总计算任务结果输出;
其中,逐行解压所述解压缩任务对应的子压缩文件以获取解压子文件,统计计算所述解压子文件以获取所述子压缩文件的任务计算结果;所述子压缩文件的行数与所述解压子文件的行数一一对应。
6.根据权利要求5所述的日志文件解压缩方法,其特征在于,逐行解压缩所述解压缩任务对应的子压缩文件以获取解压子文件,统计计算所述解压子文件以获取所述子压缩文件的任务计算结果包括:
根据预定的解压缩算法解压所述子压缩文件的第一行数据,并根据元信息中的地址信息获取所述第一行数据的时间戳;
根据预定的解压缩算法逐行解压所述子压缩文件之后的各行数据;
根据时间戳偏移量恢复解压的当前行时间戳;
根据计算任务统计计算所述当前行的日志数据;
在所述子压缩文件的所有行解压完成时,存储获得的解压子文件,并汇总计算各行的计算结果以获取所述子压缩文件的计算任务结果。
7.根据权利要求5所述的日志文件解压缩方法,其特征在于,所述待解压日志文件的子压缩文件根据分布式文件系统的存储形式进行存储。
8.一种电子设备,包括:
至少一个处理器;
存储器,用于存储所述处理器可执行的指令;
所述处理器被配置为执行如权利要求1-7中任一项所述的方法。
9.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711295681.9A CN107977442B (zh) | 2017-12-08 | 2017-12-08 | 日志文件压缩及解压缩方法、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711295681.9A CN107977442B (zh) | 2017-12-08 | 2017-12-08 | 日志文件压缩及解压缩方法、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107977442A true CN107977442A (zh) | 2018-05-01 |
CN107977442B CN107977442B (zh) | 2020-08-07 |
Family
ID=62009490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711295681.9A Active CN107977442B (zh) | 2017-12-08 | 2017-12-08 | 日志文件压缩及解压缩方法、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977442B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965295A (zh) * | 2018-07-17 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种文件压缩合并方法及相关装置 |
CN109086330A (zh) * | 2018-07-03 | 2018-12-25 | 深圳鼎盛电脑科技有限公司 | 一种文件处理方法、装置、设备及存储介质 |
CN109766319A (zh) * | 2018-12-27 | 2019-05-17 | 网易(杭州)网络有限公司 | 压缩任务处理方法、装置、存储介质及电子设备 |
CN109960630A (zh) * | 2019-03-18 | 2019-07-02 | 四川长虹电器股份有限公司 | 一种快速从大批量压缩文件中提取日志的方法 |
CN110442489A (zh) * | 2018-05-02 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 数据处理的方法和存储介质 |
CN110888851A (zh) * | 2018-08-15 | 2020-03-17 | 阿里巴巴集团控股有限公司 | 压缩文件创建和解压的方法及装置、以及电子和存储设备 |
CN110990358A (zh) * | 2019-09-30 | 2020-04-10 | 咪咕文化科技有限公司 | 一种解压缩方法、电子设备及计算机可读存储介质 |
CN111130554A (zh) * | 2019-12-09 | 2020-05-08 | 深圳市兴之佳科技有限公司 | 一种文件压缩方法、装置、电子设备及可读取存储介质 |
CN111538706A (zh) * | 2020-04-21 | 2020-08-14 | 惠州Tcl移动通信有限公司 | 数据压缩方法、装置、存储介质及移动终端 |
CN112445773A (zh) * | 2021-02-01 | 2021-03-05 | 北京志翔科技股份有限公司 | 压缩文件的解压缩日志生成方法、装置及可读存储介质 |
CN112965934A (zh) * | 2021-02-04 | 2021-06-15 | 北京高因科技有限公司 | 一种日志压缩存储方法、电子装置 |
CN112988682A (zh) * | 2019-12-18 | 2021-06-18 | 阿里巴巴集团控股有限公司 | 日志压缩方法、装置、电子设备及计算机可读存储介质 |
CN114860175A (zh) * | 2022-04-28 | 2022-08-05 | 北京展跃芯智科技有限公司 | 日志打印方法及装置、电子设备和计算机可读存储介质 |
CN117724650A (zh) * | 2023-07-19 | 2024-03-19 | 荣耀终端有限公司 | 一种读取压缩文件的方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
US20130325828A1 (en) * | 2012-05-14 | 2013-12-05 | Confio Corporation | System and Method For Providing High-Availability and High-Performance Options For Transaction Log |
CN106170968A (zh) * | 2014-12-18 | 2016-11-30 | 华为技术有限公司 | 一种数据压缩存储方法、装置,及分布式文件系统 |
CN107395209A (zh) * | 2017-07-03 | 2017-11-24 | 北京京东尚科信息技术有限公司 | 数据压缩方法、数据解压缩方法及其设备 |
-
2017
- 2017-12-08 CN CN201711295681.9A patent/CN107977442B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130325828A1 (en) * | 2012-05-14 | 2013-12-05 | Confio Corporation | System and Method For Providing High-Availability and High-Performance Options For Transaction Log |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
CN106170968A (zh) * | 2014-12-18 | 2016-11-30 | 华为技术有限公司 | 一种数据压缩存储方法、装置,及分布式文件系统 |
CN107395209A (zh) * | 2017-07-03 | 2017-11-24 | 北京京东尚科信息技术有限公司 | 数据压缩方法、数据解压缩方法及其设备 |
Non-Patent Citations (1)
Title |
---|
王煜骢: "Hadoop日志压缩算法的研究与实现", 《现代计算机》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442489B (zh) * | 2018-05-02 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 数据处理的方法和存储介质 |
CN110442489A (zh) * | 2018-05-02 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 数据处理的方法和存储介质 |
CN109086330A (zh) * | 2018-07-03 | 2018-12-25 | 深圳鼎盛电脑科技有限公司 | 一种文件处理方法、装置、设备及存储介质 |
CN108965295B (zh) * | 2018-07-17 | 2021-09-17 | 郑州云海信息技术有限公司 | 一种文件压缩合并方法及相关装置 |
CN108965295A (zh) * | 2018-07-17 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种文件压缩合并方法及相关装置 |
CN110888851B (zh) * | 2018-08-15 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 压缩文件创建和解压的方法及装置、以及电子和存储设备 |
CN110888851A (zh) * | 2018-08-15 | 2020-03-17 | 阿里巴巴集团控股有限公司 | 压缩文件创建和解压的方法及装置、以及电子和存储设备 |
CN109766319A (zh) * | 2018-12-27 | 2019-05-17 | 网易(杭州)网络有限公司 | 压缩任务处理方法、装置、存储介质及电子设备 |
CN109960630A (zh) * | 2019-03-18 | 2019-07-02 | 四川长虹电器股份有限公司 | 一种快速从大批量压缩文件中提取日志的方法 |
CN110990358A (zh) * | 2019-09-30 | 2020-04-10 | 咪咕文化科技有限公司 | 一种解压缩方法、电子设备及计算机可读存储介质 |
CN111130554A (zh) * | 2019-12-09 | 2020-05-08 | 深圳市兴之佳科技有限公司 | 一种文件压缩方法、装置、电子设备及可读取存储介质 |
CN111130554B (zh) * | 2019-12-09 | 2023-08-04 | 深圳市兴之佳科技有限公司 | 一种文件压缩方法、装置、电子设备及可读取存储介质 |
CN112988682A (zh) * | 2019-12-18 | 2021-06-18 | 阿里巴巴集团控股有限公司 | 日志压缩方法、装置、电子设备及计算机可读存储介质 |
CN112988682B (zh) * | 2019-12-18 | 2024-05-28 | 阿里巴巴集团控股有限公司 | 日志压缩方法、装置、电子设备及计算机可读存储介质 |
CN111538706B (zh) * | 2020-04-21 | 2023-11-14 | 惠州Tcl移动通信有限公司 | 数据压缩方法、装置、存储介质及移动终端 |
CN111538706A (zh) * | 2020-04-21 | 2020-08-14 | 惠州Tcl移动通信有限公司 | 数据压缩方法、装置、存储介质及移动终端 |
CN112445773B (zh) * | 2021-02-01 | 2021-04-30 | 北京志翔科技股份有限公司 | 压缩文件的解压缩日志生成方法、装置及可读存储介质 |
CN112445773A (zh) * | 2021-02-01 | 2021-03-05 | 北京志翔科技股份有限公司 | 压缩文件的解压缩日志生成方法、装置及可读存储介质 |
CN112965934A (zh) * | 2021-02-04 | 2021-06-15 | 北京高因科技有限公司 | 一种日志压缩存储方法、电子装置 |
CN114860175A (zh) * | 2022-04-28 | 2022-08-05 | 北京展跃芯智科技有限公司 | 日志打印方法及装置、电子设备和计算机可读存储介质 |
CN117724650A (zh) * | 2023-07-19 | 2024-03-19 | 荣耀终端有限公司 | 一种读取压缩文件的方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107977442B (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977442A (zh) | 日志文件压缩及解压缩方法、电子设备和可读存储介质 | |
Woodring et al. | In‐situ Sampling of a Large‐Scale Particle Simulation for Interactive Visualization and Analysis | |
US11182691B1 (en) | Category-based sampling of machine learning data | |
CN104838377B (zh) | 利用映射缩减集成事件处理 | |
US10339465B2 (en) | Optimized decision tree based models | |
Lofstead et al. | Adaptable, metadata rich IO methods for portable high performance IO | |
Dorier et al. | Omnisc'io: a grammar-based approach to spatial and temporal i/o patterns prediction | |
CN109313600A (zh) | 存储器使用量确定技术 | |
CN105339924A (zh) | 作为服务的有效数据压缩和分析 | |
Zhang et al. | Sapprox: Enabling efficient and accurate approximations on sub-datasets with distribution-aware online sampling | |
KR20130084599A (ko) | 레코드들의 컬럼형 스토리지 표현 | |
RU2753189C2 (ru) | Система для подготовки сетевого трафика для быстрого анализа | |
Kutsukake et al. | Simulation-based likelihood approach for evolutionary models of phenotypic traits on phylogeny | |
JP6232522B2 (ja) | 計算機及びグラフデータ生成方法 | |
JP2009251874A (ja) | 時系列データ保存装置および時系列データ保存方法 | |
CN107679186A (zh) | 基于实体库进行实体搜索的方法及装置 | |
Knüpfer et al. | Compressible memory data structures for event-based trace analysis | |
US10996855B2 (en) | Memory allocation in a data analytics system | |
Wang et al. | Staging based task execution for data-driven, in-situ scientific workflows | |
CN107704993A (zh) | 一种基于用户行为的编程能力评估方法 | |
WO2016206395A1 (zh) | 周报信息处理方法及装置 | |
Roussev | Building open and scalable digital forensic tools | |
CN116028446A (zh) | 时序数据文件化管理方法、装置、设备及其存储介质 | |
CN106528724B (zh) | 一种推送信息的方法及装置 | |
Brandouy et al. | Estimating the algorithmic complexity of stock markets |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 1st Floor, 22nd Floor, Zone 7, Advanced Business Park, No. 188, South 4th Ring West Road, Fengtai District, Beijing 100070 Patentee after: Beijing Xijia Chuangzhi Data Technology Co.,Ltd. Address before: 1st Floor, 22nd Floor, Zone 7, Advanced Business Park, No. 188, South 4th Ring West Road, Fengtai District, Beijing 100070 Patentee before: BEIJING XIJIA EDUCATION TECHNOLOGY CO.,LTD. |