CN115438002A - 日志文件的压缩方法、装置、电子设备和存储介质 - Google Patents
日志文件的压缩方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115438002A CN115438002A CN202111562141.9A CN202111562141A CN115438002A CN 115438002 A CN115438002 A CN 115438002A CN 202111562141 A CN202111562141 A CN 202111562141A CN 115438002 A CN115438002 A CN 115438002A
- Authority
- CN
- China
- Prior art keywords
- log
- message
- log message
- messages
- determining
- 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/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/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/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种日志文件的压缩方法、装置、设备、车辆和存储介质。该方法包括:根据所述日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录;根据所有所述索引记录,生成压缩后的所述日志文件。该方法能够提升日志文件的压缩比,降低日志文件所占空间,从而能够节省空间和资源。
Description
技术领域
本公开涉及汽车技术领域,尤其涉及一种日志文件的压缩方法、装置、电子设备和存储介质。
背景技术
随着电动汽车行业迅速发展,电动汽车的保有量越来越高,电动汽车在行驶过程中产生的大量的控制信号,通常电动汽车内基于控制器局域网络(Controller AreaNetwork,CAN)进行通信,故而在车辆端生成大量的CAN信号,并形成CAN信号的日志文件来记录这些CAN信号。
现有技术中,通常会采用一定的压缩算法或者压缩工具对CAN信号的日志文件进行压缩,节省日志文件所占存储空间以及上传至云端服务器时产生的数据量。然而,现有的压缩算法对于CAN信号的日志文件的压缩率比较小,导致日志文件仍然占用比较大的空间和资源。
发明内容
本公开提供了一种日志文件的压缩方法、装置、电子设备和存储介质,能够提升日志文件的压缩比,降低日志文件所占空间,从而能够节省空间和资源。
第一方面,本公开提供了一种日志文件的压缩方法,包括:
根据所述日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;
根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录;
根据所有所述索引记录,生成压缩后的所述日志文件。
可选的,所述根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录之前,还包括:
获取各所述日志报文分类内所有所述日志报文各自对应的时间戳;
根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,所述根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识,包括:
根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,将各所述日志报文分类内所有所述日志报文按照时间顺序进行排序,确定各所述日志报文分类的日志报文序列;
根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的时间戳差值;
根据最早时间戳以及所述时间戳差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,所述根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录之前,还包括:
获取各所述日志报文分类内所有所述日志报文各自对应的行号;
根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,所述根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识,包括:
根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,将各所述日志报文分类内所有所述日志报文按照行号顺序进行排序,确定各所述日志报文分类的日志报文序列;
根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的行号差值;
根据最小行号以及所述行号差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,所述根据各所述日志报文分类对应的报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录,包括:
将各所述日志报文分类内所有所述日志报文各自对应的所述位置标识分别转换为十六进制数的目标位置标识;
根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的所述目标位置标识,确定所述索引记录。
可选的,所述方法,还包括:
对压缩后的所述日志文件进行再压缩。
可选的,所述根据所述日志文件中的多个日志报文,确定多个日志报文分类,包括:
获取预先设置的多个预设报文编码;
针对每个所述预设报文编码,确定所述日志文件中与每个所述预设报文编码相同的所有所述日志报文为一个所述日志报文分类。
第二方面,本公开提供了一种日志文件的压缩装置,包括:
确定模块,用于根据所述日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录;
生成模块,用于根据所有所述索引记录,生成压缩后的所述日志文件。
第三方面,本公开提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一种方法的步骤。
第四方面,本公开提供了一种车辆,包括:微处理器,所述为处理器用于执行第一方面提供的任一种方法的步骤。
第五方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一种方法的步骤。
本公开提供的技术方案中,通过根据日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各日志报文分类对应的报文编码,以及各日志报文分类内所有日志报文各自对应的位置标识,确定索引记录;根据所有索引记录,生成压缩后的日志文件,能够将日志文件中报文编码的相同日志报文进行聚类,使得日志文件中仅包括不同的报文编码以及不同报文编码各自对应的所有日志报文的位置标识,能够提升日志文件的压缩比,降低压缩后的日志文件所占的空间,从而能够节省空间和资源。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开提供的一种日志文件的压缩方法的流程示意图;
图2为本公开提供的另一种日志文件的压缩方法的流程示意图;
图3为本公开提供的又一种日志文件的压缩方法的流程示意图;
图4为本公开提供的又一种日志文件的压缩方法的流程示意图;
图5为本公开提供的又一种日志文件的压缩方法的流程示意图;
图6为本公开提供的又一种日志文件的压缩方法的流程示意图;
图7为本公开提供的又一种日志文件的压缩方法的流程示意图;
图8为本公开提供的又一种日志文件的压缩方法的流程示意图;
图9为本公开提供的一种日志文件的压缩装置的结构示意图;
图10为本公开提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开中的日志文件可以为CAN信号的日志文件,相应的日志报文可以是CAN信号的日志报文。日志文件中包括多个日志报文,每个日志报文在日志文件中占据一行的位置,如此,多个日志报文在日志文件中形成多行的日志报文序列。
本公开中的报文编码用于指示报文内容,不同报文编码对应不同报文内容,若两个日志报文的报文编码相同,则认为这两个日志报文的报文内容相同。本公开中的位置标识,用于指示日志报文在日志报文序列中的位置,例如,位置标识可以是行号,或者,可以是时间戳。
本公开的技术方案中,通过根据日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各日志报文分类对应的报文编码,以及各日志报文分类内所有日志报文各自对应的位置标识,确定索引记录;根据所有索引记录,生成压缩后的日志文件,能够将日志文件中报文编码的相同日志报文进行聚类,使得日志文件中仅包括不同的报文编码以及不同报文编码各自对应的所有日志报文的位置标识,从而能够提升日志文件的压缩比,降低压缩后的日志文件所占的空间,从而能够节省空间和资源。
下面以几个具体的实施例来详细描述本方案:
图1为本公开提供的一种日志文件的压缩方法的流程示意图,如图1所示,包括:
S101,根据所述日志文件中的多个日志报文,确定多个日志报文分类。
每个日志报文分类内包括至少一个报文编码相同的日志报文。
车辆在行驶过程中,会产生大量的CAN信号,基于生成的CAN信号,可以生成日志报文,其中,每个CAN信号可以形成一个日志报文,如此,可以形成大量的日志报文。生成的所有日志报文中,可以按照预设周期进行划分,形成日志文件,使得日志文件中可以存储预设时间段内的多个日志报文。例如,若以一天为周期,则每天生成的多个日志报文存储于一个日志文件中。形成的日志文件可以保存于车辆本地,或者,上传至云端服务器,存储于云端服务器以释放车辆本地的存储空间。
车辆中的CAN信号具有周期性,重复度比较高,基于此,可以将日志文件中的所有日志报文划分为多个日志报文分类,不同的日志分类对应不同的CAN信号,即不同的报文内容,报文内容可以是以报文编码的形式进行展示和存储。也就是说,不同的日志分类对应不同的报文编码,同一日志分类中包括至少一个报文编码相同且产生时间不同的日志报文。
例如,日志文件中包括7个日志报文,其中,日志报文A-日志报文G的报文编码分别为0179、00b2、0358、0110、0179、021d、00b2,如此,可以确定出5个日志报文分类,分别为日志报文分类S1、日志报文分类S2、日志报文分类S3、日志报文分类S4和日志报文分类S5。日志报文分类S1对应的报文编码为0179,日志报文分类S2对应的报文编码为00b2,日志报文分类S3对应的报文编码为0358,日志报文分类S4对应的报文编码为0110,日志报文分类S5对应的报文编码为021d,日志报文分类S1和日志分类S2中均包括2个日志报文,日志报文分类S3、日志报文分类S4和日志报文分类S5中均包括1个日志报文。
S102,根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录。
示例性的,位置标识可以是日志报文的时间戳,或者,可以是日志报文在日志文件中的行号。根据日志报文分类对应的报文编码和日志报文分类内的所有日志报文各自对应的时间戳/行号,可以确定报文编码对应的索引记录,显然,一条索引记录中仅包括一个报文编码,如此可以将一个日志报文分类压缩为一条索引记录。
例如,基于上述实施例,日志报文分类S1中的日志报文对应的行号分别为1和5,日志报文分类S2中的日志报文对应的行号分别为2和7,日志报文分类S3中的日志报文对应的行号为3,日志报文分类S4中的日志报文对应的行号为4,日志报文分类S5中的日志报文对应的行号为6。如此,基于报文编码0179,以及行号1和行号5,可以确定索引记录R1;基于报文编码00b2,以及行号2和行号7,可以确定索引记录R2;基于报文编码0358和行号3确定索引记录R3;基于报文编码0110和行号4确定索引记录R4;基于报文编码021d和行号6确定索引记录R5。
需要说明的是,本实施例仅以位置标识为行号进行示例性说明,在其他实施方式中位置标识还可以是时间戳,或者还可以是其他参数,本实施例对此不做具体限制。
S103,根据所有所述索引记录,生成压缩后的所述日志文件。
根据一个日志报文分类可以确定一条索引记录,则基于日志文件中的多个日志报文分类可以确定出多条索引记录,如此,可以将日志文件压缩为多条索引记录,也就是说,生成的压缩后的日志文件即为多条索引记录。例如,基于上述实施例中的索引记录R1-索引记录R5,生成的压缩后的日志文件可以表示为:{(0179:1,5),(00b2:2,7),(0358:3),(0110:4),(021d:6)}。
需要说明的是,这里仅以四字符的字符串为例对报文编码进行示例性说明,在实际应用中,报文编码一般为二十个字符左右的字符串,报文编码所占的空间远大于位置标识所占的空间,如此可以降低压缩后的日志文件所占的空间。经实践,日志文件的压缩比可以达到3.3,而现有的压缩算法对于CAN日志文件的压缩比仅为1,显然,能够提升日志文件的压缩比。
本实施例中,通过根据日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各日志报文分类对应的报文编码,以及各日志报文分类内所有日志报文各自对应的位置标识,确定索引记录;根据所有索引记录,生成压缩后的日志文件,能够将日志文件中报文编码的相同日志报文进行聚类,使得日志文件中仅包括不同的报文编码以及不同报文编码各自对应的所有日志报文的位置标识,从而能够提升日志文件的压缩比,降低压缩后的日志文件所占的空间,从而能够节省空间和资源。
图2为本公开提供的另一种日志文件的压缩方法的流程示意图,图2为图1所示实施例的基础上,执行是S103之前,还包括:
S201,获取各所述日志报文分类内所有所述日志报文各自对应的时间戳。
示例性的,基于CAN信号生成日志报文时,在生成报文编码的同时也会生成该日志报文对应的时间戳,如此,可以获取到各日志报文分类中所有日志报文各自对应的时间戳。
例如,日志报文分类S1中的日志报文A对应的时间戳为12091200,日志报文E对应的时间戳为12091521;日志报文分类S2中的日志报文B对应的时间戳为12091233,日志报文G对应的时间戳为12091654;日志报文分类S3中的日志报文C对应的时间戳为12091306;日志报文分类S4中的日志报文D对应的时间戳为12091444;日志报文分类S5中的日志报文F对应的时间戳为12091600。
S202,根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
时间戳所占的空间小于报文编码所占的空间,示例性的,可以将每个日志报文分类内所有日志报文各自对应的时间戳,确定为该日志报文分类中的所有日志报文各自对应的位置标识。基于位置标识可以确定出日志报文分类中日志报文的数量以及日志报文在日志文件中的位置,如此,可以合并日志报文分类中的所有日志报文,确定出索引记录。
例如,基于上述实施例,日志报文分类S1中的日志报文A对应的位置标识为12091200,日志报文E对应的位置标识为12091521;日志报文分类S2中的日志报文B对应的位置标识为12091233,日志报文G对应的位置标识为12091654;日志报文分类S3中的日志报文C对应的位置标识为12091306;日志报文分类S4中的日志报文D对应的位置标识为12091444;日志报文分类S5中的日志报文F对应的位置标识为12091600。则确定出的索引记录R1为(0179:12091200,12091521),索引记录R2为(00b2:12091233,12091654),索引记录R3为(0358:12091306),索引记录R4为(0110:12091444),索引记录R5为(021d:12091600),基于索引记录R1-索引记录R5生成的压缩后的日志文件可以表示为{(0179:12091200,12091521),(00b2:12091233,12091654),(0358:12091306),(0110:12091444),(021d:12091600)}。
本实施例中,通过获取各日志报文分类内所有日志报文各自对应的时间戳;根据各日志报文分类内所有日志报文各自对应的时间戳,确定各日志报文分类内所有日志报文各自对应的位置标识,如此,可以基于日志报文对应的时间戳来压缩日志文件。
图3为本公开提供的又一种日志文件的压缩方法的流程示意图,图3为图1所示实施例的基础上,执行是S103之前,还包括:
S201’,获取各所述日志报文分类内所有所述日志报文各自对应的行号。
示例性的,基于CAN信号生成日志报文时,并不会生成该日志报文对应的时间戳,从而从生成多条无时间戳的日志报文,能够减小日志报文所占的空间。日志报文存储于日志文件中时,每条日志报文占据一行的位置,因此,每条日志报文可以对应有一个行号,如此,可以获取到各日志报文分类中所有日志报文各自对应的行号。
例如,日志报文分类S1中的日志报文A对应的行号为1,日志报文E对应的行号为5;日志报文分类S2中的日志报文B对应的行号为2,日志报文G对应的行号为7;日志报文分类S3中的日志报文C对应的行号为3;日志报文分类S4中的日志报文D对应的行号为4;日志报文分类S5中的日志报文F对应的行号为6。
S202’,根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
行号所占的空间小于报文编码所占的空间,示例性的,可以将每个日志报文分类内所有日志报文各自对应的行号,确定为该日志报文分类中的所有日志报文各自对应的位置标识。基于位置标识可以确定出日志报文分类中日志报文的数量以及日志报文在日志文件中的位置,如此,可以合并日志报文分类中的所有日志报文,确定出索引记录。
例如,基于上述实施例,日志报文分类S1中的日志报文A对应的位置标识为1,日志报文E对应的位置标识为5;日志报文分类S2中的日志报文B对应的位置标识为2,日志报文G对应的位置标识为7;日志报文分类S3中的日志报文C对应的位置标识为3;日志报文分类S4中的日志报文D对应的位置标识为4;日志报文分类S5中的日志报文F对应的位置标识为5。则确定出的索引记录R1为(0179:1,5),索引记录R2为(00b2:2,7),索引记录R3为(0358:3),索引记录R4为(0110:4),索引记录R5为(021d:6),基于索引记录R1-索引记录R5生成的压缩后的日志文件可以表示为{(0179:1,5),(00b2:2,7),(0358:3),(0110:4),(021d:6)}。
本实施例中,通过获取各日志报文分类内所有日志报文各自对应的行号;根据各日志报文分类内所有日志报文各自对应的行号,确定各日志报文分类内所有日志报文各自对应的位置标识,如此,能够基于日志报文的行号来压缩日志文件。
图4为本公开提供的又一种日志文件的压缩方法的流程示意图,图4为图2所示实施例的基础上,执行S202时的一种可能的实现方式的具体描述,如下:
S2021,根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,将各所述日志报文分类内所有所述日志报文按照时间顺序进行排序,确定各所述日志报文分类的日志报文序列。
示例性的,若日志报文分类内包括多个日志报文,根据多个日志报文各自对应的时间戳,按照时间戳的先后顺序,将日志报文分类内的所有日志报文进行排序,形成日志报文分类对应的日志报文序列,即日志报文序列中的所有日志报文是基于时间戳的先后顺序进行排列的。
例如,日志报文分类S1对应的报文编码为01790001782025fe1621,日志报文分类S1中包括日志报文A、日志报文B、日志报文C和日志报文D,其中,日志报文A对应的时间戳早于日志报文B对应的时间戳,日志报文C对应的时间戳早于日志报文A对应的时间戳,日志报文B对应的时间戳早于日志报文D对应的时间戳,基于这四个时间戳的先后顺序,形成的日志报文分类S1的日志报文序列X1为{日志报文C,日志报文A,日志报文B,日志报文D}。
S2022,根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的时间戳差值。
基于上述实施例中确定的日志报文序列,可以确定日志报文序列中的首个日志报文对应的时间戳为最早时间戳,此外,还可以确定出日志报文序列中的相邻日志报文的时间戳的差值,即相邻日志报文的时间戳差值。
例如,基于上述实施例,日志报文序列X1{日志报文C,日志报文A,日志报文B,日志报文D}中首个日志报文为日志报文C,日志报文C对应的时间戳12091300为最早时间戳,并依次确定出日志报文C与日志报文A的时间戳差值为0054,日志报文A与日志报文B的时间戳差值为0126,日志报文B与日志报文D的时间戳差值为0223。
S2023,根据最早时间戳以及所述时间戳差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可以将最早时间戳确定为日志报文序列中首个日志报文对应的位置标识,可以将各时间戳差值确定为各相邻日志报文中后一个日志报文对应的位置标识,如此,可以确定日志报文序列中所有日志报文各自对应的位置标识,即日志报文分类中所有日志报文各自对应的位置标识。如此基于最早时间戳和时间戳差值,可以合并各日志报文分类内的所有日志报文,确定出索引记录,基于时间戳差值确定的位置标识,能够降低位置标识所占的空间,从而能够减小索引记录所占的空间,进而能够提升日志文件的压缩比。
例如,基于上述实施例,最早时间戳12091300即为日志报文C对应的位置标识,确定时间戳差值0054为日志报文A对应的位置标识,时间戳差值0126为日志报文B对应的位置标识,时间戳差值0223为日志报文D对应的位置标识。基于这四个日志报文各自对应的位置标识,确定的索引记录为(01790001782025fe1621:12091300,0054,0126,0223)。
本实施例中,通过根据各日志报文分类内所有日志报文各自对应的时间戳,将各日志报文分类内所有日志报文按照时间顺序进行排序,确定各日志报文分类的日志报文序列;根据各日志报文分类的日志报文序列,确定相邻日志报文的时间戳差值;根据最早时间戳以及时间戳差值,确定各日志报文分类内所有日志报文各自对应的位置标识,如此,可以基于最早时间戳和时间戳差值来压缩日志文件,时间戳差值所占的空间较小,能够降低位置标识所占的空间,即减小索引记录所占的空间,从而能够提升日志文件的压缩比。
图5为本公开提供的又一种日志文件的压缩方法的流程示意图,图5为图3所示实施例的基础上,执行S202’时的一种可能的实现方式的具体描述,如下:
S2021’,根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,将各所述日志报文分类内所有所述日志报文按照行号顺序进行排序,确定各所述日志报文分类的日志报文序列。
示例性的,若日志报文分类内包括多个日志报文,根据多个日志报文各自对应的行号,按照行号从小到大的顺序,将日志报文分类内的所有日志报文进行排序,形成日志报文分类对应的日志报文序列,即日志报文序列中的所有日志报文是基于行号从小到大的顺序进行排列的。
例如,日志报文分类S1对应的报文编码为01790001782025fe1621,日志报文分类S1中包括日志报文A、日志报文B、日志报文C和日志报文D,其中,日志报文A对应的行号小于日志报文B对应的行号,日志报文C对应的行号小于日志报文A对应的行号,日志报文B对应的行号小于日志报文D对应的行号,基于这四个行号从小到大的顺序,形成的日志报文分类S1的日志报文序列X1为{日志报文C,日志报文A,日志报文B,日志报文D}。
S2022’,根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的行号差值。
基于上述实施例中确定的日志报文序列,可以确定日志报文序列中的首个日志报文对应的行号为最小行号,此外,还可以确定出日志报文序列中的相邻日志报文的行号的差值,即相邻日志报文的行号差值。
例如,基于上述实施例,日志报文序列X1{日志报文C,日志报文A,日志报文B,日志报文D}中首个日志报文为日志报文C,日志报文C对应的行号13为最小行号,并依次确定出日志报文C与日志报文A行号差值为44,日志报文A与日志报文B的行号差值为199,日志报文B与日志报文D的行号差值为629。
S2023’,根据最小行号以及所述行号差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可以将最小行号确定为日志报文序列中首个日志报文对应的位置标识,可以将各行号差值确定为各相邻日志报文中后一个日志报文对应的位置标识,如此,可以确定日志报文序列中所有日志报文各自对应的位置标识,即日志报文分类中所有日志报文各自对应的位置标识。如此基于最小行号和行号差值,可以合并日志报文分类中的所有日志报文,确定出索引记录,基于行号差值确定的位置标识,能够降低位置标识所占的空间,从而能够减小索引记录所占的空间,进而能够提升日志文件的压缩比。
例如,基于上述实施例,最小行号13即为日志报文C对应的位置标识,确定行号差值44为日志报文A对应的位置标识,行号差值199为日志报文B对应的位置标识,行号差值629为日志报文D对应的位置标识。基于这四个日志报文各自对应的位置标识,确定的索引记录为(01790001782025fe1621:13,44,199,629)。
本实施例中,通过根据各日志报文分类内所有日志报文各自对应的行号,将各日志报文分类内所有日志报文按照行号顺序进行排序,确定各日志报文分类的日志报文序列;根据各日志报文分类的日志报文序列,确定相邻日志报文的行号差值;根据最小行号以及行号差值,确定各日志报文分类内所有日志报文各自对应的位置标识,如此,可以基于最小行号和行号差值来压缩日志文件,行号差值所占的空间较小,能够降低位置标识所占的空间,即减小索引记录所占的空间,从而能够提升日志文件的压缩比。
图6为本公开提供又一种日志文件的压缩方法的流程示意图,图6为图1所示实施例的基础上,执行S102时的一种可能的实现方式的具体描述,如下:
S1021,将各所述日志报文分类内所有所述日志报文各自对应的所述位置标识分别转换为十六进制数的目标位置标识。
位置标识可以是时间戳和时间戳差值,或者,可以是行号和行号差值,通常获取到的位置标识均为十进制位置标识,可以将十进制位置标识转换为十六进制数的位置标识,即目标位置标识,以及减小位置标识所占空间。
S1022,根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的所述目标位置标识,确定所述索引记录。
基于每个日志报文分类内的所有日志报文各自对应的目标位置标识,确定索引记录,也就是说,索引记录中的位置标识均为十六进制数的位置标识,能够降低索引记录所占的空间。
本实施例中,通过将各日志报文分类内所有日志报文各自对应的位置标识分别转换为十六进制数的目标位置标识;根据各日志报文分类对应的报文编码,以及各日志报文分类内所有日志报文各自对应的目标位置标识,确定索引记录,能够降低位置标识所占的空间,即降低索引记录所占的空间,从而能够提升日志文件的压缩比。
图7为本公开提供又一种日志文件的压缩方法的流程示意图,图7为图1所示实施例的基础上,还包括:
S104,对压缩后的所述日志文件进行再压缩。
基于所有索引记录来压缩日志文件,生成压缩后的日志文件,再基于zip或者gzip压缩算法对压缩后的日志文件进一步压缩,能够进一步提升日志文件的压缩比。
图8为本公开提供又一种日志文件的压缩方法的流程示意图,图8为图1所示实施例的基础上,执行S101时的一种可能的实现方式的具体描述,如下:
S1011,获取预先设置的多个预设报文编码。
车辆行驶过程中每次产生的CAN信号为预设CAN信号中的一个,即日志报文的报文编码为多个预设报文编码中的一个,多个预设报文编码是基于多个预设CAN信号确定的。例如,预先设置的多个预设报文编码为M个不同的报文编码,车辆每次生成的报文编码位这M个预设报文编码中的一个。
S1012,针对每个所述预设报文编码,确定所述日志文件中与每个所述预设报文编码相同的所有所述日志报文为一个所述日志报文分类。
示例性的,从M个预设报文编码中选择一个预设报文编码,针对该预设报文编码,遍历日志文件中的所有日志报文,可以基于异或运算确定出与该预设报文编码相同的日志报文,确定出的所有日志报文即为一个日志报文分类中的所有日志报文。依次类推,可以确定出M个日志报文分类。
例如,从3个预设报文编码中选择预设报文编码Y1,根据预设报文编码Y1遍历日志文件,从日志文件中确定出报文编码与预设报文编码Y1相同的日志报文为日志报文A和日志报文B,则日志报文分类S1包括日志报文A和日志报文B。同理,根据预设报文编码Y2可以确定出日志报文分类S2包括日志报文C和日志报文D,根据预设报文编码Y3可以确定出日志报文分类S3包括日志报文E。
需要说明的是,本实施例仅以通过异或运算确定与预设报文编码相同的日志报文为例进行示例性说明,并不作为对确定与预设报文编码相同的日志报文的具体实施方式的限制。
本实施例中,通过获取预先设置的多个预设报文编码;针对每个预设报文编码,确定日志文件中与每个预设报文编码相同的所有日志报文为一个日志报文分类,实现方式比较简单,能够提升压缩效率。
本公开还提供一种日志文件的压缩装置,图9为本公开提供的一种日志文件的压缩装置的结构示意图,如图9所示,日志文件的压缩装置包括:
确定模块110,用于根据所述日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录。
生成模块120,用于根据所有所述索引记录,生成压缩后的所述日志文件。
可选的,确定模块110,还用于根据获取各所述日志报文分类内所有所述日志报文各自对应的时间戳;根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,确定模块110,进一步用于根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,将各所述日志报文分类内所有所述日志报文按照时间顺序进行排序,确定各所述日志报文分类的日志报文序列;根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的时间戳差值;根据最早时间戳以及所述时间戳差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,确定模块110,还用于获取各所述日志报文分类内所有所述日志报文各自对应的行号;根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,确定模块110,进一步用于根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,将各所述日志报文分类内所有所述日志报文按照行号顺序进行排序,确定各所述日志报文分类的日志报文序列;根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的行号差值;根据最小行号以及所述行号差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
可选的,确定模块110,进一步用于将各所述日志报文分类内所有所述日志报文各自对应的所述位置标识分别转换为十六进制数的目标位置标识;根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的所述目标位置标识,确定所述索引记录。
可选的,压缩模块,用于对压缩后的所述日志文件进行再压缩。
可选的,确定模块110,还用于获取预先设置的多个预设报文编码;针对每个所述预设报文编码,确定所述日志文件中与每个所述预设报文编码相同的所有所述日志报文为一个所述日志报文分类。
本发明实施例所提供的装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
本公开还提供一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现上述方法实施例的步骤。
图10为本公开提供的一种电子设备的结构示意图,图10示出了适于用来实现本发明实施例实施方式的示例性电子设备的框图。图10显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器16,系统存储器28,连接不同系统组件(包括系统存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM、DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。
处理器16通过运行存储在系统存储器28中的多个程序中的至少一个程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的方法实施例。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例的步骤。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)域连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本公开还提供一种车辆,包括微处理器,微处理器用于执行上述方法实施例的步骤。
本公开还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行实现上述方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种日志文件的压缩方法,其特征在于,包括:
根据所述日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;
根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录;
根据所有所述索引记录,生成压缩后的所述日志文件。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录之前,还包括:
获取各所述日志报文分类内所有所述日志报文各自对应的时间戳;
根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识,包括:
根据各所述日志报文分类内所有所述日志报文各自对应的所述时间戳,将各所述日志报文分类内所有所述日志报文按照时间顺序进行排序,确定各所述日志报文分类的日志报文序列;
根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的时间戳差值;
根据最早时间戳以及所述时间戳差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
4.根据权利要求1所述的方法,其特征在于,所述根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录之前,还包括:
获取各所述日志报文分类内所有所述日志报文各自对应的行号;
根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
5.根据权利要求4所述的方法,其特征在于,所述根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识,包括:
根据各所述日志报文分类内所有所述日志报文各自对应的所述行号,将各所述日志报文分类内所有所述日志报文按照行号顺序进行排序,确定各所述日志报文分类的日志报文序列;
根据各所述日志报文分类的所述日志报文序列,确定相邻所述日志报文的行号差值;
根据最小行号以及所述行号差值,确定各所述日志报文分类内所有所述日志报文各自对应的所述位置标识。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录,包括:
将各所述日志报文分类内所有所述日志报文各自对应的所述位置标识分别转换为十六进制数的目标位置标识;
根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的所述目标位置标识,确定所述索引记录。
7.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
对压缩后的所述日志文件进行再压缩。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述日志文件中的多个日志报文,确定多个日志报文分类,包括:
获取预先设置的多个预设报文编码;
针对每个所述预设报文编码,确定所述日志文件中与每个所述预设报文编码相同的所有所述日志报文为一个所述日志报文分类。
9.一种日志文件的压缩装置,其特征在于,包括:
确定模块,用于根据所述日志文件中的多个日志报文,确定多个日志报文分类,每个日志报文分类内包括至少一个报文编码相同的日志报文;根据各所述日志报文分类对应的所述报文编码,以及各所述日志报文分类内所有所述日志报文各自对应的位置标识,确定索引记录;
生成模块,用于根据所有所述索引记录,生成压缩后的所述日志文件。
10.一种电子设备,其特征在于,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的方法的步骤。
11.一种车辆,其特征在于,包括:微处理器,所述微处理器用于执行权利要求1-9任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111562141.9A CN115438002A (zh) | 2021-12-17 | 2021-12-17 | 日志文件的压缩方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111562141.9A CN115438002A (zh) | 2021-12-17 | 2021-12-17 | 日志文件的压缩方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115438002A true CN115438002A (zh) | 2022-12-06 |
Family
ID=84240087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111562141.9A Pending CN115438002A (zh) | 2021-12-17 | 2021-12-17 | 日志文件的压缩方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115438002A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806832A (zh) * | 2024-02-26 | 2024-04-02 | 北京搜狐新媒体信息技术有限公司 | 一种提升模型训练速度的方法、系统、设备及存储介质 |
CN117806832B (zh) * | 2024-02-26 | 2024-06-04 | 北京搜狐新媒体信息技术有限公司 | 一种提升模型训练速度的方法、系统、设备及存储介质 |
-
2021
- 2021-12-17 CN CN202111562141.9A patent/CN115438002A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806832A (zh) * | 2024-02-26 | 2024-04-02 | 北京搜狐新媒体信息技术有限公司 | 一种提升模型训练速度的方法、系统、设备及存储介质 |
CN117806832B (zh) * | 2024-02-26 | 2024-06-04 | 北京搜狐新媒体信息技术有限公司 | 一种提升模型训练速度的方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388598B (zh) | 电子装置、数据存储方法及存储介质 | |
CN113079072B (zh) | 一种车辆数据采集方法及其系统、计算机设备、存储介质 | |
CN111563075B (zh) | 一种业务校验系统、方法及设备和存储介质 | |
CN109165209B (zh) | 数据库中对象类型的数据校验方法、装置、设备及介质 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、系统、电子设备和介质 | |
CN109408050B (zh) | 用于轨道车辆的设备应用程序接口的代码生成方法及装置 | |
CN112861501A (zh) | 报表的生成方法、装置、电子设备及计算机可读存储介质 | |
CN112182036A (zh) | 数据的发送与写入方法、装置、电子设备及可读存储介质 | |
CN110888862A (zh) | 数据存储、查询方法、装置、服务器和存储介质 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN113239106A (zh) | Excel文件导出方法、装置、电子设备及存储介质 | |
CN113010116A (zh) | 一种数据处理方法、装置、终端设备及可读存储介质 | |
CN113468175B (zh) | 数据压缩方法、装置、电子设备及存储介质 | |
CN113760894A (zh) | 数据调取方法、装置、电子设备及存储介质 | |
CN111414339B (zh) | 一种文件的处理方法、系统、装置、设备及介质 | |
CN115438002A (zh) | 日志文件的压缩方法、装置、电子设备和存储介质 | |
CN110309974B (zh) | 物流运输目的地预测方法、装置、电子设备、存储介质 | |
CN116595588A (zh) | 铁路信号系统开发过程安全分析方法及装置 | |
CN111162792A (zh) | 一种电力负荷数据的压缩方法及装置 | |
CN115967604A (zh) | 报文传输方法、装置、电子设备及计算机可读存储介质 | |
CN112069549B (zh) | 一种在Bootstrap-table插件导出表格时图片下载方法及系统 | |
CN112162951A (zh) | 一种信息检索方法、服务器及存储介质 | |
CN111667214B (zh) | 基于二维码的货物信息获取方法、装置及电子设备 | |
CN113342283A (zh) | 用户位置信息存储方法、装置、电子设备及可读存储介质 | |
CN111353279A (zh) | 字符编码的转换方法、装置和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |