一种日志数据库检索装置及检索方法_3

文档序号:9524249阅读:来源:国知局
明如下:
[0112]数据采集组件收到日志采集模块实时发送来的日志数据后,将日志数据存入数据缓存队列;
[0113]数据格式转化组件从数据缓存队列中获取数据进行格式转化。将日志数据的格式转化为索引文件所需的文本格式。数据格式转化组件将不间断的从数据缓存中获取数据,直到缓存中没有数据为止;
[0114]数据格式转化组件将格式转化后,调用索引文件写入组件将索引文件写入磁盘。如果是第一次启动实时创建索引服务,记录第一次接收到的日志数据的入库时间。入库时间的记录按照分表来保存,每个分表记录一个开始创建索引时最早的日志入库时间。
[0115]图8是根据一示例性实施例示出的主动创建索引的序列图。说明如下:
[0116]1)数据采集组件从日志数据库中查询数据。
[0117]例如,查询时可以按照日志发生时间(STARTHME)去顺序查询,每次查询5分钟之内的日志数据;
[0118]如果是第一次启动索引创建服务,查询的开始时间点是索引创建配置中配置的时间点,配置时间点时精确到小时;
[0119]如果是重新启动后,查询的时间点是索引文件写入时记录的时间点;
[0120]每次查询数据时需要限定日志发生时间(STARTHME)和日志的入库时间(INSERTTIME)。入库时间是第一次进行实时创建索引时,针对每个分表记录的日志数据的入库时间。每次查询数据范围是按照日志发生时间限定的5分钟之内并且入库时间是第一次实时创建索引记录的入库时间以前的数据;
[0121]查询数据是一个循环执行的过程,直到连续3个小时没有查询到数据。此时将停止整个主动采集方式创建索引的服务。
[0122]2)数据采集组件将查询返回的数据写入数据缓存队列中。
[0123]3)数据格式转化组件从数据缓存队列中取出日志数据进行格式转换,将日志数据转换为全文索引需要的格式。
[0124]4)将格式转换后的数据写入索引文件中。
[0125]将数据写入索引文件的同时记录写入索引文件中日志的最大日志发生时间。由于日志数据进行了分表,针对每个分表记录日志的最大发生时间。此时记录的日志发生时间,可作为在索引创建服务重新启动后,数据采集组件的起始点。
[0126]数据格式转换和写入索引文件也是一个循环执行的过程,一直到缓存队列中没有可用数据将暂停一段时间,待有数据时继续循环的执行。
[0127]ii)检索模块
[0128]图9是根据一示例性实施例示出的检索模块进行查询处理的序列图,在本实施例的检索模块中还包括查询解析组件和数据后处理组件。说明如下:
[0129]首先Web Server中某个查询任务向检索模块发起查询请求。
[0130]检索模块中的查询请求收集组件接受Web Server的查询请求,查询请求中包括查询条件、要求返回的数量等。
[0131]查询解析组件进行查询解析,即对查询条件以及返回数据的要求解析后生成查询的逻辑表达式。
[0132]查询组件利用逻辑表达式及内存中的索引进行查询,查询到数据后还可将查询到的数据发送给数据后处理组件进行数据后处理,如过滤、排序等处理。
[0133]数据后处理组件处理完成后,将查询结果返回给Web Server中的查询任务。
[0134]iii)索引管理模块
[0135]参见图10所示,索引管理模块可具备以下功能:
[0136]加载索引到内存。根据查询请求中涉及到索引,如果要查询的索引不在内存中的时候,将索引从磁盘加载到内存中。
[0137]控制加载到内存中的索引的数量。根据索引在内存中的最大值配置,监控内存中索引的数量,当内存中索引数量超出最大值后,发出超限请求。
[0138]索引切换。收到索引超限请求后,将把最近最少使用的索引移出内存,将请求的索引加载到内存中。
[0139]性能指标记录。记录索引创建的速率和索引查询的耗时情况。
[0140]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
[0141]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
【主权项】
1.一种日志数据库检索装置,其特征在于,所述装置包括: 索引创建模块,包括: 数据采集组件,用于获取新的日志数据; 数据格式转化组件,用于将所述新的日志数据进行格式转化后建立全文索引; 索引文件写入组件,用于将所述全文索引以文件形式存储在磁盘中; 检索模块,包括: 查询请求收集组件,用于接收查询请求; 查询组件,用于根据所述查询请求及内存中的索引进行查询,并返回查询结果; 索引管理模块,包括: 索引判断组件,用于判断检索模块接收到的查询请求所涉及的索引是否已在内存中,如果不在内存中,则触发索引加载组件; 索引加载组件,用于从磁盘加载查询请求所涉及的索引到内存。2.根据权利要求1所述的装置,其特征在于,所述数据格式转化组件包括: 文本转换子组件,用于将所述新的日志数据转换为文本; 分词及映射子组件,用于对所述文本进行全文分词,在分词后得到的关键词与所属日志数据之间建立映射关系; 索引生成子组件,用于对关键词进行排序,形成由关键词指向日志数据的全文索引。3.根据权利要求2所述的装置,其特征在于,所述映射关系包括: 关键词、出现该关键词的日志数据编号;或者, 关键词、出现该关键词的日志数据编号,以及该关键词的出现次数、出现频率、出现位置中的一种或多种。4.根据权利要求1所述的装置,其特征在于,所述索引加载组件包括: 内存判断子组件,用于判断内存中的索引数量是否超出配置的最大值; 索引切换子组件,用于当所述内存判断子组件判断出内存中的索引数量超出配置的最大值时,将最近最少使用的索引移出内存,并将查询请求所涉及的索引加载到内存中;当所述内存判断子组件判断出内存中的索引数量未超出配置的最大值时,则直接将查询请求所涉及的索引加载到内存中。5.根据权利要求1所述的装置,其特征在于,所述装置还包括: 日志采集模块,用于从数据源实时接收新的日志数据,并将所述新的日志数据发送给所述索引创建模块中的数据采集组件。6.根据权利要求1所述的装置,其特征在于,所述索引文件写入组件,具体用于: 按照自然日对索引进行划分,将每个自然日得到的索引以一个或多个文件的形式存储在磁盘中。7.—种日志数据库检索方法,其特征在于,磁盘中存储有日志数据的全文索引,所述全文索引是根据获取的新的日志数据,将所述新的日志数据进行格式转化后建立的,并以文件形式存储;所述方法包括: 接收查询请求; 判断所述查询请求所涉及的索引是否已在内存中,如果不在内存中,则从所述磁盘加载所述查询请求所涉及的索引到内存; 根据所述查询请求及内存中的索引进行查询,并返回查询结果。8.根据权利要求7所述的方法,其特征在于,所述索引通过如下步骤建立后存储到所述磁盘中: 将所述日志数据转换为文本; 对所述文本进行全文分词,在分词后得到的关键词与所属日志数据之间建立映射关系; 对关键词进行排序,形成由关键词指向日志数据的全文索引。9.根据权利要求7所述的方法,其特征在于,从所述磁盘加载所述查询请求所涉及的索引到内存,包括: 判断内存中的索引数量是否超出配置的最大值; 当内存中的索引数量超出配置的最大值时,将最近最少使用的索引移出内存,并将查询请求所涉及的索引加载到内存中;当内存中的索引数量未超出配置的最大值时,则直接将查询请求所涉及的索引加载到内存中。10.根据权利要求7所述的方法,其特征在于,所述全文索引按照自然日进行划分,每个自然日得到的全文索引以一个或多个文件的形式存储在所述磁盘中。
【专利摘要】本发明实施例提供了一种日志数据库检索装置及检索方法,其中装置包括:索引创建模块,用于获取新的日志数据,将新的日志数据进行格式转化后建立全文索引,将全文索引以文件形式存储在磁盘中;检索模块,用于接收查询请求,根据查询请求及内存中的索引进行查询,并返回查询结果;索引管理模块,用于判断检索模块接收到的查询请求所涉及的索引是否已在内存中,如果不在内存中,则从磁盘加载查询请求所涉及的索引到内存。本发明将索引以文件的形式保存在磁盘中,需要时再加载到内存,可提高检索效率。同时不是维护一个索引文件,而是使索引分块化,实现索引递增式的扩展,避免因索引更新而导致的大量IO操作,提高了查询效率。
【IPC分类】G06F17/30
【公开号】CN105279213
【申请号】CN201510113006
【发明人】孙宝寅, 张磊, 高金明, 唐楚荣, 高峰, 张建军, 苏砫
【申请人】中国移动通信集团广东有限公司, 北京神州泰岳信息安全技术有限公司
【公开日】2016年1月27日
【申请日】2015年3月13日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1