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

文档序号:9524249阅读:388来源:国知局
一种日志数据库检索装置及检索方法
【技术领域】
[0001]本发明涉及数据库技术领域,尤其涉及一种日志数据库检索装置及检索方法。
【背景技术】
[0002]企业级的数据库中通常都存储有成千上万的数据。以审计系统为例,其数据库中存储上亿条甚至几十亿条供审计用的日志是非常普遍的情况。当这类日志数据库存储了海量数据时,在海量数据中能否实现方便快捷的检索对于审计等工作至关重要。
[0003]现有技术中,为日志数据库建立的索引保存在系统的内存中,当用户调用索引时,会从内存找到该日志在数据库中的唯一标识,然后到数据库中进行检索,这种方式会大大增加数据库的运算负荷,降低检索的效率;而且当索引更新时,会对内存中的索引进行大量的10操作以更新建立在内存中的索引,这也会使得检索效率降低。

【发明内容】

[0004]本发明提供一种日志数据库检索装置及检索方法,以提高日志数据库的检索效率。
[0005]根据本发明实施例的第一方面,提供一种日志数据库检索装置,所述装置包括:
[0006]索引创建模块,包括:
[0007]数据采集组件,用于获取新的日志数据;
[0008]数据格式转化组件,用于将所述新的日志数据进行格式转化后建立全文索引;
[0009]索引文件写入组件,用于将所述全文索引以文件形式存储在磁盘中;
[0010]检索模块,包括:
[0011]查询请求收集组件,用于接收查询请求;
[0012]查询组件,用于根据所述查询请求及内存中的索引进行查询,并返回查询结果;
[0013]索引管理模块,包括:
[0014]索引判断组件,用于判断检索模块接收到的查询请求所涉及的索引是否已在内存中,如果不在内存中,则触发索引加载组件;
[0015]索引加载组件,用于从磁盘加载查询请求所涉及的索引到内存。
[0016]可选的,所述数据格式转化组件包括:
[0017]文本转换子组件,用于将所述新的日志数据转换为文本;
[0018]分词及映射子组件,用于对所述文本进行全文分词,在分词后得到的关键词与所属日志数据之间建立映射关系;
[0019]索引生成子组件,用于对关键词进行排序,形成由关键词指向日志数据的全文索引。
[0020]可选的,所述映射关系包括:
[0021]关键词、出现该关键词的日志数据编号;或者,
[0022]关键词、出现该关键词的日志数据编号,以及该关键词的出现次数、出现频率、出现位置中的一种或多种。
[0023]可选的,所述索引加载组件包括:
[0024]内存判断子组件,用于判断内存中的索引数量是否超出配置的最大值;
[0025]索引切换子组件,用于当所述内存判断子组件判断出内存中的索引数量超出配置的最大值时,将最近最少使用的索引移出内存,并将查询请求所涉及的索引加载到内存中;当所述内存判断子组件判断出内存中的索引数量未超出配置的最大值时,则直接将查询请求所涉及的索引加载到内存中。
[0026]可选的,所述装置还包括:
[0027]日志采集模块,用于从数据源实时接收新的日志数据,并将所述新的日志数据发送给所述索引创建模块中的数据采集组件。
[0028]可选的,所述索引文件写入组件,具体用于:
[0029]按照自然日对索引进行划分,将每个自然日得到的索引以一个或多个文件的形式存储在磁盘中。
[0030]根据本发明实施例的第二方面,提供一种日志数据库检索方法,磁盘中存储有日志数据的全文索引,所述全文索引是根据获取的新的日志数据,将所述新的日志数据进行格式转化后建立的,并以文件形式存储;所述方法包括:
[0031]接收查询请求;
[0032]判断所述查询请求所涉及的索引是否已在内存中,如果不在内存中,则从所述磁盘加载所述查询请求所涉及的索引到内存;
[0033]根据所述查询请求及内存中的索引进行查询,并返回查询结果。
[0034]可选的,所述索引通过如下步骤建立后存储到所述磁盘中:
[0035]将所述日志数据转换为文本;
[0036]对所述文本进行全文分词,在分词后得到的关键词与所属日志数据之间建立映射关系;
[0037]对关键词进行排序,形成由关键词指向日志数据的全文索引。
[0038]可选的,从所述磁盘加载所述查询请求所涉及的索引到内存,包括:
[0039]判断内存中的索引数量是否超出配置的最大值;
[0040]当内存中的索引数量超出配置的最大值时,将最近最少使用的索引移出内存,并将查询请求所涉及的索引加载到内存中;当内存中的索引数量未超出配置的最大值时,则直接将查询请求所涉及的索引加载到内存中。
[0041]可选的,所述全文索引按照自然日进行划分,每个自然日得到的全文索引以一个或多个文件的形式存储在所述磁盘中。
[0042]本发明的实施例提供的技术方案可以包括以下有益效果:
[0043]在现有技术中,为日志数据库建立的索引保存在系统的内存,并未进行文件化存储,当用户调用索引时,会从内存找到该日志在数据库中的唯一标识,然后到数据库中进行检索,这种方式减少了对磁盘空间的消耗,但是会大大增加了数据库的负荷,检索效率也较低。而本发明则反其道行之,将索引以文件的形式保存在磁盘中,当查询用到时再加载到内存,从而可以提高检索效率。而且,本发明也不是维护一个索引文件,不会因为数据源有一点变动就重建索引,而是针对旧日志数据通常不会被修改的特点采取增量的索引方式,即为新的日志数据不断创建新的索引文件,使索引分块化,实现索引递增式的扩展,这就可以避免因索引更新而导致的大量10操作,提高了索引的效率,进而也提高了日志数据的检索效率。
[0044]此外,针对现有技术中使用模糊查询语句(如like〃% keyword % 〃)进行查询时,数据库索引通常不起作用,导致查询过程非常缓慢的问题,本发明采用了全文索引的方式,将日志数据转换为文本,对文本进行全文分词,形成由关键词指向日志数据的反向索引表,实现全文的倒排索引,这样就可以把模糊查询变成多个可以利用索引的精确查询的逻辑组合,克服了现有技术中模糊查询时效率非常低的问题,大大提高了查询效率。
[0045]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
【附图说明】
[0046]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0047]图1是根据一示例性实施例示出的检索系统示意图;
[0048]图2是根据一示例性实施例示出的一种日志数据库检索装置的结构示意图;
[0049]图3是根据一示例性实施例示出的一种日志数据库检索方法的流程图;
[0050]图4是根据一示例性实施例示出的另一种日志数据库检索方法的流程图;
[0051]图5是根据一示例性实施例示出的索引的构成示意图;
[0052]图6是根据一示例性实施例示出的又一种日志数据库检索方法的流程图;
[0053]图7是根据一示例性实施例示出的实时(即被动)创建索引的序列图;
[0054]图8是根据一示例性实施例示出的主动创建索引的序列图;
[0055]图9是根据一示例性实施例示出的索引查询处理的序列图;
[0056]图10是根据一示例性实施例示出的索引管理服务的功能示意图。
【具体实施方式】
[0057]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0058]索引可以视作检索技术的核心之一,围绕索引,本发明提供的全文索引(以下简称索引)服务可以划分为索引创建、索引管理、索引检索三个模块,其系统示意图可参见图1所示。在图1中,网页服务器Web Server是索引查询请求的提交方,Web Server根据用户提交的查询请求,组合查询条件,发送给索引服务所在的服务器;索引服务所在的服务器从日志数据源获取日志,生成为索引文件并存储起来,当收到查询请求后,利用索引查询出数据,然后返回给Web Server ο
[0059]图2是根据一示例性实施例示出的一种日志数据库检索装置的结构示意图,本发明实施例提供的装置提供索引文件的创建与管理,并提供查询索引数据的查询服务。具体地,所述装置包括:
[0060]索引创建模块201,包括:
[0061]数据采集组件2011,用于获取新的日志数据;
[0062]数据格式转化组件2012,用于将所述新的日志数据进行格式转化后建立全文索弓I ;
[0063]索引文件写入组件2013,用于将所述全文索引以文件形式存储在磁盘中;
[0064]检索模块202,包括:
[0
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1