数据查询方法及系统的制作方法

文档序号:6385210阅读:218来源:国知局
专利名称:数据查询方法及系统的制作方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种数据查询方法、数据查询服务器、数据采集器及一种数据查询系统。
背景技术
在当前互联网极度发达的时代,数据的采集与查询系统具有广泛的用途,各种信息技术(Informat ion Technology, IT)系统、网络设备、安全设备都会产生大量的日志等数据,其中有很多日志数据需要长期存档,并用于各种审计和查询。在海量数据的采集查询系统中,系统的架构有分布式存储和集中式存储两种方式,不论哪种方式,都面临着海量日志数据的快速存储、快速查询的需求。现有的一种分布式数据查询系统包括一台数据查询服务器和多台数据采集器,数据采集器负责日志的采集(接收、格式化、归并)、存储和建立索引,数据查询服务器是日志查询的统一入口。需要查询指定日志的时候,由数据查询服务器给所有的数据采集器下发查询命令,将所有数据采集器的查询结果收到之后汇总出最终的查询结果。如果数据采集器很多,一次查询中要查询的日志仅存在于少数数据采集器中,查询操作又很频繁,则这种现有方案会增加所有数据采集器的负担,包括数据采集器的功耗和中央处理单元(CentralProcessing Unit, CPU)资源,同时数据采集器除了查询之外,还需要做数据接收和入库的工作,如果查询操作很频繁,也会影响数据采集器的采集性能,降低了系统整体的处理能力。现有的另一种分布式数据查询系统的原始日志数据采用集中式存储,每个数据采集器只负责日志的采集(接收、格式化、归并)、上报,日志内容在数据采集器处理之后并不在本地保存,而是上报到数据查询服务器去存储。数据查询服务器在收到数据采集器上报的日志之后,集中存储到数据库中,并建立索引,需要对日志查询的时候直接到数据查询服务器的数据库中查询就可以。这种数据集中存储的方式,使日志的查询操作仅限于在数据查询服务器的数据库中执行,不会影响到数据采集器。然而,由于日志数据集中存放在数据查询服务器的数据库中,数据采集器需要上报大量的日志数据,一方面使数据查询服务器的负荷大大增加,另一方面也大量消耗了数据采集器和数据查询服务器之间的带宽,这样也就限制了一台数据查询服务器可以带的数据采集器的数量,整个系统的处理能力不可能很闻。

发明内容
本发明提供了一种数据查询方法、数据查询服务器、数据采集器及数据查询系统,能够提高数据查询的处理速度,减轻数据采集器的系统资源占用和数据查询服务器的负荷压力,提升整个系统的处理能力。为实现上述目的,本发明第一方面提供了一种数据查询方法,所述方法包括接收输入的查询请求,所述查询请求中携带所要查询的字段和所述字段中的查询词;从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识,所述集中索引表中存储所述字段中的查询词与采集器标识的对应关系;根据所述查询请求生成携带有所述字段和查询词的查询命令,并将所述查询命令发送给所述采集器标识对应的数据采集器,用以所述数据采集器在所述数据采集器中所述查询命令携带的字段对应的本地索弓I表中,查询得到与所述查询命令中携带的查询词相匹配的数据;接收所述数据采集器返回的所述数据,根据接收到的数据形成所述查询请求的查询结果并输出。结合第一方面,在第一方面的第一种可能的实施方式中,所述从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识之前,还包括针对所述字段,建立所述字段对应的集中索引表;所述建立所述字段对应的集中索引表,包括接收各数据采集器发送的所述字段的上报索引表,所述上报索引表中包括发送所述上报索引表的数据采集器中的数据对应于所述字段的查询词;在所述字段的集中索引表中,存储数据采集器的标识与所述数据采集器上报的上报索引表中该字段的查询词的对应关系。结合第一方面,在第一方面的第二种可能的实施方式中,所述从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识,包括若所述查询请求中携带至少两个所要查询的字段,获取所述查询请求中各字段的查询词,并记录所述各字段的查询词之间的逻辑关系;从所述各字段对应的集中索引表中查询得到所述各字段的查询词对应的采集器标识;根据所述各字段的查询词之间的逻辑关系,从查询得到的所述采集器标识中筛选得到满足所述逻辑关系的采集器标识。第二方面,本发明还提供了一种数据查询方法,所述方法包括接收数据查询服务器发送的查询命令,所述查询命令包括所述数据查询服务器接收的查询请求中携带的所要查询的字段和所述字段中的查询词;从所述字段对应的本地索引表中查询得到与所述查询命令中的查询词相匹配的数据的存储位置,所述本地索引表中存储所述字段中的查询词与所述数据的存储位置的对应关系;根据所述数据的存储位置,获取所述数据并发送给所述数据查询服务器。结合第二方面,在第二方面的第一种可能的实施方式中,所述从所述字段对应的本地索引表中查询得到与所述查询命令中的查询词相匹配的数据的存储位置之前,还包括针对所述字段,建立所述字段对应的本地索引表;所述建立所述字段对应的本地索引表,包括获取当前数据采集器中的数据和所述数据的存储位置,所述数据中包括至少一个字段的内容;
针对每一个字段,将所述数据在该字段的内容作为所述数据的查询词,建立所述查询词与所述存储位置的映射关系,形成该字段在所述当前数据采集器的本地索引表。结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述在所述当前数据采集器中所述字段的本地索引表中,存储所述数据的查询词与所述数据的存储位置的对应关系之后,还包括从该字段的本地索引表中提取出所述查询词,对所述查询词进行去重处理,形成所述当前数据采集器的所述字段的上报索引表;将所述字段的上报索引表发送给所述数据查询服务器,用以所述数据查询服务器建立所述字段对应的集中索引表。结合第二方面,在第二方面的第三种可能的实施方式中,所述从所述字段对应的本地索引表中查询得到与所述查询命令中的查询词相匹配的数据的存储位置,包括若所述查询命令中携带至少两个所要查询的字段,获取所述查询命令中各字段的查询词,并记录所述各字段的查询词之间的逻辑关系;从所述各字段对应的本地索引表中查询得到与所述查询命令中各字段的查询词相匹配的数据的存储位置;根据所述各字段的查询词之间的逻辑关系,从查询得到的所述数据的存储位置中筛选得到满足所述逻辑关系的数据的存储位置。第三方面,本发明还提供了一种数据查询服务器,所述数据查询服务器包括第一接收单元,用于接收输入的查询请求,所述查询请求中携带所要查询的字段和所述字段中的查询词;第一查询单元,用于从所述字段对应的集中索引表中,查询得到所述第一接收单元接收的所述查询请求携带的查询词对应的采集器标识,所述集中索引表中存储所述字段中的查询词与采集器标识的对应关系;第一处理单元,用于根据所述查询请求生成携带有所述字段和查询词的查询命令,并将所述查询命令发送给所述第一查询单元查询得到的采集器标识对应的数据采集器,用以所述数据采集器在所述数据采集器中所述查询命令携带的字段对应的本地索引表中,查询得到与所述查询命令中携带的查询词相匹配的数据;第一输出单元,用于接收所述数据采集器返回的所述数据,根据接收到的数据形成所述查询请求的查询结果并输出。结合第三方面,在第三方面的第一种可能的实施方式中,所述数据查询服务器还包括第一索引单元,用于针对所述字段,建立所述字段对应的集中索引表;所述第一索引单元包括第一接收子单元,用于接收各数据采集器发送的所述字段的上报索引表,所述上报索引表中包括发送所述上报索引表的数据采集器中的数据对应于所述字段的查询词;第一索引子单元,用于在所述字段的集中索引表中,存储数据采集器的标识与所述数据采集器上报的上报索引表中该字段的查询词的对应关系。结合第三方面,在第三方面的第二种可能的实施方式中,所述第一查询单元包括
第一解析子单元,用于若所述第一接收单元接收的所述查询请求中携带至少两个所要查询的字段,获取所述查询请求中各字段的查询词,并记录所述各字段的查询词之间的逻辑关系;第一查询子单元,用于从所述各字段对应的集中索引表中查询得到所述第一解析子单元获取的所述各字段的查询词对应的采集器标识;第一过滤子单元,用于根据所述第一解析子单元获取的所述各字段的查询词之间的逻辑关系,从所述第一查询子单元查询得到的所述采集器标识中筛选得到满足所述逻辑关系的采集器标识。第四方面,本发明还提供了一种数据采集器,所述数据采集器包括第二接收单元,用于接收数据查询服务器发送的查询命令,所述查询命令携带所要查询的字段和所述字段中的查询词;第二查询单元,用于从所述字段对应的本地索引表中查询得到与所述第二接收单元接收的查询命令中的查询词相匹配的数据的存储位置,所述本地索引表中存储所述字段中的查询词与所述数据的存储位置的对应关系;第二处理单元,用于根据所述第二查询单元查询得到的所述数据的存储位置,获取所述数据并发送给所述数据查询服务器。结合第四方面,在第四方面的第一种可能的实施方式中,所述数据采集器还包括第二索引单元,用于针对所述字段,建立所述字段对应的本地索引表;所述第二索引单元包括获取子单元,用于获取当前数据采集器中的数据和所述数据的存储位置,所述数据中包括至少一个字段的内容;第二索引子单元,用于针对所述获取子单元获取的每一个字段,将所述数据在该字段的内容作为所述数据的查询词,在所述数据采集器中所述字段的本地索引表中,存储所述数据的查询词与所述数据的存储位置的对应关系。结合第四方面的第一种可能的实施方式,在第四方面的第二种可能的实施方式中,所述第二索引单元还包括第三索引子单元,用于从所述第二索引子单元得到的该字段的本地索引表中提取出所述查询词,对所述查询词进行去重处理,形成所述当前数据采集器的所述字段的上报索引表;发送子单元,用于将所述第三索引子单元形成的所述字段的上报索引表发送给所述数据查询服务器,用以所述数据查询服务器建立所述字段的集中索引表。结合第四方面,在第四方面的第三种可能的实施方式中,所述第二查询单元包括第二解析子单元,用于若所述第二接收单元接收的所述查询命令中携带至少两个所要查询的字段,获取所述查询命令中各字段的查询词,并记录所述各字段的查询词之间的逻辑关系;第二查询子单元,用于从所述各字段对应的本地索引表中查询得到与所述第二解析子单元获取的所述查询命令中各字段的查询词相匹配的数据的存储位置;
第二过滤子单元,用于根据所述第二解析子单元获取的所述各字段的查询词之间的逻辑关系,从所述第二查询子单元查询得到的所述数据的存储位置中筛选得到满足所述逻辑关系的数据的存储位置。第五方面,本发明还提供了一种数据查询系统,所述系统包括上述第三方面提供的数据查询服务器和上述第四方面提供的数据采集器。本发明实施例提供的数据查询方法、数据查询服务器、数据采集器及数据查询系统,通过在数据采集器和数据查询服务器中分别建立本地索引表和集中索引表,可以有效的减轻数据采集器的系统资源占用,使数据采集器可以有更多的资源用于提高采集的性能,从而提升系统整体的处理能力,提高数据查询的处理速度。


图1为本发明实施例提供的数据查询系统的架构图;图2为本发明实施例一提供的索引建立过程的信令图;图3为本发明实施例一提供的一种数据查询方法流程图;图4为本发明实施例一提供的又一种数据查询方法流程图;图5为本发明实施例二提供的数据查询系统的示意图;图6为本发明实施例二提供的数据查询服务器和数据采集器的示意图;图7为本发明实施例三提供的数据查询服务器的示意图;图8为本发明实施例三提供的数据采集器的示意图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1是本发明实施例提供的数据查询系统的架构图,如图1所示,本发明采用分布式架构,包括一台数据查询服务器10和多台数据采集器20,数据采集器20负责对日志源30上报的海量日志等数据的采集(包括接收、格式化、归并)、存储和索引等处理,数据查询服务器10是数据查询的统一入口。本发明提供的数据查询方法可用于海量数据的快速查询,在下面的实施例中以日志数据为例进行说明。实施例一在进行日志数据的查询之前,需预先对系统中已存储的数据建立索引,通常在数据存储时进行,用以系统根据建立的索引表进行数据的查询。本实施例中在数据采集器和数据查询服务器中分别建立本地索引表和集中索引表。本地索引表用于存储当前数据采集器中的日志数据的索引,其作用是当给出查询条件时,可以查找到本地数据中符合条件的所有日志的具体存储位置。集中索引表用于存储各字段的查询词与采集器标识的索引,其作用是当给出查询条件时,可以查找到待查询数据可能存储在哪些数据采集器上,集中索引表中给出了存储有待查询数据的数据采集器的标识息。图2是本实施例提供的索引建立过程的信令图,如图2所示,包括步骤S101、数据采集器获取当前数据采集器中的数据和所述数据的存储位置。
可选地,数据采集器中存储的数据为日志源上报的原始日志数据。在日志源上报原始日志数据到数据采集器之后,数据采集器还需要为原始日志数据建本地索引。数据采集器对原始日志数据进行格式化和归并处理,将原始日志数据处理为日志表中每条记录的形式(即日志表中的每行记录),每个日志表可能有多个字段,如下表I所示,该日志表包括字段I和字段2等字段,序号表示数据的存储位置。表I
权利要求
1.一种数据查询方法,其特征在于,所述方法包括 接收输入的查询请求,所述查询请求中携带所要查询的字段和所述字段中的查询词; 从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识,所述集中索引表中存储所述字段中的查询词与采集器标识的对应关系; 根据所述查询请求生成携带有所述字段和查询词的查询命令,并将所述查询命令发送给所述采集器标识对应的数据采集器,用以所述数据采集器在所述数据采集器中所述查询命令携带的字段对应的本地索引表中,查询得到与所述查询命令中携带的查询词相匹配的数据; 接收所述数据采集器返回的所述数据,根据接收到的数据形成所述查询请求的查询结果并输出。
2.根据权利要求1所述的数据查询方法,其特征在于,所述从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识之前,还包括 针对所述字段,建立所述字段对应的集中索引表; 所述建立所述字段对应的集中索引表,包括 接收各数据采集器发送的所述字段的上报索引表,所述上报索引表中包括发送所述上报索引表的数据采集器中的数据对应于所述字段的查询词; 在所述字段的集中索引表中,存储数据采集器的标识与所述数据采集器上报的上报索引表中该字段的查询词的对应关系。
3.根据权利要求1所述的数据查询方法,其特征在于,所述从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识,包括 若所述查询请求中携带至少两个所要查询的字段,获取所述查询请求中各字段的查询词,并记录所述查询请求中携带的所述各字段的查询词之间的逻辑关系; 从所述各字段对应的集中索引表中查询得到所述各字段的查询词对应的采集器标识; 根据所述各字段的查询词之间的逻辑关系,从查询得到的所述采集器标识中筛选得到满足所述逻辑关系的采集器标识。
4.一种数据查询方法,其特征在于,所述方法包括 接收数据查询服务器发送的查询命令,所述查询命令携带所要查询的字段和所述字段中的查询词; 从所述字段对应的本地索引表中查询得到与所述查询命令中的查询词相匹配的数据的存储位置,所述本地索引表中存储所述字段中的查询词与所述数据的存储位置的对应关系; 根据所述数据的存储位置,获取所述数据并发送给所述数据查询服务器。
5.根据权利要求4所述的数据查询方法,其特征在于,所述从所述字段对应的本地索引表中查询得到与所述查询命令中的查询词相匹配的数据的存储位置之前,还包括 针对所述字段,建立所述字段对应的本地索引表; 所述建立所述字段对应的本地索引表,包括 获取当前数据采集器中的数据和所述数据的存储位置,所述数据中包括至少一个字段的内容;针对每一个字段,将所述数据在该字段的内容作为所述数据的查询词,在所述当前数据采集器中所述字段的本地索引表中,存储所述数据的查询词与所述数据的存储位置的对应关系。
6.根据权利要求5所述的数据查询方法,其特征在于,所述在所述当前数据采集器中所述字段的本地索引表中,存储所述数据的查询词与所述数据的存储位置的对应关系之后,还包括 从该字段的本地索引表中提取出所述查询词,对所述查询词进行去重处理,形成所述当前数据采集器的所述字段的上报索引表; 将所述字段的上报索引表发送给所述数据查询服务器,用以所述数据查询服务器建立所述字段对应的集中索引表。
7.根据权利要求4所述的数据查询方法,其特征在于,所述从所述字段对应的本地索引表中查询得到与所述查询命令中的查询词相匹配的数据的存储位置,包括 若所述查询命令中携带至少两个所要查询的字段,获取所述查询命令中各字段的查询词,并记录所述查询命令中携带的各字段的查询词之间的逻辑关系; 从所述各字段对应的本地索引表中查询得到与所述查询命令中各字段的查询词相匹配的数据的存储位置; 根据所述各字段的查询词之间的逻辑关系,从查询得到的所述数据的存储位置中筛选得到满足所述逻辑关系的数据的存储位置。
8.一种数据查询服务器,其特征在于,所述数据查询服务器包括 第一接收单元,用于接收输入的查询请求,所述查询请求中携带所要查询的字段和所述字段中的查询词; 第一查询单元,用于从所述字段对应的集中索引表中,查询得到所述第一接收单元接收的所述查询请求携带的查询词对应的采集器标识,所述集中索引表中存储所述字段中的查询词与采集器标识的对应关系; 第一处理单元,用于根据所述查询请求生成携带有所述字段和查询词的查询命令,并将所述查询命令发送给所述第一查询单元查询得到的采集器标识对应的数据采集器,用以所述数据采集器在所述数据采集器中所述查询命令携带的字段对应的本地索引表中,查询得到与所述查询命令中携带的查询词相匹配的数据; 第一输出单元,用于接收所述数据采集器返回的所述数据,根据接收到的数据形成所述查询请求的查询结果并输出。
9.根据权利要求8所述的数据查询服务器,其特征在于,所述数据查询服务器还包括 第一索引单元,用于针对所述字段,建立所述字段对应的集中索引表; 所述第一索引单元包括 第一接收子单元,用于接收各数据采集器发送的所述字段的上报索引表,所述上报索引表中包括发送所述上报索引表的数据采集器中的数据对应于所述字段的查询词; 第一索引子单元,用于在所述字段的集中索引表中,存储数据采集器的标识与所述数据采集器上报的上报索引表中该字段的查询词的对应关系。
10.根据权利要求8所述的数据查询服务器,其特征在于,所述第一查询单元包括 第一解析子单元,用于若所述第一接收单元接收的所述查询请求中携带至少两个所要查询的字段,获取所述查询请求中各字段的查询词,并记录所述查询请求中携带的所述各字段的查询词之间的逻辑关系; 第一查询子单元,用于从所述各字段对应的集中索引表中查询得到所述第一解析子单元获取的所述各字段的查询词对应的采集器标识; 第一过滤子单元,用于根据所述第一解析子单元获取的所述各字段的查询词之间的逻辑关系,从所述第一查询子单元查询得到的所述采集器标识中筛选得到满足所述逻辑关系的采集器标识。
11.一种数据采集器,其特征在于,包括 第二接收单元,用于接收数据查询服务器发送的查询命令,所述查询命令携带所要查询的字段和所述字段中的查询词; 第二查询单元,用于从所述字段对应的本地索引表中查询得到与所述第二接收单元接收的查询命令中的查询词相匹配的数据的存储位置,所述本地索引表中存储所述字段中的查询词与所述数据的存储位置的对应关系; 第二处理单元,用于根据所述第二查询单元查询得到的所述数据的存储位置,获取所述数据并发送给所述数据查询服务器。
12.根据权利要求11所述的数据采集器,其特征在于,所述数据采集器还包括 第二索引单元,用于针对所述字段,建立所述字段对应的本地索引表; 所述第二索引单元包括 获取子单元,用于获取当前数据采集器中的数据和所述数据的存储位置,所述数据中包括至少一个字段的内容; 第二索引子单元,用于针对所述获取子单元获取的每一个字段,将所述数据在该字段的内容作为所述数据的查询词,在所述数据采集器中所述字段的本地索引表中,存储所述数据的查询词与所述数据的存储位置的对应关系。
13.根据权利要求12所述的数据采集器,其特征在于,所述第二索引单元还包括 第三索引子单元,用于从所述第二索引子单元得到的该字段的本地索引表中提取出所述查询词,对所述查询词进行去重处理,形成所述数据采集器的所述字段的上报索引表;发送子单元,用于将所述第三索引子单元形成的所述字段的上报索引表发送给所述数据查询服务器,用以所述数据查询服务器建立所述字段的集中索引表。
14.根据权利要求11所述的数据采集器,其特征在于,所述第二查询单元包括 第二解析子单元,用于若所述第二接收单元接收的所述查询命令中携带至少两个所要查询的字段,获取所述查询命令中各字段的查询词,并记录所述查询命令中携带的各字段的查询词之间的逻辑关系; 第二查询子单元,用于从所述各字段对应的本地索引表中查询得到与所述第二解析子单元获取的所述查询命令中各字段的查询词相匹配的数据的存储位置; 第二过滤子单元,用于根据所述第二解析子单元获取的所述各字段的查询词之间的逻辑关系,从所述第二查询子单元查询得到的所述数据的存储位置中筛选得到满足所述逻辑关系的数据的存储位置。
15.一种数据查询系统,其特征在于,所述系统包括 如权利要求8 10任一权项所述的数据查询服务器和如权利要求11 14任一权项所述的数 据采集器。
全文摘要
本发明涉及一种数据查询方法及系统,所述方法包括接收输入的查询请求,所述查询请求中携带所要查询的字段和所述字段中的查询词;从所述字段对应的集中索引表中查询得到所述查询词对应的采集器标识;根据所述查询请求生成携带有所述字段和查询词的查询命令,并将所述查询命令发送给所述采集器标识对应的数据采集器,用以所述数据采集器通过所述数据采集器中所述查询命令携带的字段对应的本地索引表查询得到与所述查询命令中携带的查询词相匹配的数据;接收所述数据采集器返回的所述数据,根据接收到的数据形成所述查询请求的查询结果并输出。本发明能够提高数据查询的处理速度,减轻数据采集器的系统资源占用和数据查询服务器的负荷压力。
文档编号G06F17/30GK103064933SQ20121056613
公开日2013年4月24日 申请日期2012年12月24日 优先权日2012年12月24日
发明者谢永方 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1