CN110851409A - 一种日志压缩、解压缩方法、设备及存储介质 - Google Patents
一种日志压缩、解压缩方法、设备及存储介质 Download PDFInfo
- Publication number
- CN110851409A CN110851409A CN201911077304.7A CN201911077304A CN110851409A CN 110851409 A CN110851409 A CN 110851409A CN 201911077304 A CN201911077304 A CN 201911077304A CN 110851409 A CN110851409 A CN 110851409A
- Authority
- CN
- China
- Prior art keywords
- data
- column
- log file
- column data
- log
- 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
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/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/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling 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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种日志压缩、解压缩方法、设备及存储介质。该日志压缩方法包括:对原始的日志文件进行解析,得到所述日志文件的多项列数据;确定各项列数据的信息熵;若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。该方法可以极大的节省了日志文件的存储空间使用,可以节省存储成本。
Description
技术领域
本发明实施例涉及日志压缩和解压缩技术领域,尤其涉及一种日志压缩、解压缩方法、设备及存储介质。
背景技术
一般而言,一个集群化的企业级应用每日会产生百GB(容量单位)甚至上TB(1TB=1024GB)的日志文件数据(比如:apache-access、tomcat-action日志),同时为了满足安全审计、等级保护、Bug定位等要求,一般至少备份存储1个月~6个月的历史日志数据。如此,仅满足日志备份存储需求,企业将需购置多台日志服务器及PB(1PB=1024TB)级的硬盘来存储。
通常采用zip、tar、gz等常用算法压缩对日志文件进行压缩存储,一般最多可以达到10~20倍的压缩比例,即通过这些常用算法压缩对日志文件压缩,单日也会累计产生10GB以上的日志压缩文件。
需要企业为日志存储扩容或者降低历史数据备份周期才能够满足日志备份。而任意降低历史数据的备份周期,在有些场景下,是无法满足安全审计需求的,甚至违反等级保护的要求。所以企业仍然需要购置服务器和大量的磁盘来存储管理这些海量的日志文件数据,以备不时之需。除此之外,还需要运维人员维护,耗费大量人力物力。
发明内容
本发明实施例提供了一种日志压缩、解压缩方法、设备及存储介质,可以极大的节省了日志文件的存储空间使用,可以节省存储成本,节省维护成本。
第一方面,本发明实施例提供了一种日志压缩方法,该方法包括:
对原始的日志文件进行解析,得到所述日志文件的多项列数据;
确定各项列数据的信息熵;
若所述列数据的信息熵大于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
第二方面,本发明实施例还提供了一种日志解压缩方法,该方法包括:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;
将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
第三方面,本发明实施例还提供了一种日志压缩设备,包括处理器和存储器,存储器用于存储指令,当指令执行时使得处理器执行以下操作:
对原始的日志文件进行解析,得到所述日志文件的多项列数据;
确定各项列数据的信息熵;
若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
第四方面,本发明实施例还提供了一种日志解压缩设备,包括处理器和存储器,存储器用于存储指令,当指令执行时使得处理器执行以下操作:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;
将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
第五方面,本发明实施例提供了一种存储介质,存储介质用于存储指令,指令用于执行:
对原始的日志文件进行解析,得到所述日志文件的多项列数据;
确定各项列数据的信息熵;
若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
或者,指令用于执行:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;
将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
本发明通过对原始的日志文件进行解析,得到日志文件的多项列数据;确定各项列数据的信息熵;若所述列数据的信息熵大于设定阈值,将列数据的列名对应的所有数据替换成字符编码以进行压缩,得到日志文件的压缩文件,解决了日志文件压缩比不高的问题,实现了日志文件百倍级的压缩比,极大的提高了压缩比例,极大的节省了存储空间的使用,可以节省日志文件存储成本的效果。
附图说明
图1是本发明实施例一提供一种日志压缩方法的流程图;
图2是日志文件的数据价值曲线图;
图3是本发明实施例二提供的一种日志压缩方法的流程图;
图4是本发明实施例三提供一种日志压缩方法的流程图;
图5是本发明实施例四提供一种日志压缩方法的流程图;
图6是本发明实施例四提供的压缩字典生成流程图;
图7是本发明实施例四提供的日志压缩方法的思路流程图;
图8是本发明实施例四提供的日志压缩方法的压缩流程图;
图9是本发明实施例五提供的一种日志解压缩方法的流程图;
图10是本发明实施例六提供的一种日志解压缩方法的流程图;
图11是本发明实施例六提供的一种日志解压缩方法的解压缩流程图;
图12是本发明实施例七提供的一种日志压缩和解压缩方法的流程图;
图13是本发明实施例八提供的一种日志压缩装置的结构示意图;
图14是本发明实施例九提供的一种日志解压缩装置的结构示意图;
图15是本发明实施例十提供的一种日志压缩设备的结构示意图;
图16是本发明实施例十一提供的一种日志解压缩设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本文使用的术语“列数据”即一列数据,表示一种属性的日志数据,如IP地址、请求URL、***时间等。
本文使用的术语“信息熵”表示信息(事物)混乱程度的一种度量指标。“信息熵”越大,则信息(事物)变化越大(混乱),反之,则变化越小(单一)。通过计算“列数据”的混乱程度,即同一列数据的“信息熵”来判断是否需要压缩处理,当“信息熵”大于设定阈值,则无需压缩,维持原文;反之,则进行用字符编码替换。
本文使用的术语“可压缩配置项”是由满足条件,可以压缩的日志文件的“列数据”对应的列名存储生成的。如:当“信息熵”小于或者等于设定阈值,记录该“信息熵”对应的“列数据”的列名,存储生成“可压缩列配置项”,即通过“信息熵”的计算完成“可压缩列配置项”的生成。
本文使用的术语“哈夫曼编码”是字符编码的一种,根据使用频率最大化的节省数据的存储空间,将出现频率越高的长的数据通过短的字符编码来替换,达到压缩目的。
本文使用的术语“压缩字典”是字符编码与“列数据”中的数据的映射关系文件,以key-value形式存在,其中key为字符编码,value为数据。
实施例一
图1是本发明实施例一提供一种日志压缩方法的流程图,本实施例可适用于集群化的企业对每日大量的日志文件进行压缩的情况,该方法可以由日志压缩装置来执行,该装置可以通过软件,和/或硬件的方式实现,所述装置可以集成在计算机或者服务器的处理器中,如图1所示,该方法具体包括:
步骤110、对原始的日志文件进行解析,得到日志文件的多项列数据;
其中,原始的日志文件默认按照特定的格式记录日志。原始日志文件中的数据可以是各种形式、或者各种种类的数据。原始日志文件可以根据配置文件中的“日志解析规则”,完成对原始的日志文件的分隔(split)解析,例如通过每列数据的结束符合如句号或者分割线对原始的日志文件的数据进行分隔,获取多项列数据。表1本发明实施例一获取的多项列数据的示例,如表1所示,主要有日志主要记录了11个列的信息。一个列即表示一种属性的日志数据,比如:IP地址、请求URL,***时间等,列式即表示以“列”的方式处理。从表1中不难发现,相同列的日志存在大量的重复记录信息,比如:“deviceId”、“x-forward-ip”、“user-agent”等列均存在大量重复信息。这是日志数据的一个重要特点,即:存在大量冗余重复信息,同时日志数据的压缩或恢复过程一般而言无高并发、低延时的要求,这在某种程度非常契合“以时间换空间”的设计思想。本发明实施例将这些冗余信息通过一种压缩方法统一压缩处理,同时在数据恢复时能够无失真的还原,可以极大的节省数据的存储资源。
表1本发明实施例一获取的多项列数据的示例
其中,原始的日志文件可以是存储冷数据的日志文件,在对原始的日志文件进行解析,得到日志文件的多项列数据之前,还可以包括:将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。其中,冷数据可以是历史数据,或者可以是基于数据价值确定的数据。对于日志文件的这种由应用程序实时动态产生的数据,而言通常数据具备一定的时效性。可以划分为三大类:热数据、温数据、冷数据。图2是日志文件的数据价值曲线图,如图2所示,热数据是最近1~2天产生的日志。在日志审计分析、产线bug定位时,会经常用到最近1~2天的数据,所以它的价值最高;温数据是已经过了一段时间,偶尔会用到的数据;冷数据是过了很长时间,极少情况会用到的数据。根据图2中的数据价值曲线,可以认为当日或者距离当日设定天数的日志文件的数据为热数据,为了满足即查即用的要求,不做压缩处理;认为非当日或者非距离当日设定天数的日志文件的数据为冷数据,进行压缩处理后存储。示例的,可以对当日的日志文件进行原文存储,不压缩,即查即用,而对于非当日的历史日志文件可以认为是存储冷数据的日志文件,可以采用本发明实施例任意所述的日志压缩方法进行压缩。可以根据日志文件的实际应用场景节省存储空间,便于存储热数据的日志文件的查阅使用。
步骤120、确定各项列数据的信息熵;
在本发明实施例中,信息熵表示信息(事物)混乱程度的一种度量指标。信息熵值越大,则信息变化越大(混乱),反之,则变化越小(单一)。对于各项列数据的信息熵计算可以采用公式计算,式中,P(xi)为列数据的第i数据xi在该列数据中出现的概率,I(xi)=-logbP(xi)为列数据的第i个数据xi的不确定性函数,是概率P(xi)的减函数,b一般取自然常数e。
步骤130、若列数据的信息熵小于或者等于设定阈值,将列数据的列名对应的所有数据替换成字符编码以进行压缩,得到日志文件的压缩文件。
在本发明实施例中,若列数据的信息熵小于或者等于设定阈值时,表明该列数据中的数据比较单一,大量数据是重复的,需要对该列数据进行压缩,可以将列数据中的数据替换成字符编码以进行压缩。若列数据的信息熵大于设定阈值,表明该列数据中的数据比较混乱,即便替换成字符编码也可能达不到很好的压缩效果,可以保持该列数据中的数据不变。对于需要压缩的列数据可以将其列名添加到可压缩列配置项中,为日志文件的解压缩提供依赖,便于后续解压缩。
在本发明实施例中,对日志文件的压缩可以是将可以压缩的列数据的所有数据替换成简单的字符编码,字符编码可以是根据列数据设定的有规律的数字或者字母等,可以与列数据中的数据存在对应关系,即对于列数据中相同的数据可以采用同一字符编码。通过该方法可以得到日志文件的压缩文件,可以减少日志文件的存储空间。
在本发明实施例的一个实施方式中,可选的,将列数据的列名对应的所有数据替换成字符编码以进行压缩,包括:将列数据的列名对应的所有数据替换成哈夫曼编码。
其中,哈夫曼编码的算法可以是:第一步,将各项列数据的N*1个数据,看成是有N棵树的森林(每棵树仅有一个结点);第二步,在森林中选出根结点的权值最小的两棵树进行合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和,其中权值可以是数据在列数据中出现的概率,也可以是设定值;第三步,从森林中删除选取的两棵树,并将新树加入森林;第四步,重复第二步与第三步,直至森林中只剩一棵树为止,该树即为所求得的哈夫曼树;第五步,得到列数据的各个数据对应的哈夫曼编码,其中出现概率越高的数据,哈夫曼编码越短。通过哈夫曼编码替换列数据中的所有数据,可以将出现概率越高的数据替换成越短的哈夫曼编码,极大的提高了日志的压缩比例。
本发明实施例通过对原始的日志文件进行解析,得到日志文件的多项列数据;确定各项列数据的信息熵;若列数据的信息熵小于或者等于设定阈值,将列数据的列名对应的所有数据替换成字符编码以进行压缩,得到日志文件的压缩文件,解决了日志文件压缩比不高的问题,实现了日志文件百倍级的压缩比,极大的提高了压缩比例,极大的节省了存储空间的使用,可以节省日志文件存储成本的效果。
实施例二
图3是本发明实施例二提供的一种日志压缩方法的流程图,本实施例是对上述技术方案的进行进一步细化,本实施例可以与上述一个或者多个实施例中的各个可选方案结合。
如图3所示,该方法具体包括:
步骤200、将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
步骤210、对原始的日志文件进行解析,得到日志文件的多项列数据。
步骤220、确定各项列数据的信息熵。
步骤230、若列数据的信息熵小于或者等于设定阈值,将列数据的列名对应的所有数据替换成字符编码。
可选的,将列数据的列名对应的所有数据替换成字符编码以进行压缩,包括:将列数据的列名对应的所有数据替换成哈夫曼编码。
步骤240、若列数据的信息熵大于设定阈值,保持列数据不变。
步骤250、若列数据的类型为时间戳数据,将列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量。
其中,时间戳数据一般比较混乱,也不便于采用哈夫曼编码进行替换,而在日志文件中存在大量时间戳数据。本发明实施例采用基于基准时间的时间偏移量替换时间戳数据,可以进一步压缩日志文件。基准时间可以是当前的压缩时间,例如,每日零点对前一日的日志文件进行压缩,可以将前一日的日志文件中的时间戳数据替换为以当日零点整为偏移基准时间的时间偏移量,时间偏移量单位可以是秒,也可以根据实际情况设置为分钟、小时等。时间偏移量也可以是字符编码的一种。
步骤260、基于步骤230-250,得到日志文件的压缩文件。
在本发明实施例中,针对各项列数据,若存在列数据的信息熵小于或者等于设定阈值,将列数据的列名对应的所有数据替换成字符编码,若存在若列数据的信息熵大于设定阈值,保持列数据不变,若存在列数据的类型为时间戳数据,将列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量,最终得到日志的压缩文件。其中,日志文件的压缩文件得到的方式可以是将时间戳类型的数据用时间偏移量替换;对于非时间戳类型的数据可以通过计算信息熵判断列数据的混乱程度,对于数据单一的列数据进行压缩,可以是将数据用字符编码如哈夫曼编码替换;对于数据混乱的列数据,保持数据不变,得到日志文件的压缩文件。
本发明实施例通过将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩;对原始的日志文件进行解析,得到日志文件的多项列数据;确定各项列数据的信息熵;若列数据的信息熵小于或者等于设定阈值,将列数据的列名对应的所有数据替换成字符编码,若列数据的信息熵大于设定阈值,保持列数据不变,若列数据的类型为时间戳数据,将列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量,从而得到日志文件的压缩文件,解决了日志文件压缩比不高的问题,实现了日志文件百倍级的压缩比,极大的提高了压缩比例,对于难以用哈夫曼编码替换的时间戳类型数据也进行了压缩,极大的节省了存储空间的使用,可以节省日志文件存储成本的效果。
表2是本发明实施例二提供的日志文件的压缩文件的示例,由表2可以看出,原本表1中的列数据比较单一的数据被哈夫曼编码替换;列数据比较混乱的数据,保持不变,即维持原文;时间戳数据被时间偏移量替换。
表2本发明实施例二提供的日志文件的压缩文件的示例
表3是本发明实施例的原始的日志文件压缩前后的大小示例,如表3所示,对于原始的日志文件,如存在4233680行记录的日志文件,其压缩后得到的日志文件的压缩文件也是4233680行记录。但是,日志文件的压缩文件的大小明显小了,压缩比达到1%左右,较常规的压缩方法有数十倍的提升,在实际的应用中,极大的提高了原始日志文件的压缩比例,满足企业海量日志文件的存储,可以极大的节省磁盘的存储空间,达到降低成本的目的。
表3本发明实施例的原始的日志文件压缩前后的大小示例
实施例三
图4是本发明实施例三提供一种日志压缩方法的流程图,本实施例是对上述技术方案的进行进一步细化,本实施例可以与上述一个或者多个实施例中的各个可选方案结合。
如图4所示,该方法具体包括:
步骤300、将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
步骤310、对原始的日志文件进行解析,得到日志文件的多项列数据。
步骤320、确定各项列数据的信息熵。
步骤330、若列数据的信息熵小于或者等于设定阈值,将列数据的至少两行数据并行替换成对应的哈夫曼编码。
步骤340、若列数据的信息熵大于设定阈值,保持列数据不变。
步骤350、若列数据的类型为时间戳数据,将列数据中的至少两行时间戳数据并行替换成对应的基于基准时间的时间偏移量。
其中,对于日志的压缩一般没有特别严格的性能要求,在分钟级别完成即可。如果对所有行和列的数据进行遍历解析压缩,时间复杂度为O(N2)。在本发明实施例中,可以通过将列数据的至少两行数据并行处理,即多线程并行处理,可以降低时间复杂度,提高整体数据压缩的效率,降低处理时延,提高总体性能,满足压缩的时间性能要求。
步骤360、基于步骤330-360,得到日志文件的压缩文件。
本发明实施例通过将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩;对原始的日志文件进行解析,得到日志文件的多项列数据;确定各项列数据的信息熵;若列数据的信息熵小于或者等于设定阈值,将列数据的至少两行数据并行替换成对应的哈夫曼编码,若列数据的信息熵大于设定阈值,保持列数据不变,若列数据的类型为时间戳数据,将列数据中至少两行的时间戳数据并行替换成对应的基于基准时间的时间偏移量,从而得到日志文件的压缩文件,解决了日志文件压缩比不高的问题,实现了日志文件百倍级的压缩比,极大的提高了压缩比例,对于难以用哈夫曼编码替换的时间戳类型数据也进行了压缩,极大的节省了存储空间的使用,可以节省日志文件存储成本,同时多线程压缩可以实现日志文件压缩时间短、效率高的效果。
实施例四
图5是本发明实施例四提供一种日志压缩方法的流程图,本实施例是对上述技术方案的进行进一步扩展,本实施例可以与上述一个或者多个实施例中的各个可选方案结合。
如图5所示,该方法具体包括:
步骤401、将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
步骤402、对原始的日志文件进行解析,得到日志文件的多项列数据。
步骤403、确定各项列数据的信息熵。
步骤404、若列数据的信息熵小于或者等于设定阈值,将列数据的至少两行数据并行替换成对应的哈夫曼编码。
步骤405、若列数据的信息熵大于设定阈值,保持列数据不变。
步骤406、若列数据的类型为时间戳数据,将列数据中的至少两行时间戳数据并行替换成对应的基于基准时间的时间偏移量。
步骤407、基于步骤404-406,得到日志文件的压缩文件。
步骤408、根据列数据的列名对应的所有数据和对应的字符编码生成压缩字典;其中,压缩字典包括列数据的列名、列数据的列名对应的所有数据、字符编码、以及列数据的列名对应的所有数据与字符编码的对应关系。
其中,表4为本发明实施例四提供的压缩字典示例,如表4所示,压缩字典可以以“哈夫曼编码-列数据的数据”(“key-value”)形式增量式的持久化保存到压缩字典中,增量式是指对于每项列数据的数据和对应的字符编码以增量的形式逐行在压缩字典中进行添加,相同的“哈夫曼编码-列数据的数据”可以省略。如表4所示,压缩字典可以体现列数据的列名,便于日志文件的解压缩。由表4可以看出,将日志文件中的可压缩列对应的数据可能是很长的数据,可以通过哈夫曼编码压缩成了短字符编码,并通过压缩字典的方式进行数据维护,供后续查询使用。
表4本发明实施例四提供的压缩字典示例
图6是本发明实施例四提供的压缩字典生成流程图,如图6所示,压缩字典的生成过程可以是获取原始的日志文件,如前一日的日志文件,对单列的日志文件进行读取,解析获取列数据,对于列数据计算信息熵,判断信息熵是否大于设定阈值,对于信息熵小于或者等于设定阈值的列数据,将其列名添加到可压缩列配置项,并计算该列数据中数据的哈夫曼编码,将哈夫曼编码与数据以增量式保存压缩字典中,日志文件的所有列均读取结束后,生成压缩字典。
步骤409、对日志文件的压缩文件和压缩字典分别进行压缩,得到日志文件的二次压缩文件和压缩字典的压缩文件。
其中,对日志文件的压缩文件和压缩字典分别进行压缩,可以采用zip、tar、gz等压缩方法,可以进一步减少日志文件的存储容量,节省存储日志文件的成本,也可以在不扩容时增长日志文件的备份周期。
本发明实施例通过将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩;对原始的日志文件进行解析,得到日志文件的多项列数据;确定各项列数据的信息熵;若列数据的信息熵小于或者等于设定阈值,将列数据的至少两行数据并行替换成对应的哈夫曼编码,若列数据的信息熵大于设定阈值,保持列数据不变,若列数据的类型为时间戳数据,将列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量,从而得到日志文件的压缩文件,根据列数据的列名对应的所有数据和对应的字符编码生成压缩字典;对日志文件的压缩文件和压缩字典分别进行压缩,得到日志文件的二次压缩文件和压缩字典的压缩文件,解决了日志文件压缩比不高的问题,对于难以用哈夫曼编码替换的时间戳类型数据也进行了压缩,极大的节省了存储空间的使用,可以节省日志文件存储成本,同时多线程压缩可以实现日志文件压缩时间短、效率高,压缩字典的生成为日志文件的解压缩提供了便利。对日志文件的二次压缩以及对压缩字典的压缩实现了对日志文件的高效的压缩处理。该方法针对统一化,结构化、数据高重复的日志类型数据尤为明显,在一些场景下可以达到百倍的压缩比例,极大的降低数据存储的空间。
示例的,本发明实施例的一个使用过程可以如下:图7是本发明实施例四提供的日志压缩方法的思路流程图,如图7所示,对当日前一日的日志文件进行解析得到日志文件的各项列数据,然后计算各项列数据的信息熵,对于信息熵小于或者等于设定阈值的列数据计算哈夫曼编码,将哈夫曼编码与对应的数据进行存储生成压缩字典,并用哈夫曼编码替换列数据的数据,得到日志文件的压缩文件,对日志文件的压缩文件和压缩字典分别压缩,得到日志文件的二次压缩文件和压缩字典的压缩文件。具体的,图8是本发明实施例四提供的日志压缩方法的压缩流程图,如图8所示,当日零点,可以自动处理当日前一日的原始的日志文件。可以逐行逐列读取日志文件,并根据解析规则,完成列数据的解析获取,其中解析规则可以存储在Config(计算机***配置)日志解析规则中。可以在压缩之前已经将可压缩列的列名存储在Config可压缩列配置项中,并生成压缩字典的压缩文件,可以将压缩字典的压缩文件进行解压缩,将压缩字典缓存在远程字典服务(Remote Dictionary Server,Redis)中,其中,压缩字典的压缩文件的解压缩可以是与压缩字典的压缩对应的解压缩方法。在对日志文件进行压缩时,可以查询可压缩列配置项中的列名,并根据列名获取对应的列数据,查询Redis中是否存在列数据中的数据对应的哈夫曼编码,如果存在,用哈夫曼编码替换列数据中对应的数据;如果不存在,发出异常处理命令,可以方便压缩异常问题的解决,便于查找bug。可以将单行的压缩数据以增量式持久化地写入到日志文件的压缩文件中,最后将日志文件的压缩文件进行二次压缩得到日志文件的二次压缩文件。
实施例五
图9是本发明实施例五提供的一种日志解压缩方法的流程图,本实施例可适用于本发明实施例中日志文件进行压缩后再进行解压缩的情况,该方法可以由日志解压缩装置来执行,该装置可以通过软件,和/或硬件的方式实现,所述装置可以集成在计算机或者服务器的处理器中,如图9所示,该方法具体包括:
步骤410、对日志文件的压缩文件进行解析,得到日志文件的多项列数据。
其中,可以根据配置文件中的“日志解析规则”,完成对日志文件的压缩文件的分隔(split)解析,例如通过每列数据的结束符合如句号或者分割线对日志文件的压缩文件的字符编码进行分隔,获取多项列数据。
步骤420、将列数据中的所有字符编码替换成对应的数据以进行解压缩。
在本发明实施例中,可选的,将所述列数据中的所有哈夫曼编码替换成对应的数据。
在本发明实施例中,可选的,若列数据的类型为时间戳数据,将所述列数据的基于基准时间的时间偏移量替换成对应的时间戳数据。
其中,可以将列数据中的所有字符编号替换成对应的数据,完成日志文件的解压缩。可以查询Redis中的压缩字典,根据压缩字典中字符编号(可以是哈夫曼编码,也可以是时间偏移量),与数据(可以是非时间戳类型的数据,也可以是时间戳类型的数据)的对应关系,将列数据中的所有字符编号替换成对应的数据。如果查询Redis中的压缩字典时,查询到字符编号(可以是哈夫曼编码,也可以是时间偏移量);将字符编号(可以是哈夫曼编码,也可以是时间偏移量),替换为对应的数据(可以是非时间戳类型的数据,也可以是时间戳类型的数据);如果没有查询到字符编号(可以是哈夫曼编码,也可以是时间偏移量),可以显示异常信息,便于压缩异常问题的解决,便于查找bug。
在本发明实施例的一个实施方式中,可选的,将列数据的所有字符编码替换成对应的数据以进行解压缩,还包括:根据压缩字典中的列名,将列名对应的列数据的所有字符编码替换成对应的数据以进行解压缩。其中,可以根据可压缩列配置项中的列名和与列名对应的列数据,查询Redis中的压缩字典。可以精准快速查找到压缩字典中数据与字符编码的对应关系,并且结果准确。
本发明实施例通过对日志文件的压缩文件进行解析,得到日志文件的多项列数据;将列数据中的所有字符编码替换成对应的数据以进行解压缩,解决了日志文件的压缩文件的解压缩问题,实现了日志文件的压缩文件能够无失真还原的效果。
实施例六
图10是本发明实施例六提供的一种日志解压缩方法的流程图,本实施例是对上述技术方案的进行进一步细化,本实施例可以与上述一个或者多个实施例中的各个可选方案结合。
如图10所示,该方法具体包括:
步骤431、对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,得到日志文件的压缩文件和压缩字典。
其中,当对日志文件的压缩文件和压缩字典分别压缩后,在解压缩的过程中,需要先对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,该过程中的解压缩方法可以是zip、tar、gz等压缩方法对应的解压缩方法。解压缩得到的压缩字典可以缓存在Redis中,为日志文件的还原提供字符编码与数据对应关系的查询服务。
步骤432、对日志文件的压缩文件进行解析,得到日志文件的多项列数据。
步骤433、将列数据至少两行中的所有哈夫曼编码的替换成对应的数据以进行解压缩。
步骤434、若列数据的类型为时间戳数据,将列数据中至少两行的基于基准时间的时间偏移量并行替换成对应的时间戳数据。
其中,可以通过将列数据的至少两行字符编码并行处理,即多线程并行处理,提高整体数据压缩的效率,降低处理时延,提高总体性能,满足解压缩的时间性能要求。
本发明实施例通过对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,得到日志文件的压缩文件和压缩字典,对日志文件的压缩文件进行解析,得到日志文件的多项列数据;将列数据的至少两行字符编码替换成对应的数据以进行解压缩,解决了日志文件的压缩文件的解压缩问题,实现了日志文件的压缩文件能够无失真地、快速还原的效果。
本发明实施例的一个使用过程可以如下:图11是本发明实施例六提供的一种日志解压缩方法的解压缩流程图,如图11所示例如对当日前一日的生成的压缩文件(包括日志文件的二次压缩文件和压缩字典的压缩文件)进行解压缩。可以对日志文件的二次压缩文件和压缩字典的压缩文件先进行解压缩,可以是zip、tar、gz等压缩方法对应的解压缩方法,得到日志文件的压缩文件和压缩字典。将压缩字典缓存在Redis中,对日志文件的压缩文件进行解析,得到列数据。根据可压缩列配置项中的列名以及与列名对应的列数据中的字符编码(可以是哈夫曼编码),查询Redis中的压缩字典,如果查找到字符编码(可以是哈夫曼编码或者时间偏移量)对应的数据(可以是非时间戳类型的数据或者时间戳类型的书),将数据替换字符编码;如果查找不到字符编码对应的数据,显示异常处理命令。直至所有的日志文件的压缩文件中的字符编码均被替换为数据,完成日志文件的压缩文件的解压缩,可以做到无失真还原原始的日志文件。
实施例七
图12是本发明实施例七提供的一种日志压缩和解压缩方法的流程图,本实施例可以与上述一个或者多个实施例中的各个可选方案结合。
如图12所示,该方法具体包括:
步骤500、将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
步骤501、对原始的日志文件进行解析,得到日志文件的多项列数据。
步骤502、确定各项列数据的信息熵。
步骤503、若列数据的信息熵小于或者等于设定阈值,将列数据的至少两行数据并行替换成对应的哈夫曼编码。
步骤504、若列数据的信息熵大于设定阈值,保持列数据不变。
步骤505、若列数据的类型为时间戳数据,将列数据中的至少两行时间戳数据并行替换成对应的基于基准时间的时间偏移量。
步骤506、基于步骤503-506,得到日志文件的压缩文件。
步骤507、根据列数据的列名对应的所有数据和对应的字符编码生成压缩字典;其中,压缩字典包括列数据的列名、列数据的列名对应的所有数据、字符编码、以及列数据的列名对应的所有数据与字符编码的对应关系。
步骤508、对日志文件的压缩文件和压缩字典分别进行压缩,得到日志文件的二次压缩文件和压缩字典的压缩文件。
步骤509、对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,得到日志文件的压缩文件和压缩字典。
步骤510、对日志文件的压缩文件进行解析,得到日志文件的多项列数据。
步骤511、将列数据至少两行中的所有哈夫曼编码的替换成对应的数据以进行解压缩。
步骤512、若列数据的类型为时间戳数据,将列数据中至少两行的基于基准时间的时间偏移量并行替换成对应的时间戳数据。
本发明实施例通过将存储冷数据的日志文件进行解析,得到日志文件的多项列数据;确定各项列数据的信息熵;若列数据的信息熵小于或者等于设定阈值,将列数据的至少两行数据并行替换成对应的哈夫曼编码,若列数据的信息熵大于设定阈值,保持列数据不变,若列数据的类型为时间戳数据,将列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量,从而得到日志文件的压缩文件,根据列数据的列名对应的所有数据和对应的字符编码生成压缩字典;对日志文件的压缩文件和压缩字典分别进行压缩,得到日志文件的二次压缩文件和压缩字典的压缩文件,解决了日志文件压缩比不高的问题,对于难以用哈夫曼编码替换的时间戳类型数据也进行了压缩,极大的节省了存储空间的使用,可以节省日志文件存储成本,同时多线程压缩可以实现日志文件压缩时间短、效率高,压缩字典的生成为日志文件的解压缩提供了便利。对日志文件的二次压缩以及对压缩字典的压缩实现了对日志文件的高效的压缩处理。该方法针对统一化,结构化、数据高重复的日志类型数据尤为明显,在一些场景下可以达到百倍的压缩比例,极大的降低数据存储的空间。
此外,本发明实施例还通过对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,得到日志文件的压缩文件和压缩字典,对日志文件的压缩文件进行解析,得到日志文件的多项列数据;将列数据的至少两行字符编码替换成对应的数据以进行解压缩,解决了日志文件的压缩文件的解压缩问题,实现了日志文件的压缩文件能够无失真地、快速还原的效果。
实施例八
图13是本发明实施例八提供的一种日志压缩装置的结构示意图。结合图13,该装置包括:列数据获取模块610、信息熵确定模块620和日志文件的压缩文件获取模块630。
列数据获取模块610,用于对原始的日志文件进行解析,得到日志文件的多项列数据;
信息熵确定模块620,用于确定各项列数据的信息熵;
日志文件的压缩文件获取模块630,用于若列数据的信息熵大于设定阈值,将列数据的列名对应的所有数据替换成字符编码以进行压缩,得到日志文件的压缩文件。
可选的,该装置包括:列数据保持不变模块,用于若列数据的信息熵大于设定阈值,保持列数据不变。
可选的,日志文件的压缩文件获取模块630具体用于将列数据的列名对应的所有数据替换成哈夫曼编码。
可选的,日志文件的压缩文件获取模块630具体用于将列数据的至少两行数据并行替换成对应的字符编码以进行压缩。
可选的,该装置还包括:压缩字典生成模块,用于根据列数据的列名对应的所有数据和对应的字符编码生成压缩字典;其中,压缩字典包括列数据的列名、列数据的列名对应的所有数据、字符编码、以及列数据的列名对应的所有数据与字符编码的对应关系。
可选的,该装置还包括:日志文件的二次压缩文件和压缩字典的压缩文件获取模块,用于对日志文件的压缩文件和压缩字典分别进行压缩,得到日志文件的二次压缩文件和压缩字典的压缩文件。
可选的,该装置还包括:时间戳数据替换模块,用于若列数据的类型为时间戳数据,将列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量。
可选的,该装置还包括:原始的日志文件获取模块,用于将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
本发明实施例所提供的日志压缩装置可执行本发明任意实施例所提供的日志压缩方法,具备执行方法相应的功能模块和有益效果。
实施例九
图14是本发明实施例九提供的一种日志解压缩装置的结构示意图。结合图14,该装置包括:列数据获取模块710和解压缩模块720。
列数据获取模块710,用于对日志文件的压缩文件进行解析,得到日志文件的多项列数据;
解压缩模块720,用于将列数据的所有字符编码替换成对应的数据以进行解压缩。
可选的,解压缩模块720具体用于根据压缩字典中的列名,将列名对应的列数据的所有字符编码替换成对应的数据以进行解压缩。
可选的,解压缩模块720具体用于将列数据中的所有哈夫曼编码替换成对应的数据。
可选的,该装置还包括:时间偏移量替换模块,用于若列数据的类型为时间戳数据,将列数据的基于基准时间的时间偏移量替换成对应的时间数据。
可选的,解压缩模块720具体用于将列数据的至少两行字符编码替换成对应的数据以进行解压缩。
可选的,该装置,还包括:日志文件的二次压缩文件和压缩字典的压缩文件的解压缩模块,用于在对日志文件的压缩文件进行解析,得到日志文件的多项列数据之前,对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,得到日志文件的压缩文件和压缩字典。
本发明实施例所提供的日志解压缩装置可执行本发明任意实施例所提供的日志解压缩方法,具备执行方法相应的功能模块和有益效果。
实施例十
图15是本发明实施例十提供的一种日志压缩设备的结构示意图,如图15所示,该设备包括:
一个或多个处理器810,图15中以一个处理器810为例;
存储器820;
所述设备还可以包括:输入装置830和输出装置840。
所述设备中的处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图15中以通过总线连接为例。
存储器820作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种日志压缩方法或者日志解压缩方法对应的程序指令/模块(例如,附图13所示的列数据获取模块610、信息熵确定模块620和日志文件的压缩文件获取模块630)。处理器810通过运行存储在存储器820中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种日志压缩方法,即:
对原始的日志文件进行解析,得到所述日志文件的多项列数据;确定各项列数据的信息熵;若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
在上述各实施例的基础上,处理器810是设置为通过以下方式保持所述列数据不变:若所述列数据的信息熵大于所述设定阈值,保持所述列数据不变。
在上述各实施例的基础上,处理器810是设置为通过以下方式进行压缩:将所述列数据的列名对应的所有数据替换成哈夫曼编码。
在上述各实施例的基础上,处理器810是设置为通过以下方式进行压缩:将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
在上述各实施例的基础上,处理器810是设置为通过以下方式进行压缩:若列数据的类型为时间戳数据,将所述列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量。
在上述各实施例的基础上,处理器810是设置为通过以下方式进行压缩:将所述列数据的至少两行数据并行替换成对应的字符编码以进行压缩。
在上述各实施例的基础上,处理器810是设置为通过以下方式生成压缩字典:根据所述列数据的列名对应的所有数据和对应的字符编码生成压缩字典;其中,所述压缩字典包括所述列数据的列名、所述列数据的列名对应的所有数据、字符编码、以及所述列数据的列名对应的所有数据与字符编码的对应关系。
在上述各实施例的基础上,处理器810是设置为通过以下方式进行压缩:对所述日志文件的压缩文件和所述压缩字典分别进行压缩,得到所述日志文件的二次压缩文件和所述压缩字典的压缩文件。
存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置830可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏等显示设备。
实施例十一
图16是本发明实施例十一提供的一种日志解压缩设备的结构示意图,如图16所示,该设备包括:
一个或多个处理器910,图16中以一个处理器910为例;
存储器920;
所述设备还可以包括:输入装置930和输出装置940。
所述设备中的处理器910、存储器920、输入装置930和输出装置940可以通过总线或者其他方式连接,图16中以通过总线连接为例。
存储器920作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种日志压缩方法或者日志解压缩方法对应的程序指令/模块(例如,附图14所示的列数据获取模块710和解压缩模块720)。处理器910通过运行存储在存储器920中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种日志压缩方法,即:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
在上述各实施例的基础上,处理器910是设置为通过以下方式进行解压缩:对日志文件的二次压缩文件和压缩字典的压缩文件进行解压缩,得到日志文件的压缩文件和压缩字典。
在上述各实施例的基础上,处理器910是设置为通过以下方式进行解压缩:将列数据的至少两行字符编码替换成对应的数据以进行解压缩。
在上述各实施例的基础上,处理器910是设置为通过以下方式进行解压缩:将列数据的所有字符编码替换成对应的数据以进行解压缩,还包括:根据压缩字典中的列名,将列名对应的列数据的所有字符编码替换成对应的数据以进行解压缩。
在上述各实施例的基础上,处理器910是设置为通过以下方式进行解压缩:将所述列数据中的所有哈夫曼编码替换成对应的数据。
在上述各实施例的基础上,处理器910是设置为通过以下方式进行解压缩:若列数据的类型为时间戳数据,将所述列数据的基于基准时间的时间偏移量替换成对应的时间戳数据。
存储器920可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器920可选包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置930可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置940可包括显示屏等显示设备。
实施例十二
本发明实施例提供了一种计算机可读存储介质,存储介质用于存储指令,指令用于执行本发明任一实施例所提供的一种日志压缩方法:
对原始的日志文件进行解析,得到所述日志文件的多项列数据;
确定各项列数据的信息熵;
若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
或者,实现如本发明实施例提供的一种日志解压缩方法:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;
将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (23)
1.一种日志压缩方法,其特征在于,包括:
对原始的日志文件进行解析,得到所述日志文件的多项列数据;
确定各项列数据的信息熵;
若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
2.根据权利要求1所述的方法,其特征在于,
若所述列数据的信息熵大于所述设定阈值,保持所述列数据不变。
3.根据权利要求1所述的方法,其特征在于,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,包括:
将所述列数据的列名对应的所有数据替换成哈夫曼编码。
4.根据权利要求1所述的方法,其特征在于,还包括:
将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
5.根据权利要求1所述的方法,其特征在于,还包括:
若列数据的类型为时间戳数据,将所述列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量。
6.根据权利要求1所述的方法,其特征在于,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,包括:
将所述列数据的至少两行数据并行替换成对应的字符编码以进行压缩。
7.根据权利要求1所述的方法,其特征在于,还包括:
根据所述列数据的列名对应的所有数据和对应的字符编码生成压缩字典;其中,所述压缩字典包括所述列数据的列名、所述列数据的列名对应的所有数据、字符编码、以及所述列数据的列名对应的所有数据与字符编码的对应关系。
8.根据权利要求7所述的方法,其特征在于,还包括:
对所述日志文件的压缩文件和所述压缩字典分别进行压缩,得到所述日志文件的二次压缩文件和所述压缩字典的压缩文件。
9.一种日志解压缩方法,其特征在于,包括:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;
将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
10.根据权利要求9所述的方法,其特征在于,将所述列数据的所有字符编码替换成对应的数据以进行解压缩,包括:
将所述列数据中的所有哈夫曼编码替换成对应的数据。
11.根据权利要求9所述的方法,其特征在于,还包括:
若列数据的类型为时间戳数据,将所述列数据的基于基准时间的时间偏移量替换成对应的时间戳数据。
12.一种日志压缩设备包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:对原始的日志文件进行解析,得到所述日志文件的多项列数据;
确定各项列数据的信息熵;
若所述列数据的信息熵小于或者等于设定阈值,将所述列数据的列名对应的所有数据替换成字符编码以进行压缩,得到所述日志文件的压缩文件。
13.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式保持所述列数据不变:
若所述列数据的信息熵大于所述设定阈值,保持所述列数据不变。
14.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式进行压缩:
将所述列数据的列名对应的所有数据替换成哈夫曼编码。
15.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式进行压缩:
将存储冷数据的日志文件作为原始的日志文件,以对原始的日志文件进行压缩。
16.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式进行压缩:
若列数据的类型为时间戳数据,将所述列数据中的时间戳数据替换成对应的基于基准时间的时间偏移量。
17.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式进行压缩:
将所述列数据的至少两行数据并行替换成对应的字符编码以进行压缩。
18.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式生成压缩字典:
根据所述列数据的列名对应的所有数据和对应的字符编码生成压缩字典;其中,所述压缩字典包括所述列数据的列名、所述列数据的列名对应的所有数据、字符编码、以及所述列数据的列名对应的所有数据与字符编码的对应关系。
19.根据权利要求12所述的设备,其特征在于,所述处理器是设置为通过以下方式进行压缩:
对所述日志文件的压缩文件和所述压缩字典分别进行压缩,得到所述日志文件的二次压缩文件和所述压缩字典的压缩文件。
20.一种日志解压缩设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
对日志文件的压缩文件进行解析,得到所述日志文件的多项列数据;
将所述列数据中的所有字符编码替换成对应的数据以进行解压缩。
21.根据权利要求20所述的设备,其特征在于,所述处理器是设置为通过以下方式进行解压缩:
将所述列数据中的所有哈夫曼编码替换成对应的数据。
22.根据权利要求20所述的设备,其特征在于,所述处理器是设置为通过以下方式进行解压缩:
若列数据的类型为时间戳数据,将所述列数据的基于基准时间的时间偏移量替换成对应的时间戳数据。
23.一种存储介质,所述存储介质用于存储指令,所述指令用于执行如权利要求1-8任一项所述的一种日志压缩方法或者如权利要求9-11任一项所述的一种日志解压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911077304.7A CN110851409A (zh) | 2019-11-06 | 2019-11-06 | 一种日志压缩、解压缩方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911077304.7A CN110851409A (zh) | 2019-11-06 | 2019-11-06 | 一种日志压缩、解压缩方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851409A true CN110851409A (zh) | 2020-02-28 |
Family
ID=69598504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911077304.7A Pending CN110851409A (zh) | 2019-11-06 | 2019-11-06 | 一种日志压缩、解压缩方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851409A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445773A (zh) * | 2021-02-01 | 2021-03-05 | 北京志翔科技股份有限公司 | 压缩文件的解压缩日志生成方法、装置及可读存储介质 |
CN112860630A (zh) * | 2021-04-08 | 2021-05-28 | 广州趣丸网络科技有限公司 | 一种实时变换数据存储方法、装置、电子设备及存储介质 |
CN113760839A (zh) * | 2020-11-25 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 日志数据压缩处理方法、装置、电子设备和存储介质 |
CN117076388A (zh) * | 2023-10-12 | 2023-11-17 | 中科信工创新技术(北京)有限公司 | 一种文件处理的方法、装置、存储介质及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843341A (zh) * | 2011-06-22 | 2012-12-26 | 阿里巴巴集团控股有限公司 | 数据发送方法及装置、数据接收方法及装置 |
CN104050269A (zh) * | 2014-06-23 | 2014-09-17 | 上海帝联信息科技股份有限公司 | 日志压缩方法及装置、解压缩方法及装置 |
CN104283723A (zh) * | 2014-10-31 | 2015-01-14 | 北京蓝汛通信技术有限责任公司 | 网络访问日志处理方法及装置 |
CN106202213A (zh) * | 2016-06-28 | 2016-12-07 | 深圳市恒扬数据股份有限公司 | 一种fpga二进制文件压缩、解压方法及压缩、解压装置 |
US9521218B1 (en) * | 2016-01-21 | 2016-12-13 | International Business Machines Corporation | Adaptive compression and transmission for big data migration |
CN106547470A (zh) * | 2015-09-16 | 2017-03-29 | 伊姆西公司 | 日志存储优化方法和设备 |
CN107609040A (zh) * | 2017-08-16 | 2018-01-19 | 深信服科技股份有限公司 | 数据分析方法、数据处理装置和计算机可读存储介质 |
CN107665093A (zh) * | 2016-07-29 | 2018-02-06 | 深圳市深信服电子科技有限公司 | 数据存储方法及装置 |
CN110019499A (zh) * | 2017-08-17 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据重分布的处理方法和装置以及电子设备 |
-
2019
- 2019-11-06 CN CN201911077304.7A patent/CN110851409A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843341A (zh) * | 2011-06-22 | 2012-12-26 | 阿里巴巴集团控股有限公司 | 数据发送方法及装置、数据接收方法及装置 |
CN104050269A (zh) * | 2014-06-23 | 2014-09-17 | 上海帝联信息科技股份有限公司 | 日志压缩方法及装置、解压缩方法及装置 |
CN104283723A (zh) * | 2014-10-31 | 2015-01-14 | 北京蓝汛通信技术有限责任公司 | 网络访问日志处理方法及装置 |
CN106547470A (zh) * | 2015-09-16 | 2017-03-29 | 伊姆西公司 | 日志存储优化方法和设备 |
US9521218B1 (en) * | 2016-01-21 | 2016-12-13 | International Business Machines Corporation | Adaptive compression and transmission for big data migration |
CN106202213A (zh) * | 2016-06-28 | 2016-12-07 | 深圳市恒扬数据股份有限公司 | 一种fpga二进制文件压缩、解压方法及压缩、解压装置 |
CN107665093A (zh) * | 2016-07-29 | 2018-02-06 | 深圳市深信服电子科技有限公司 | 数据存储方法及装置 |
CN107609040A (zh) * | 2017-08-16 | 2018-01-19 | 深信服科技股份有限公司 | 数据分析方法、数据处理装置和计算机可读存储介质 |
CN110019499A (zh) * | 2017-08-17 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据重分布的处理方法和装置以及电子设备 |
Non-Patent Citations (2)
Title |
---|
KE YAN等: "Fixed-length string compression for direct operations in column-oriented databases", 《2013 NINTH INTERNATIONAL CONFERENCE ON NATURAL COMPUTATION (ICNC)》 * |
王海燕等: "基于 HBase 数据分类的压缩策略选择方法", 《通信学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760839A (zh) * | 2020-11-25 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 日志数据压缩处理方法、装置、电子设备和存储介质 |
CN112445773A (zh) * | 2021-02-01 | 2021-03-05 | 北京志翔科技股份有限公司 | 压缩文件的解压缩日志生成方法、装置及可读存储介质 |
CN112860630A (zh) * | 2021-04-08 | 2021-05-28 | 广州趣丸网络科技有限公司 | 一种实时变换数据存储方法、装置、电子设备及存储介质 |
CN117076388A (zh) * | 2023-10-12 | 2023-11-17 | 中科信工创新技术(北京)有限公司 | 一种文件处理的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851409A (zh) | 一种日志压缩、解压缩方法、设备及存储介质 | |
CN109034993B (zh) | 对账方法、设备、***及计算机可读存储介质 | |
CN105893337B (zh) | 用于文本压缩和解压缩的方法和设备 | |
US9483533B2 (en) | Method and apparatus for processing time series data | |
US9031997B2 (en) | Log file compression | |
CN114417408B (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN107391770B (zh) | 一种处理数据的方法、装置、设备以及存储介质 | |
KR102559290B1 (ko) | 하이브리드 클라우드 기반의 실시간 데이터 아카이빙 방법 및 시스템 | |
WO2012040391A1 (en) | Compressed distributed storage systems and methods for providing same | |
CN111949710A (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN111552669A (zh) | 数据处理方法、装置、计算设备和存储介质 | |
US11650989B2 (en) | Efficient aggregation of time series data | |
US11675768B2 (en) | Compression/decompression using index correlating uncompressed/compressed content | |
US9633035B2 (en) | Storage system and methods for time continuum data retrieval | |
CN112632568A (zh) | 温度数据的存储和采集方法、***、电子设备和存储介质 | |
US11556497B2 (en) | Real-time archiving method and system based on hybrid cloud | |
CN110188160B (zh) | 数据存储方法和数据读取方法 | |
US10083121B2 (en) | Storage system and storage method | |
CN116303427A (zh) | 数据处理方法及装置、电子设备和存储介质 | |
EP4283486A1 (en) | Storing high volume, low frequency ingest time series data and retrieving same with sub-second latencies | |
KR102529704B1 (ko) | 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치 | |
CN116860509B (zh) | Pst文件的修复方法、设备及存储介质 | |
Sapate | Effective XML Compressor: XMill with LZMA Data Compression | |
US11734012B2 (en) | Systems and methods for efficient transfer of log data | |
US20240080356A1 (en) | File converter for ran parser |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200228 |