一种日志数据处理方法、装置、设备和存储介质与流程

文档序号:19310531发布日期:2019-12-03 23:28阅读:183来源:国知局
一种日志数据处理方法、装置、设备和存储介质与流程

本发明实施例涉及计算机技术领域,尤其涉及一种日志数据处理方法、装置、设备和存储介质。



背景技术:

随着互联网技术发展,服务器规模也越来越大。日志作为服务器基本的输出数据,对服务状态监控和问题排查起到重要作用。如何高效的存储和检索日志数据成为日志管理的关键部分。通常情况下,先对存储的日志数据进行分词,提取出关键词集合,然后根据关键词集合中的关键词,以及与关键词对应的日志数据,建立倒排索引,得到字典文件。在进行日志数据检索时,获取日志数据检索请求中的待检索关键词,然后根据待检索关键词在字典文件中进行检索,获得与待检索关键词匹配的目标关键词,再根据目标关键词对应的日志数据信息获取日志数据。

现有技术中,常用字典文件结构有以下三种:哈希表、信息检索程序库lucene中的有穷状态转换器(finitestatetransducer)结构、以及有序数组。哈希表结构复杂,需要基于内存实现,内存占用会随着字典数据的增加线性增长。fst结构需要把字典数据加载到内存中,当输入的字典数据公共前缀很少时,在内存中的占用空间大。有序数组中的字典数据是原始形态,在内存中的占用空间大。



技术实现要素:

本发明实施例提供一种日志数据处理方法、装置、设备和存储介质,以减小字典文件中的数据在内存中的占用空间,节省资源,提高关键词检索速度。

第一方面,本发明实施例提供了一种日志数据处理方法,包括:

获取日志数据存储请求,所述日志数据存储请求中携带至少一个日志文件;

对所述日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将所述各日志文件存储至预设的数据库中;

根据预设分词算法,对所述各日志文件中的日志数据进行分词,得到关键词集合;

根据所述关键词集合,以及所述各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,所述字典文件为有序数组,所述字典文件中的数组元素为所述关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针;

按照预设的分组策略,将所述字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至所述预设的数据库中;

提取所述各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构;其中,所述索引结构为有序数组,所述索引结构中的数组元素数量等于数据块数量。

第二方面,本发明实施例还提供了一种日志数据处理装置,包括:

存储请求获取模块,用于获取日志数据存储请求,所述日志数据存储请求中携带至少一个日志文件;

文件存储模块,用于对所述日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将所述各日志文件存储至预设的数据库中;

集合获取模块,用于根据预设分词算法,对所述各日志文件中的日志数据进行分词,得到关键词集合;

索引建立模块,用于根据所述关键词集合,以及所述各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,所述字典文件为有序数组,所述字典文件中的数组元素为所述关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针;

数据块存储模块,用于按照预设的分组策略,将所述字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至所述预设的数据库中;

索引结构建立模块,用于提取所述各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构;其中,所述索引结构为有序数组,所述索引结构中的数组元素数量等于数据块数量。

第三方面,本发明实施例还提供了一种计算机设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例所述的日志数据处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明实施例所述的日志数据处理方法。

本发明实施例的技术方案,通过获取携带至少一个日志文件的日志数据存储请求,将各日志文件存储至预设的数据库中,然后根据预设分词算法对各日志文件中的日志数据进行分词,得到关键词集合,根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,之后按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中,并提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构,可以通过将字典文件划分为多个数据块,并对各数据块进行压缩存储,可以减少数据量,从而减小字典文件中的数据在内存中的占用空间,节省资源,可以建立与数据块对应的索引结构,从而可以快速根据与数据块对应的索引结构,确定待检索关键词所在数据块,提高关键词检索速度。

附图说明

图1a为本发明实施例一提供的一种日志数据处理方法的流程图;

图1b为本发明实施例一提供的一种数据块的示意图;

图1c为本发明实施例一提供的一种与数据块对应的索引结构的示意图;

图2a为本发明实施例二提供的一种日志数据处理方法的流程图;

图2b为本发明实施例二提供的一种数据块辅助索引结构的示意图;

图2c为本发明实施例二提供的一种索引元素辅助索引结构的示意图;

图2d为本发明实施例二提供的一种数据块的示意图;

图2e为本发明实施例二提供的一种关键词辅助索引结构的示意图;

图3为本发明实施例三提供的一种日志数据处理方法的流程图;

图4为本发明实施例四提供的一种日志数据处理装置的结构示意图;

图5为本发明实施例五提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1a为本发明实施例一提供的一种日志数据处理方法的流程图。本实施例可适用于对日志文件中的日志数据进行处理的情况,该方法可以由本发明实施例提供的日志数据处理装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。如图1a所示,本实施例的方法具体包括:

步骤101、获取日志数据存储请求,日志数据存储请求中携带至少一个日志文件。

其中,日志数据存储请求用于请求对日志文件进行存储。日志文件中包含日志数据。

步骤102、对日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将各日志文件存储至预设的数据库中。

可选的,按照预设排序规则,对日志数据存储请求中的日志文件进行排序。根据排序结果,生成日志文件的文件标识。然后将各日志文件存储至预设的数据库中。

示例性的,预设排序规则可以为按照日文件的生成时间从远到近进行排序。文件标识可以为数字标识。按照日文件的生成时间从远到近,对日志数据存储请求中的日志文件进行排序,然后根据按照数字从小到大,依次生成各日志文件的文件标识。

步骤103、根据预设分词算法,对各日志文件中的日志数据进行分词,得到关键词集合。

其中,各日志文件中的日志数据为一个字符串。根据预设分词算法,找出字符串中的所有单词,即对各日志文件中的日志数据进行分词。找出字符串中的所有单词后,对所有单词进行过滤。过滤掉无具体含义,不代表概念的单词,过滤掉标点符号。过滤后的单词即为与日志文件对应的关键词。与各日志文件对应的关键词构成关键词集合。

步骤104、根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,字典文件为有序数组,字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针。

其中,根据关键词集合,以及各日志文件的文件标识,建立倒排索引,即建立“关键字”与“包含该关键字的日志文件的文件标识”的对应关系,得到字典文件和文件标识文件。

获取关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针,按照关键词的unicode编码从小到大对关键词集合中的各关键词,以及与各关键词匹配的指向文件标识文件的指针进行排序,将排序结果保存为有序的数组格式,得到字典文件。字典文件为有序数组。字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针。每一个数组元素有唯一对应的数据元素序号,即每一个关键词有唯一对应的数据元素序号。

文件标识文件中包含各日志文件的文件标识。通过与关键词匹配的指向文件标识文件的指针可以在文件标识文件中获取包含该关键字的日志文件的文件标识。

步骤105、按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中。

可选的,按照预设的分组策略,将字典文件划分为至少两个数据块,可以包括:依次从字典文件中获取设定数量的数组元素作为一个数据块;当字典文件中的剩余数组元素的数量小于所述设定数量时,获取所述剩余数组元素作为一个数据块。

字典文件可以划分为多个数据块。数据块内的数组元素局部有序,即数据块内的数组元素按照关键词的unicode编码从小到大有序排列。

示例性的,字典文件为有序数组,包含1106个数组元素,即包含1106个关键词,以及与关键词匹配的指向文件标识文件的指针。依次从字典文件中获取200个数组元素作为一个数据块。当字典文件中的剩余数组元素的数量小于200时,获取剩余数组元素作为一个数据块。由此,将字典文件划分为6个数据块。前5个数据块中,每个数据块包含200个关键词。最后一个数据块包含106个关键词。除最后一个数据块外,每个数据块包含的数组元素数量一致,即包含的关键词数量一致。

对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中。可选的,通过预设压缩算法对各数据块进行压缩。

由此,通过将字典文件划分为多个数据块,并对各数据块进行压缩存储,可以减少数据量,从而减小字典文件中的数据在内存中的占用空间,节省资源。

步骤106、提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构。

其中,索引结构为有序数组,索引结构中的数组元素数量等于数据块数量。

起始关键词为数据块中的第一个关键词。结束关键词为数据块中的最后一个关键词。提取出每个数据块中的第一个关键词和最后一个关键词作为索引元素,建立与数据块对应的索引结构。

可选的,提取各数据块中的起始关键词和结束关键词作为索引元素,得到与数据块对应的索引结构,可以包括:获取全部数据块中的一个数据块作为当前处理数据块;提取当前处理数据块中的起始关键词和结束关键词,作为与当前处理数据块匹配的索引元素后,返回执行获取全部数据块中的一个数据块作为当前处理数据块的操作,直至确定与各数据块匹配的索引元素;将与各数据块匹配的索引元素保存为有序数组,得到与数据块对应的索引结构。

关键词在数据块中有序。依次获取与各数据块对应的索引元素,判断日志数据查询请求中的待检索关键词的unicode编码是否大于等于起始关键词的unicode编码,且小于等于结束关键词的unicode编码。当待检索关键词的unicode编码大于等于起始关键词的unicode编码,且小于等于结束关键词的unicode编码时,表明当前数据块可能包含待检索关键词,需要进一步获取当前数据块中的数据进行下一步判断,其它情况就是当前数据块不包含待检索关键词。

图1b为本发明实施例一提供的一种数据块的示意图。字典文件划分了6个数据块:chunk1、chunk2、chunk3、chunk4、chunk5、chunk6。数据块chunk1中的数组元素占用了字典文件中的1-1000字节。数据块chunk2中的数组元素占用了字典文件中的1001-1600字节。数据块chunk3中的数组元素占用了字典文件中的1601-3000字节。数据块chunk4中的数组元素占用了字典文件中的3001-4000字节。数据块chunk5中的数组元素占用了字典文件中的4001-4800字节。数据块chunk6中的数组元素占用了字典文件中的4801-6000字节。

图1c为本发明实施例一提供的一种与数据块对应的索引结构的示意图。索引结构包含的6个索引元素。索引元素1与数据块chunk1对应,包括起始关键词startterm1和结束关键词endterm1,占用了索引结构中的1-22字节。索引元素2与数据块chunk2对应,包括起始关键词startterm2和结束关键词endterm2,占用了索引结构中的23-30字节。索引元素3与数据块chunk3对应,包括起始关键词startterm3和结束关键词endterm3,占用了索引结构中的31-38字节。索引元素4与数据块chunk4对应,包括起始关键词startterm4和结束关键词endterm4,占用了索引结构中的39-50字节。索引元素5与数据块chunk5对应,包括起始关键词startterm5和结束关键词endterm5,占用了索引结构中的51-65字节。索引元素6与数据块chunk6对应,包括起始关键词startterm6和结束关键词endterm6,占用了索引结构中的66-80字节。

本发明实施例提供了一种日志数据处理方法,通过获取携带至少一个日志文件的日志数据存储请求,将各日志文件存储至预设的数据库中,然后根据预设分词算法对各日志文件中的日志数据进行分词,得到关键词集合,根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,之后按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中,并提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构,可以通过将字典文件划分为多个数据块,并对各数据块进行压缩存储,可以减少数据量,从而减小字典文件中的数据在内存中的占用空间,节省资源,可以建立与数据块对应的索引结构,从而可以快速根据与数据块对应的索引结构,确定待检索关键词所在数据块,提高关键词检索速度。

实施例二

图2a为本发明实施例二提供的一种日志数据处理方法的流程图。本实施例可以与上述一个或者多个实施例中各个可选方案结合,在本实施例中,提取各数据块中的起始关键词和结束关键词作为索引元素,得到与数据块对应的索引结构,可以包括:获取全部数据块中的一个数据块作为当前处理数据块;提取当前处理数据块中的起始关键词和结束关键词,作为与当前处理数据块匹配的索引元素后,返回执行获取全部数据块中的一个数据块作为当前处理数据块的操作,直至确定与各数据块匹配的索引元素;将与各数据块匹配的索引元素保存为有序数组,得到与数据块对应的索引结构。

以及,在建立与数据块对应的索引结构之后,可以还包括:根据各数据块的标识信息,以及各数据块在字典文件中的偏移量,建立数据块辅助索引结构;根据各数据块的标识信息,以及索引元素在索引结构中的偏移量,建立索引元素辅助索引结构;根据各关键词在对应的数据块中的序号,以及各关键词在对应的数据块中的偏移量,建立关键词辅助索引结构。

如图2a所示,本实施例的方法具体包括:

步骤201、获取日志数据存储请求,日志数据存储请求中携带至少一个日志文件。

步骤202、对日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将各日志文件存储至预设的数据库中。

步骤203、根据预设分词算法,对各日志文件中的日志数据进行分词,得到关键词集合。

步骤204、根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,字典文件为有序数组,字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针。

步骤205、按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中。

可选的,按照预设的分组策略,将字典文件划分为至少两个数据块,可以包括:依次从字典文件中获取设定数量的数组元素作为一个数据块;当字典文件中的剩余数组元素的数量小于所述设定数量时,获取所述剩余数组元素作为一个数据块。

步骤206、获取全部数据块中的一个数据块作为当前处理数据块。

步骤207、提取当前处理数据块中的起始关键词和结束关键词,作为与当前处理数据块匹配的索引元素后,返回执行获取全部数据块中的一个数据块作为当前处理数据块的操作,直至确定与各数据块匹配的索引元素。

步骤208、将与各数据块匹配的索引元素保存为有序数组,得到与数据块对应的索引结构。

步骤209、根据各数据块的标识信息,以及各数据块在字典文件中的偏移量,建立数据块辅助索引结构。

其中,由于关键词本身大小不一致,会导致数据块大小不一致。为了快速定位数据块位置,根据各数据块的标识信息,以及各数据块在字典文件中的偏移量,建立数据块辅助索引结构。可选的,数据块辅助索引结构为固定4个字节宽的整型数组,下标表示数据块的标识信息,数据元素为对应数据块在字典文件中的偏移量。数据块在字典文件中的偏移量是数据块中的数组元素在字典文件中占用的最后一个字节。

图2b为本发明实施例二提供的一种数据块辅助索引结构的示意图。针对如图1b所示的数据块,根据各数据块的标识信息,以及各数据块在字典文件中的偏移量,建立如图2b所示的数据块辅助索引结构。数据块chunk1的标识信息为0。数据块chunk1在字典文件中的偏移量为1000。数据块chunk2的标识信息为1。数据块chunk2在字典文件中的偏移量为1600。数据块chunk3的标识信息为2。数据块chunk3在字典文件中的偏移量为3000。数据块chunk4的标识信息为3。数据块chunk4在字典文件中的偏移量为4000。数据块chunk5的标识信息为4。数据块chunk5在字典文件中的偏移量为4800。数据块chunk6的标识信息为5。数据块chunk6在字典文件中的偏移量为6000。

步骤210、根据各数据块的标识信息,以及索引元素在索引结构中的偏移量,建立索引元素辅助索引结构。

其中,由于关键词本身大小不一致,会导致与数据块匹配的索引元素大小不一致。为了快速定位索引元素位置,根据各数据块的标识信息,以及索引元素在索引结构中的偏移量,建立索引元素辅助索引结构。可选的,索引元素辅助索引结构为固定4个字节宽的整型数组,下标表示数据块的标识信息,数据元素为对应索引元素在索引结构中的偏移量。索引元素在索引结构中的偏移量是索引元素在索引结构中占用的最后一个字节。

图2c为本发明实施例二提供的一种索引元素辅助索引结构的示意图。针对如图1c所示的索引结构,根据各数据块的标识信息,以及索引元素在索引结构中的偏移量,建立如图2c所示的数据块辅助索引结构。数据块chunk1的标识信息为0。与数据块chunk1匹配的索引元素在索引结构中的偏移量为22。数据块chunk2的标识信息为1。与数据块chunk2匹配的索引元素在索引结构中的偏移量为30。数据块chunk3的标识信息为2。与数据块chunk3匹配的索引元素在索引结构中的偏移量为38。数据块chunk4的标识信息为3。与数据块chunk4匹配的索引元素在索引结构中的偏移量为50。数据块chunk5的标识信息为4。与数据块chunk5匹配的索引元素在索引结构中的偏移量为65。数据块chunk6的标识信息为5。与数据块chunk6匹配的索引元素在索引结构中的偏移量为80。

步骤211、根据各关键词在对应的数据块中的序号,以及各关键词在对应的数据块中的偏移量,建立关键词辅助索引结构。

其中,由于关键词本身大小不一致,为了快速定位每个关键词,需要建立关键词辅助索引结构。可选的,关键词辅助索引结构为固定4个字节宽的整型数组,下标表示关键词在对应的数据块中的序号,数据元素为关键词在对应的数据块中的偏移量。关键词在对应的数据块中的偏移量是关键词在数据块中占用的最后一个字节。

图2d为本发明实施例二提供的一种数据块的示意图。数据块中依次包括6个关键词:a,aaa,abc,bear,z,zaaa。关键词a在对应的数据块中的偏移量为1。关键词aaa在对应的数据块中的偏移量为4。关键词abc在对应的数据块中的偏移量为7。关键词bear在对应的数据块中的偏移量为11。关键词z在对应的数据块中的偏移量为12。关键词zaaa在对应的数据块中的偏移量为16。

图2e为本发明实施例二提供的一种关键词辅助索引结构的示意图。针对如图2d所示的数据块,根据各关键词在对应的数据块中的序号,以及各关键词在对应的数据块中的偏移量,建立如图2d所示的关键词辅助索引结构。关键词a在对应的数据块中的序号为0。关键词aaa在对应的数据块中的序号为1。关键词abc在对应的数据块中的序号为2。关键词bear在对应的数据块中的序号为3。关键词z在对应的数据块中的序号为4。关键词zaaa在对应的数据块中的序号为5。

本发明实施例提供了一种日志数据处理方法,通过根据各数据块的标识信息,以及各数据块在字典文件中的偏移量,建立数据块辅助索引结构;根据各数据块的标识信息,以及索引元素在索引结构中的偏移量,建立索引元素辅助索引结构;根据各关键词在对应的数据块中的序号,以及各关键词在对应的数据块中的偏移量,建立关键词辅助索引结构,可以通过建立数据块辅助索引结构,实现快速定位数据块位置,可以通过建立索引元素辅助索引结构,实现快速定位索引元素位置,可以通过建立关键词辅助索引结构,实现快速定位每个关键词。

实施例三

图3为本发明实施例三提供的一种日志数据处理方法的流程图。本实施例可以与上述一个或者多个实施例中各个可选方案结合,在本实施例中,在建立与数据块对应的索引结构之后,可以还包括:获取日志数据查询请求,日志数据存储请求中携带待检索关键词;使用二分查找法,在与数据块对应的索引结构中,获取与待检索关键词匹配的目标数据块;使用二分查找法,在目标数据块中,获取与待检索关键词匹配的目标关键词;根据与目标关键词匹配的指向文件标识文件的指针,获取与待检索关键词匹配的文件标识,并根据文件标识获取日志文件作为日志数据查询结果。

如图3所示,本实施例的方法具体包括:

步骤301、获取日志数据存储请求,日志数据存储请求中携带至少一个日志文件。

步骤302、对日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将各日志文件存储至预设的数据库中。

步骤303、根据预设分词算法,对各日志文件中的日志数据进行分词,得到关键词集合。

步骤304、根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,字典文件为有序数组,字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针。

步骤305、按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中。

步骤306、提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构。

其中,索引结构为有序数组,索引结构中的数组元素数量等于数据块数量。

步骤307、获取日志数据查询请求,日志数据存储请求中携带待检索关键词。

其中,日志数据查询请求用于请求获取包含待检索关键词的日志文件。

步骤308、使用二分查找法,在与数据块对应的索引结构中,获取与待检索关键词匹配的目标数据块。

其中,二分查找法是一种在有序数组中查找某一特定元素的搜索算法。与待检索关键词匹配的目标数据块是包含待检索关键词的数据块。

使用二分查找法获取与各数据块对应的索引元素,判断日志数据查询请求中的待检索关键词的unicode编码是否大于等于起始关键词的unicode编码,且小于等于结束关键词的unicode编码。当待检索关键词的unicode编码大于等于起始关键词的unicode编码,且小于等于结束关键词的unicode编码时,表明当前数据块包含待检索关键词,需要进一步获取当前数据块中的数据进行下一步判断,其它情况就是当前数据块不包含待检索关键词。

步骤309、使用二分查找法,在目标数据块中,获取与待检索关键词匹配的目标关键词。

其中,当获取与待检索关键词匹配的目标数据块时,从字典文件中得到目标数据块的数据,在目标数据块内部继续使用二分法查询待检索关键词是否存在。

步骤310、根据与目标关键词匹配的指向文件标识文件的指针,获取与待检索关键词匹配的文件标识,并根据文件标识获取日志文件作为日志数据查询结果。

示例性的,根据与目标关键词匹配的指向文件标识文件的指针,获取与待检索关键词匹配的文件标识“1”。根据文件标识“1”,在预设的数据库中获取日志文件作为日志数据查询结果。

本发明实施例提供了一种日志数据处理方法,通过获取日志数据查询请求,日志数据存储请求中携带待检索关键词,然后使用二分查找法,在与数据块对应的索引结构中,获取与待检索关键词匹配的目标数据块;之后继续使用二分查找法,在目标数据块中,获取与待检索关键词匹配的目标关键词,最后根据与目标关键词匹配的指向文件标识文件的指针,获取与待检索关键词匹配的文件标识,并根据文件标识获取日志文件作为日志数据查询结果,可以在进行日志数据查询时,快速根据与数据块对应的索引结构,确定待检索关键词所在数据块,提高关键词检索速度。

实施例四

图4为本发明实施例四提供的一种日志数据处理装置的结构示意图。如图4所示,所述装置可以配置于计算机设备,包括:存储请求获取模块401、文件存储模块402、集合获取模块403、索引建立模块404、数据块存储模块405以及索引结构建立模块406。

其中,存储请求获取模块401,用于获取日志数据存储请求,日志数据存储请求中携带至少一个日志文件;文件存储模块402,用于对日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将各日志文件存储至预设的数据库中;集合获取模块403,用于根据预设分词算法,对各日志文件中的日志数据进行分词,得到关键词集合;索引建立模块404,用于根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,字典文件为有序数组,字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针;数据块存储模块405,用于按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中;索引结构建立模块406,用于提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构;其中,索引结构为有序数组,索引结构中的数组元素数量等于数据块数量。

本发明实施例提供了一种日志数据处理装置,通过获取携带至少一个日志文件的日志数据存储请求,将各日志文件存储至预设的数据库中,然后根据预设分词算法对各日志文件中的日志数据进行分词,得到关键词集合,根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,之后按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至预设的数据库中,并提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构,可以通过将字典文件划分为多个数据块,并对各数据块进行压缩存储,可以减少数据量,从而减小字典文件中的数据在内存中的占用空间,节省资源,可以建立与数据块对应的索引结构,从而可以快速根据与数据块对应的索引结构,确定待检索关键词所在数据块,提高关键词检索速度。

在上述各实施例的基础上,数据块存储模块405可以包括:第一获取单元,用于依次从字典文件中获取设定数量的数组元素作为一个数据块;第二获取单元,用于当字典文件中的剩余数组元素的数量小于设定数量时,获取剩余数组元素作为一个数据块。

在上述各实施例的基础上,索引结构建立模块406可以包括:数据块获取单元,用于获取全部数据块中的一个数据块作为当前处理数据块;索引元素获取单元,用于提取当前处理数据块中的起始关键词和结束关键词,作为与当前处理数据块匹配的索引元素后,返回执行获取全部数据块中的一个数据块作为当前处理数据块的操作,直至确定与各数据块匹配的索引元素;索引结构建立单元,用于将与各数据块匹配的索引元素保存为有序数组,得到与数据块对应的索引结构。

在上述各实施例的基础上,日志数据处理装置可以还包括:第一结构建立模块,用于根据各数据块的标识信息,以及各数据块在字典文件中的偏移量,建立数据块辅助索引结构;第二结构建立模块,用于根据各数据块的标识信息,以及索引元素在索引结构中的偏移量,建立索引元素辅助索引结构;第三结构建立模块,用于根据各关键词在对应的数据块中的序号,以及各关键词在对应的数据块中的偏移量,建立关键词辅助索引结构。

在上述各实施例的基础上,日志数据处理装置可以还包括:查询请求获取模块,用于获取日志数据查询请求,日志数据存储请求中携带待检索关键词;数据块获取模块,用于使用二分查找法,在与数据块对应的索引结构中,获取与待检索关键词匹配的目标数据块;关键词获取模块,用于使用二分查找法,在目标数据块中,获取与待检索关键词匹配的目标关键词;查询结果获取模块,用于根据与目标关键词匹配的指向文件标识文件的指针,获取与待检索关键词匹配的文件标识,并根据文件标识获取日志文件作为日志数据查询结果。

上述日志数据处理装置可执行本发明任意实施例所提供的日志数据处理方法,具备执行日志数据处理方法相应的功能模块和有益效果。

实施例五

图5为本发明实施例五提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,计算机设备12以通用计算机设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。处理器16包括但不限于ai处理器。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

计算机设备12的处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的日志数据处理方法。该方法具体可以包括:获取日志数据存储请求,日志数据存储请求中携带至少一个日志文件;对日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将各日志文件存储至预设的数据库中;根据预设分词算法,对各日志文件中的日志数据进行分词,得到关键词集合;根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,字典文件为有序数组,字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针;按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至所述预设的数据库中;提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构;其中,索引结构为有序数组,索引结构中的数组元素数量等于数据块数量。

实施例六

本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所提供的日志数据处理方法。该方法具体可以包括:获取日志数据存储请求,日志数据存储请求中携带至少一个日志文件;对日志数据存储请求中的日志文件进行排序,得到各日志文件的文件标识,并将各日志文件存储至预设的数据库中;根据预设分词算法,对各日志文件中的日志数据进行分词,得到关键词集合;根据关键词集合,以及各日志文件的文件标识,建立倒排索引,得到字典文件和文件标识文件,字典文件为有序数组,字典文件中的数组元素为关键词集合中的关键词,以及与关键词匹配的指向文件标识文件的指针;按照预设的分组策略,将字典文件划分为至少两个数据块,对各数据块进行压缩,将压缩后的各数据块存储至所述预设的数据库中;提取各数据块中的起始关键词和结束关键词作为索引元素,建立与数据块对应的索引结构;其中,索引结构为有序数组,索引结构中的数组元素数量等于数据块数量。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++、ruby、go,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言,以及ai算法的计算机语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1