1.本发明实施例涉及大数据领域,尤其涉及一种日志数据处理方法、装置、设备及存储介质。
背景技术:2.网络设备、系统及服务程序等,在运作时都会产生海量的日志,每条日志都记载着网络设备、系统及服务程序运作过程中的相关信息的描述,因此需要对海量的日志数据进行管理,包括对日志数据的存储和查询。
3.现有技术中通常采用以下两种方式进行日志的存储和查询,第一种方式,在存储日志时需要对日志内容进行分词、并对关键词建立索引,生成索引文件,在查询日志时基于关键词和索引文件查询目标日志;第二种方式,存储日志时不对日志内容进行分词、也不生成索引文件,在查询日志时将一定时段内的日志查询出来,然后再从中通过字符串进行子串查找,得到包含字符串的目标日志。
4.现有的日志的存储和查询方式,在存储和/或查询过程中会浪费系统性能或者浪费系统存储空间,成本较大,无法低成本、高效率、高性能的存储和查询海量日志数据。
技术实现要素:5.本发明实施例提供一种日志数据处理方法、装置、设备及存储介质,用以降低海量日志数据处理过程的成本,提高处理效率,提高日志数据存储和查询的性能。
6.第一方面,本发明实施例提供一种日志数据处理方法,应用于包括多个数据节点的日志存储系统的任一数据节点上,所述数据节点包括第一存储单元和第二存储单元,所述方法包括:
7.接收网关根据路由信息发送的多条待存储日志,所述待存储日志携带标签信息以及时间戳信息;其中所述路由信息为所述网关根据所述待存储日志的标签信息以及时间戳信息确定;
8.根据所述标签信息以及所述时间戳信息对所述多条待存储日志按照时序写入到所述第一存储单元中,并根据所述多条待存储日志的标签信息生成倒排索引文件,所述倒排索引文件用于在查询日志阶段根据所述倒排索引文件和时间信息定位所需查询的目标日志;
9.将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中;其中所述第二存储单元中各数据块按照时序存储。
10.第二方面,本发明实施例提供一种日志数据处理方法,应用于网关,所述方法包括:
11.接收日志存储请求,所述日志存储请求包括待存储日志,所述待存储日志携带标签信息以及时间戳信息;
12.根据所述待存储日志的标签信息以及时间戳信息,确定所述待存储日志的路由信
息;
13.将所述待存储日志根据所述路由信息发送至对应的目标数据节点。
14.第三方面,本发明实施例提供一种日志数据处理方法,应用于包括多个数据节点的日志存储系统的任一数据节点上,所述数据节点包括第二存储单元,所述第二存储单元中以数据块形式存储多条日志,其中各数据块按照时序排序,每一数据块中多条日志按标签信息和时序排序,所述方法包括:
15.接收网关根据路由信息发送的日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息;
16.根据所述待查询日志的时间信息从所述第二存储单元中确定对应的目标数据块;
17.根据所述待查询日志的标签信息和关键词,以及所述目标数据块的倒排索引文件,查找目标日志;其中所述倒排索引文件为预先根据所述目标数据块中包括的多条日志的标签信息生成的;
18.将所述目标日志发送给所述网关。
19.第四方面,本发明实施例提供一种日志数据处理方法,应用于网关,所述方法包括:
20.接收日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息;
21.根据所述待查询日志的标签信息,确定所述待查询日志的路由信息;
22.将所述日志查询请求根据所述路由信息发送至对应的目标数据节点。
23.第五方面,本发明实施例提供一种日志数据处理装置,应用于包括多个数据节点的日志存储系统的任一数据节点上,所述数据节点包括第一存储单元和第二存储单元,所述装置包括:
24.接收模块,用于接收网关根据路由信息发送的多条待存储日志,所述待存储日志携带标签信息以及时间戳信息;其中所述路由信息为所述网关根据所述待存储日志的标签信息以及时间戳信息确定;
25.第一存储模块,用于根据所述标签信息以及所述时间戳信息对所述多条待存储日志按照时序写入到所述第一存储单元中;
26.索引模块,用于根据所述多条待存储日志的标签信息生成倒排索引文件,所述倒排索引文件用于在查询日志阶段根据所述倒排索引文件和时间信息定位所需查询的目标日志;
27.第二存储模块,用于将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中;其中所述第二存储单元中各数据块按照时序存储。
28.第六方面,本发明实施例提供一种日志数据处理装置,应用于网关,所述装置包括:
29.接收模块,用于接收日志存储请求,所述日志存储请求包括待存储日志,所述待存储日志携带标签信息以及时间戳信息;
30.路由模块,用于根据所述待存储日志的标签信息以及时间戳信息,确定所述待存储日志的路由信息;
31.发送模块,用于将所述待存储日志根据所述路由信息发送至对应的目标数据节
点。
32.第七方面,本发明实施例提供一种日志数据处理装置,应用于包括多个数据节点的日志存储系统的任一数据节点上,所述数据节点包括第二存储单元,所述第二存储单元中以数据块形式存储多条日志,其中各数据块按照时序排序,每一数据块中多条日志按标签信息和时序排序,所述装置包括:
33.接收模块,用于接收网关根据路由信息发送的日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息;
34.查询模块,用于根据所述待查询日志的时间信息从所述第二存储单元中确定对应的目标数据块;根据所述待查询日志的标签信息和关键词,以及所述目标数据块的倒排索引文件,查找目标日志;其中所述倒排索引文件为预先根据所述目标数据块中包括的多条日志的标签信息生成的;
35.发送模块,用于将所述目标日志发送给所述网关。
36.第八方面,本发明实施例提供一种日志数据处理装置,应用于网关,所述装置包括:
37.接收模块,用于接收日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息;
38.路由模块,用于根据所述待查询日志的标签信息,确定所述待查询日志的路由信息;
39.发送模块,用于将所述日志查询请求根据所述路由信息发送至对应的目标数据节点。
40.第九方面,本发明实施例提供一种数据节点,包括:
41.至少一个处理器;
42.以及存储器,所述存储器包括:第一存储单元和第二存储单元;
43.所述存储器还存储计算机执行指令;
44.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面所述的方法、或者如第三方面所述的方法。
45.第十方面,本发明实施例提供一种网关,包括:
46.至少一个处理器;
47.以及存储器,所述存储器存储计算机执行指令;
48.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第二方面所述的方法、或者如第四方面所述的方法。
49.第十一方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面所述的方法、或者如第三方面所述的方法。
50.第十二方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第二方面所述的方法、或者如第四方面所述的方法。
51.第十三方面,本发明实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时,实现如第一方面所述的方法、或者如第三方面所述的方法。
52.第十四方面,本发明实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时,实现如第二方面所述的方法、或者如第四方面所述的方法。
53.本发明实施例提供的日志数据处理方法、装置、设备及存储介质,通过网关在接收到接收日志存储请求后,确定待存储日志的路由信息后,将携带标签信息及时间戳信息的待存储日志根据路由信息发送至日志存储系统的目标数据节点,而目标数据节点在收到网关根据路由信息发送的多条待存储日志后,根据待存储日志携带的标签信息及时间戳信息对多条待存储日志按照时序写入到目标数据节点的第一存储单元中,并根据多条待存储日志的标签信息生成倒排索引文件,倒排索引文件用于在查询日志阶段根据倒排索引文件和时间信息定位所需查询的目标日志;然后再将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中,在第二存储单元中进行持久化存储;其中第二存储单元中各数据块按照时序存储。本实施例可减少日志存储过程的处理量,而日志查询过程增加的处理量在可接受范围内,同时通过对日志进行时序上的排序、以及基于日志标签信息构建倒排索引,可以保证日志数据存储和查询的性能,且降低存储和查询过程的成本,减少存储空间开销,提高处理效率,适用于海量日志数据处理过程。
附图说明
54.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
55.图1a为本发明实施例的日志数据处理方法在日志存储阶段的应用场景示意图;
56.图1b为本发明实施例的日志数据处理方法在日志查询阶段的应用场景示意图;
57.图2为本发明一实施例提供的日志数据处理方法的流程图;
58.图3为本发明另一实施例提供的日志数据处理方法的流程图;
59.图4为本发明另一实施例提供的日志数据处理方法的流程图;
60.图5为本发明另一实施例提供的日志数据处理方法的流程图;
61.图6为本发明另一实施例提供的日志数据处理方法的流程图;
62.图7为本发明一实施例提供的日志数据处理装置的结构图;
63.图8为本发明另一实施例提供的日志数据处理装置的结构图;
64.图9为本发明另一实施例提供的日志数据处理装置的结构图;
65.图10为本发明另一实施例提供的日志数据处理装置的结构图;
66.图11为本发明一实施例提供的数据节点的结构图;
67.图12为本发明一实施例提供的网关的结构图。
68.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
69.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附
权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
70.现有技术中通常采用以下两种方式进行日志的存储和查询,第一种方式,在存储日志时需要对日志内容进行分词、并对关键词建立索引,生成索引文件,在查询日志时基于关键词和索引文件查询目标日志,例如elasticsearch、 elk、solr、xapian、sphinx、bleve等系统;第二种方式,存储日志时不对日志内容进行分词、也不生成索引文件,在查询日志时将一定时段内的日志查询出来,然后再从中通过字符串进行子串查找,得到包含字符串的目标日志,例如grafana labs公司的loki系统。
71.现有的日志的存储和查询方式,在存储和/或查询过程中会浪费系统性能或者浪费系统存储空间,成本较大,无法低成本、高效率、高性能的存储和查询海量日志数据。
72.其中,第一种方式优势是查询性能较好,但其代价是牺牲了一部分写性能,在存储日志时需要对日志内容进行分词、并对关键词建立索引占用大量计算资源,牺牲了系统存储空间,尤其是一般是写多读少,全天不间断的收集日志,但仅在偶尔业务人员需要的时候才会查询,日志的存储成本较大,并且生成了大量分词后的索引文件,浪费了磁盘空间。
73.第二种方式虽然避免了第一种方式的缺陷,但是需要依赖多种第三方远程存储系统,例如loki系统中的querier(查询器)组件要对kv存储(key
‑ꢀ
value键值对存储)和对象存储等多种第三方远程存储交互,查询性能牺牲较大,且依赖外界第三方远程存储系统,同时查询性能也较差。
74.针对上述技术问题,本发明实施例中提供一种日志数据处理方法,网关在接收到日志存储请求后,确定待存储日志的路由信息后,将待存储日志根据路由信息发送至日志存储系统的目标数据节点,而目标数据节点在收到网关根据路由信息发送的多条待存储日志后,根据待存储日志携带的时间戳信息对多条待存储日志按照时序写入到目标数据节点的第一存储单元中,并根据多条待存储日志的标签信息生成倒排索引文件,倒排索引文件用于在查询日志阶段根据倒排索引文件和时间信息定位所需查询的目标日志;然后再将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中,在第二存储单元中进行持久化存储;其中第二存储单元中各数据块按照时序存储。通过上述的存储过程,不需要在存储过程中进行对日志内容进行分词、以及建立大量的索引文件,只需要基于待存储日志的标签建立倒排索引文件,极大的降低了处理量,减少存储空间开销,在查询日志阶段基于倒排索引文件和时间信息即可查询到目标日志,日志的查询性能也得到了保证,而日志查询过程增加的处理量在可接受范围内;此外,本发明实施例日志的存储和查询也不需要依赖第三方远程存储系统。因此本发明实施例的日志数据处理方法可以降低海量日志数据处理过程的成本,提高处理效率,提高日志数据存储和查询的性能。
75.本发明实施例的日志数据处理方法应用与如图1a和图1b所示的应用场景,所述应用场景包括:客户端、网关(gateway)、日志存储系统,日志存储系统包括多个数据节点(datanode)的日志存储系统的任一数据节点上,所述其中数据节点包括第一存储单元和第二存储单元,其中第一存储单元可以为内存等存储器,第二存储单元可以为磁盘等存储器。
76.其中,日志存储阶段如图1a所示,网关102在接收到客户端101发送的接收日志存储请求后,确定待存储日志的路由信息,将待存储日志根据路由信息发送至日志存储系统103的目标数据节点,而目标数据节点在收到网关 102根据路由信息发送的多条待存储日志后,执行本发明实施例中日志存储阶段目标数据节点侧的日志数据处理方法。
77.日志查询阶段如图1b所示,网关102在接收到客户端101发送的日志查询请求后,确定待查询日志的路由信息,将日志查询请求根据路由信息发送至对应的目标数据节点,而目标数据节点在收到网关102发送的日志查询请求后,执行本发明实施例中日志存储阶段目标数据节点侧的日志数据处理方法,在得到目标日志后将目标日志发送给网关102,再由网关102返回给客户端101。
78.进一步的,上述应用场景中还可包括预定数据库集群104,可以与各网关102以及各数据节点连接,预定数据库集群104中存储有各数据节点的周期性注册信息,周期性注册信息中包括各数据节点对应的路由信息。每一数据节点可周期性的向预定数据库集群104注册,而网关102可定期从预定数据库集群104中获取各数据节点对应的路由信息,也可在网关102本地预存的各数据节点对应的路由信息中不存在目标数据节点对应的路由信息时,从预定数据库集群104中获取各数据节点对应的路由信息。
79.其中,客户端101可以为一个或多个客户端,客户端101可以为任意计算机语言开发的客户端101,例如可以为go语言的客户端101,或者基于netty 框架的java语言的客户端101等等。
80.网关102可以配置有多个,各网关102可以负载均衡的响应客户端101 发送的日志存储请求或者日志查询请求,并负责路由信息的获取、查询表达式的解析、以及与数据节点之间的数据传输;各网关102之间是对等的,可以在需要增加计算能力时进行扩充。此外,客户端101与网关102之间可以通过tcp长连接通信。此外,网关102和日志存储系统103可以集成在一起,例如每个数据节点与一个网关102集成在一起,该网关102可以与其他数据节点通信。
81.下面以具体地实施例对本发明的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
82.图2为本发明实施例提供的日志数据处理方法流程图。本实施例提供了一种日志数据处理方法,是日志存储阶段的方法,其执行主体为包括多个数据节点的日志存储系统的任一数据节点,所述数据节点包括第一存储单元和第二存储单元,该日志数据处理方法具体步骤如下:
83.s201、接收网关根据路由信息发送的多条待存储日志,所述待存储日志携带标签信息以及时间戳信息;其中所述路由信息为所述网关根据所述待存储日志的标签信息以及时间戳信息确定。
84.在本实施例中,当网络设备、系统及服务程序等,在运作过程中产生待存储日志时,可通过客户端向网关发送日志存储请求,日志存储请求包括待存储日志,所述待存储日志携带标签信息以及时间戳信息,其中标签信息包括但不限于日志来源(例如日志来源于哪个网络设备、系统及服务程序)、日志相关对象、日志相关事件、日志相关地点、日志中一些关键词等,标签信息可以作为后续日志查询过程的检索条件之一,例如,某一条日志涉及公司a和公司b之间的某项事务,则该日志的标签可以包括公司a名称、公司 b名称、事务名称、事务进度、相关人员信息等;网关可根据待存储日志的标签信息,确定待存储日志的路由信息,并将待存储日志根据路由信息发送至对应的目标数据节点。例如,在不同的时间下有不同的数据节点,不同的数据节点可对应不同的标签信息,网关可根据待存储日志的时
间戳信息和标签信息确定目标数据节点路由信息,例如ip地址等;当然网关也采用其他方法根据待存储日志的标签信息确定待存储日志的路由信息,此处可不做限定。
85.s202、根据所述标签信息以及所述时间戳信息对所述多条待存储日志按照时序写入到所述第一存储单元中,并根据所述多条待存储日志的标签信息生成倒排索引文件,所述倒排索引文件用于在查询日志阶段根据所述倒排索引文件和时间信息定位所需查询的目标日志。
86.在本实施例中,数据节点在接收到网关发送的待存储日志后,将待存储日志存储到第一存储单元中,在第一存储单元中各日志按照时序进行排序,其中第一存储单元可以为内存等存储设备,在内存中完整日志按照时序的排序,在持久化存储到第二存储单元中,可解决待存储日志的乱序写入,尤其是某些情况下,时间戳靠前的待存储日志后发送到数据节点,时间戳靠后的待存储日志先发送到数据节点,通过在第一存储单元中的排序,可以使得时间戳靠前的待存储日志排列在时间戳靠后的待存储日志之前。
87.在本实施例中,第一存储单元中包括的多条待存储日志中每条日志均具备一个或多个标签信息,可能存在相同的标签信息,也可能存在不同的标签信息,因此可根据第一存储单元中各待存储日志的标签信息生成倒排索引文件,也即例如对于某一数据库,具有标签a的日志包括日志a、日志b,具有标签b的日志包括日志b、日志c,以此类推。
88.本实施例中针对于第一存储单元中的多条待存储日志,仅基于该多条日志的标签信息构建倒排索引文件,在后续进行日志查询时,虽然第一存储单元中经排序的多条待存储日志迁移到所述第二存储单元,但倒排索引文件通常不变,基于倒排索引文件以及时间信息,即可快速的定位到所需查询的目标日志,降低了日志处理成本,提高存储和查询性能,举例来讲,例如查询请求中包括待查询日志的标签信息、时间信息以及关键词等,可根据时间信息从第二存储单元中确定与时间信息对应的目标数据块,在基于目标数据块的倒排索引文件,查询与待查询日志的标签信息相匹配的至少一条候选日志,若候选日志只有一条,则直接可确定其为查询到的目标日志,若候选日志有多条,则可根据待查询日志的关键词对候选日志进行字串查找,从而查找到包括该关键词的候选日志,确定为查询到的目标日志。
89.通过上述的存储过程,不需要在存储过程中进行对日志内容进行分词、以及建立大量的索引文件,只需要基于待存储日志的标签建立倒排索引文件,极大的降低了处理量,在查询日志阶段基于倒排索引文件和时间信息即可查询到目标日志,日志的查询性能也得到了保证;此外,本实施例日志的存储和查询也不需要依赖第三方远程存储系统。
90.s203、将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中;其中所述第二存储单元中各数据块按照时序存储。
91.在本实施例中,在第一存储单元中完成多条待存储日志的排序后,可将第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中进行持久化存储,其中每一数据块可包括一定时间区间内的多条待存储日志,而第二存储单元中各数据块也按照时序存储,也即,第二存储单元中以数据块形式存储多条日志,其中各数据块按照时序排序,每一数据块中多条日志按标签信息和时序排序,例如,一个数据块可根据标签信息分为多个序列,各序列可按照标签信息的首字母排序,而每个序列中包括的多条日志则可按照时序排序。可选的,第二存储单元可以是磁盘等存储设备,可以对日志数据进行持久
化存储。
92.本实施例提供的日志数据处理方法,通过网关在接收到接收日志存储请求后,确定携带标签信息及时间戳信息的待存储日志的路由信息后,将待存储日志根据路由信息发送至日志存储系统的目标数据节点,而目标数据节点在收到网关根据路由信息发送的多条待存储日志后,根据待存储日志携带的标签信息及时间戳信息对多条待存储日志按照时序写入到目标数据节点的第一存储单元中,并根据多条待存储日志的标签信息生成倒排索引文件,倒排索引文件用于在查询日志阶段根据倒排索引文件和时间信息定位所需查询的目标日志;然后再将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中,在第二存储单元中进行持久化存储;其中第二存储单元中各数据块按照时序存储。本实施例可减少日志存储过程的处理量,而日志查询过程增加的处理量在可接受范围内,同时通过对日志进行时序上的排序、以及基于日志标签信息构建倒排索引,可以保证日志数据存储和查询的性能,且降低存储和查询过程的成本,减少存储空间开销,提高处理效率,适用于海量日志数据处理过程。
93.在上述的任一实施例的基础上,所述第一存储单元按照标签信息划分为不同的序列,每一序列按照时间划分为多个层级的存储单元,其中下一层级存储单元是对上一层级存储单元进行更细时间粒度划分得到的。
94.举例来讲,可以将第一存储单元可以为一个block,将按照标签信息分成若干个序列series,也即不同的标签信息可对应不同的series,每个series再分成若干个以5分钟为单元的chunk,每个chunk内部又可以分为1000个300 毫秒为单位的时间窗口,当然第一存储单元按的划分方式并不限于上述举例;进一步的,可选的,时间窗口内可以以有序链表方式存储待存储日志。
95.在上述实施例的基础上,s202所述根据所述标签信息以及所述时间戳信息对所述多条待存储日志按照时序写入到所述第一存储单元中,包括:
96.针对任一条待存储日志,根据所述待存储日志的标签信息确定目标序列;对所述待存储日志的时间戳信息进行取整和取余处理,确定所述时间戳在最小时间粒度中所处的时间区间,根据所述时间区间确定对应的最低层级的存储单元;通过有序链表将所述待存储日志存储于所述目标序列的该最低层级的存储单元中。
97.在本实施例中,对于任一条待存储日志,先对该待存储日志的时间戳信息取整和取余操作,判断其所在的各层级的存储单元,直至确定最低层级的存储单元。以上述举例来说,首先根据标签信息确定待存储日志属于哪一 series,在所确定的series中根据待存储日志的时间戳信息进行取整,确定在哪个chunk,再确定时间戳落在该chunk的哪个一个时间区间,进而将该待存储日志存储在该时间区间中,由于同一个时间区间可能存在多个待存储日志,而该多个待存储日志的时间戳虽然在同一个时间区间,但每一待存储日志仍有先后顺序,因此本实施例中在chunk内部使用有序链表,对同一时间区间的多个待存储日志,依照时间戳在有序链表中依照时间顺序进行排序和存储,支持待存储日志的乱序写入。
98.在上述任一实施例的基础上,如图3所示,s203所述将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中,包括:
99.s301、按照预定时间区间,将所述第一存储单元中经排序的所述多条待存储日志划分为至少一个待迁移数据块;
100.s302、判断所述第二存储单元中是否存在与所述待迁移数据块处于相同时间区间的已存储数据块;
101.s303、若存在,则将所述待迁移数据块与处于相同时间区间的已存储数据块进行合并,将合并后的数据块存储在所述第二存储单元中,且与其他已存储数据块按照时序排序;
102.s304、若不存在,则将所述待迁移数据块存储在所述第二存储单元中,且与其他已存储数据块按照时序排序。
103.在本实施例中,由于第一存储单元中待存储日志按照时间排序,第二存储单元中以数据块形式存储多条日志,其中各数据块按照时序排序,每一数据块中多条日志按标签信息和时序排序,且由于日志可能乱序写入,若将第一存储单元中待存储日志作为一个数据块存储,该数据块的时间区间可能与第二存储单元中已存储数据块的时间区间存在重叠,例如第一存储单元中待存储日志的时间戳起止的时间区间为10:50~12:15,而第二存储单元中某一已存储数据块的时间区间为10:00~11:00,若将第一存储单元中待存储日志作为一个数据块存储,则该两个数据块时间区间存在重叠,导致第二存储单元中数据块以及数据库中的日志不再是按照时序顺序。
104.为了避免上述问题,本实施例中按照预定时间区间,将第一存储单元中经排序的所述多条待存储日志划分为至少一个待迁移数据块,例如每小时为一个预定时间区间,则上述举例中,第一存储单元中待存储日志的时间戳起止的时间区间为10:50~12:15,可将第一存储单元中待存储日志划分为三个待迁移数据块,时间区间分别为10:50~11:00、11:00~12:00、12:00~12:15,然后判断第二存储单元中是否存在与所述待迁移数据块处于相同时间区间的已存储数据块,例如第二存储单元中某一已存储数据块的时间区间为10:00~11:00,则可将时间区间为10:50~11:00的待迁移数据块与时间区间为10:00~11:00的已存储数据块进行合并,合并后的数据块时间区间为10:00~11:00,再存储到第二存储单元中,与其他已存储数据块之间仍按照时序排序,例如某一其他已存储数据块的时间区间为9:00~10:00,则合并后时间区间为10:00~11:00的数据块排列于时间区间为9:00~10:00的已存储数据块之后;若第二存储单元中不存在与所述待迁移数据块处于相同时间区间的已存储数据块,则将所述待迁移数据块存储在第二存储单元中,且与其他已存储数据块按照时序排序,例如时间区间分别为10:50~11:00、11:00~12:00、12:00~12:15的待迁移数据块依次排列于时间区间为9:00~10:00的已存储数据块之后。
105.需要说明的是,由于第一存储单元中按照时间划分为多个层级的存储单元,其中下一层级存储单元是对上一层级存储单元进行更细时间粒度划分得到的,在迁移时数据块中也可保留第一存储单元中的层级,也即数据块中包括多个层级的子数据块,分别与所述第一存储单元的多个层级的存储单元相对应;举例来讲,一个数据块可以为一个block,其分为若干个以5分钟为单元的chunk,与上述第一存储单元的举例相对照。
106.进一步的,在s202所述根据所述多条待存储日志的标签信息生成倒排索引文件时,具体可根据第一存储单元中多个层级的存储单元中包括的多条待存储日志的标签信息生成倒排索引文件。例如针对某一数据块block,可对该 block的各series中的多条待存储日志的标签信息分别生成倒排索引文件,也可对各series中的每一chunk的多条待存储日志的标签信息生成倒排索引文件,也可更进一步的针对每一时间窗口的多条待存储日志的
标签信息,从而便于查询日志时的快速定位。
107.在上述实施例的基础上,第二存储单元上的数据块可包括以下三方面的数据:
108.1)元数据信息,记录了该block中日志数据的起止时间;
109.2)倒排索引文件,在倒排索引的帮助下快速查找满足条件的series;
110.3)chunks数据文件,包括多条日志数据,可以采用lz4等压缩算法压缩。
111.在上述实施例中,s303所述将所述待迁移数据块与处于相同时间区间的已存储数据块进行合并,具体可包括:
112.采用游标迭代器读取所述待迁移数据块的各条待存储日志、以及相同时间区间的已存储数据块中的各条已存储日志;按照该些日志的时间戳信息重新进行排序,得到所述合并后的数据块。
113.本实施例中,通过游标迭代器依次遍历待迁移数据块的各条待存储日志、以及相同时间区间的已存储数据块中的各条已存储日志,实现重新按照时间戳信息进行时序排序,使得合并后的数据块中所有日志仍是按照时序排序。
114.在上述任一实施例的基础上,s203将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中的具体时机可如下:
115.每间隔预定时间,将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中;和/或
116.若所述第一存储单元中经排序的多条待存储日志占用存储空间超过预设阈值时,将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中。
117.在本实施例中,可以每间隔预定时间,例如每间隔15分钟,将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中;或者在发现第一存储单元中经排序的多条待存储日志占用存储空间超过预设阈值时,将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中;当然,也可以每间隔预定时间判断第一存储单元中经排序的多条待存储日志占用存储空间是否超过预设阈值,若超过预设阈值,则将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中,否则第一存储单元继续进行执行s202。
118.图4为本发明实施例提供的日志数据处理方法流程图。本实施例提供了一种日志数据处理方法,是日志存储阶段的方法,其执行主体为网关,该日志数据处理方法具体步骤如下:
119.s401、接收日志存储请求,所述日志存储请求包括待存储日志,所述待存储日志携带标签信息以及时间戳信息。
120.在本实施例中,当网络设备、系统及服务程序等,在运作过程中产生待存储日志时,可通过客户端向网关发送日志存储请求,日志存储请求包括待存储日志,所述待存储日志携带标签信息以及时间戳信息。
121.s402、根据所述待存储日志的标签信息以及时间戳信息,确定所述待存储日志的路由信息。
122.在本实施例中,网关可根据待存储日志的标签信息,确定待存储日志的路由信息,并将待存储日志根据路由信息发送至对应的目标数据节点。例如,不同的目标数据节点可
对应不同的标签信息,网关可根据待存储日志到的标签信息确定对应的目标数据节点,再获取该目标数据节点的路由信息,例如 ip地址、端口等;当然网关也采用其他方法根据待存储日志的标签信息确定待存储日志的路由信息,此处可不做限定。
123.s403、将所述待存储日志根据所述路由信息发送至对应的目标数据节点。
124.在本实施例中,网关在确定待存储日志的路由信息后,可将待存储日志根据路由信息发送至对应的目标数据节点上,进而使得目标数据节点执行上述数据节点侧的方法,也即,根据时间戳信息对多条待存储日志按照时序写入到第一存储单元中;将第一存储单元中经排序的多条待存储日志以数据块形式迁移到第二存储单元中;其中第二存储单元中各数据块按照时序存储;根据数据块中包括的多条待存储日志的标签信息生成倒排索引文件,以用于在查询日志阶段根据倒排索引文件和时间信息定位所需查询的目标日志。其具体过程和技术效果可参见上述实施例,此处不再赘述。
125.此外,需要说明的是,网关可以有多个,可以负载均衡的响应客户端发送的日志存储请求,将确定待存储日志的路由信息,并发送待存储日志至目标数据节点。各网关之间是对等的,可以在需要增加计算能力时进行扩充。
126.在上述实施例的基础上,s402所述根据所述待存储日志的标签信息以及时间戳信息,确定所述待存储日志的路由信息,包括:
127.根据所述时间戳信息获取所述时间戳信息对应时刻的数据节点列表,所述数据节点列表包括多个数据节点的路由信息;
128.根据所述待存储日志的标签信息获取哈希值;将所述哈希值对所述数据节点列表中数据节点数量进行取模,根据取模结果以及所述数据节点列表,确定所述待存储日志的路由信息。
129.在本实施例中,由于不同时间可能有不同的数据节点可用,也即数据节点列表在不同时间会有所不同,因此可根据时间戳信息确定时间戳信息对应时刻的数据节点列表,数据节点列表中可包括所有可用的数据节点以及对应的路由信息,例如ip地址和/或端口信息,进一步的,可对待存储日志的标签信息获取哈希值,然后将哈希值对数据节点列表中数据节点数量取模,也即将哈希值除以数据节点列表中数据节点数量并取余,基于取模结果(也即余数)从数据节点列表中确定第几个数据节点为目标数据节点,然后可得到目标数据节点对应的路由信息,例如目标数据节点的ip地址、端口信息等。
130.其中,在确定所述待存储日志的路由信息后,具体还可包括:
131.根据所述待存储日志的路由信息确定所述待存储日志将要存储至的目标数据节点;
132.从所述网关本地预存的各数据节点信息中,获取所述目标数据节点信息;或者
133.若所述网关本地预存的各数据节点信息中不存在所述目标数据节点信息,则从预定数据库集群中获取所述目标数据节点信息,其中所述预定数据库集群中存储有各数据节点的周期性注册信息,所述周期性注册信息中包括各数据节点信息。
134.在本实施例中,为了提高对日志存储请求的响应性能,网关本地可预存的各数据节点信息,在网关确定目标数据节点后可从本地预存的各数据节点信息中查找与目标数据节点信息,其中网关本地预存的各数据节点信息可以从预定数据库集群中获取,可选的,网关可定期从预定数据库集群中获取,或者在网关本地预存的各数据节点信息中不存在所述
目标数据节点信息时,从预定数据库集群中获取。
135.而预定数据库集群可以与各网关以及各数据节点连接,预定数据库集群中存储有各数据节点的周期性注册信息,所述周期性注册信息中包括各数据节点信息,也即,每一数据节点与预定数据库集群连接,并且周期性的向预定数据库集群注册,将自己的状态信息注册到预定数据库集群。
136.其中预定数据库集群可以为ectd集群,具有多副本特性,路由信息的可靠性可以得到保证,当然,预定数据库集群也可以为其他的数据库集群,此处不再一一举例。
137.在上述实施例的基础上,网关与任一数据节点之间可预先建立多个线程,从而形成线程池,每个线程与该数据节点存在连接通道(pipeline),多个线程包括写数据线程和读数据线程,网关包括写数据队列和读数据队列,其中写数据队列可以从线程池中选择空闲的写数据线程,通过写数据线程将待存储日志根据路由信息发送至对应的目标数据节点;而读数据队列可以从线程池中选择空闲的读数据线程,通过读数据线程将日志查询请求根据路由信息发送至对应的目标数据节点。
138.为了保证网关有效处理大吞吐量日志存储请求,当网关处理一个日志存储请求(例如socket请求)发送之后不必等待响应完成便可立即处理下一个请求,保证日志存储请求可以快速消费;写数据线程可以源源不断的处理日志存储请求,而不受其他干扰,而响应消息可通过读数据线程返回给客户端;此外,由于写多读少,因此可配置写数据线程多于读数据线程,避免浪费计算资源,保证资源合理利用。
139.图5为本发明实施例提供的日志数据处理方法流程图。本实施例提供了一种日志数据处理方法,是与上述实施例对应的日志查询阶段的方法,其执行主体为包括多个数据节点的日志存储系统的任一数据节点,所述数据节点包括第二存储单元,所述第二存储单元中以数据块形式存储多条日志,其中各数据块按照时序排序,每一数据块中多条日志按标签信息和时序排序,所述日志数据处理方法具体步骤如下:
140.s501、接收网关根据路由信息发送的日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息。
141.在本实施例中,在需要查询日志时,客户端可向网关发送日志查询请求,日志查询请求可以包括待查询日志的标签信息、关键词、以及时间信息,当然,上述信息可以以查询表达式方式发送给网关,网关对查询表达式进行解析,得到待查询日志的标签信息、关键词、以及时间信息。其中,关键词为日志内容的关键词,时间信息可以为一个时间区间。进一步的,网关可根据待查询日志的标签信息,确定待查询日志的路由信息,并将日志查询请求根据路由信息发送至对应的目标数据节点。例如,不同的目标数据节点可对应不同的标签信息,网关可根据待查询日志的标签信息确定对应的目标数据节点,再获取该目标数据节点的路由信息,例如ip地址等;当然网关也采用其他方法根据待查询日志的标签信息确定待存储日志的路由信息,此处可不做限定。
142.s502、根据所述待查询日志的时间信息从所述第二存储单元中确定对应的目标数据块。
143.在本实施例中,由于第二存储单元中各数据块按照时序排序,且每一数据块中多条日志按标签信息和时序排序,因此各数据块对应一个时间区间,也即其包含的多条日志的起止时间,因此可以根据待查询日志的时间信息从第二存储单元中确定包含该时间信息
或者与该时间信息存在交集的对应的目标数据块。例如第二存储单元中的数据块1对应的时间区间为10:00~11:00,数据块2对应的时间区间为11:00~12:00,若待查询日志的时间信息为 10:50~11:00,则确定数据块1为目标数据块,若待查询日志的时间信息为 10:50~11:10,则确定数据块1和数据块2为目标数据块。
144.进一步的,若数据块包括多个层级的子数据块,举例来讲,一个数据块可以为一个block,其分为若干个以5分钟为单元的chunk,则可根据待查询日志的时间信息确定更细粒度的子数据块,例如根据待查询日志的时间信息定位到某个或某几个chunk。
145.s503、根据所述待查询日志的标签信息和关键词,以及所述目标数据块的倒排索引文件,查找目标日志;其中所述倒排索引文件为预先根据所述目标数据块中包括的多条日志的标签信息生成的。
146.在本实施例中,在确定目标数据块后,可进一步获取到目标数据块的倒排索引文件,然后基于待查询日志的标签信息和关键词以及目标数据块的倒排索引文件查询到目标日志。其中倒排索引文件为预先创建,具体创建过程可参见上述实施例。
147.s504、将所述目标日志发送给所述网关。
148.在本实施例中,数据节点在获取到目标日志后可将目标日志发送给网关,以使网关将目标日志发送给客户端,以响应客户端的日志查询请求。
149.本实施例通过上述的查询过程,可快速高效的查询到目标日志,保证日志查询的性能,且降低了查询过程的成本,提高处理效率,不需要依赖第三方远程存储系统,适用于海量日志处理过程。
150.在上述实施例的基础上,s503所述根据所述待查询日志的标签信息和关键词,以及所述目标数据块的倒排索引文件,查找目标日志,具体可包括:
151.s5031、根据所述目标数据块的倒排索引文件查找与所述待查询日志的标签信息匹配的至少一条候选日志;
152.s5032、在所述至少一条候选日志对所述待查询日志的关键词进行检索,查找包括所述关键词的候选日志,确定为所述目标日志。
153.在本实施例中,由于倒排索引文件是预先根据所述目标数据块中包括的多条日志的标签信息生成的,而多条日志标签信息可能存在相同,因此可以先在目标数据块范围内根据倒排索引文件检索出包括待查询日志的标签的候选日志,若候选日志存在多条,则进一步根据待查询日志的关键词进行检索,例如根据待查询日志的关键词对候选日志进行全文检索,从而查找到包括该关键词的候选日志,确定为查询到的目标日志;若候选日志只有一条,则则直接可确定其为查询到的目标日志,当然也可进一步根据待查询日志的关键词进行全文检索以验证该目标日志是否真的包含该关键词。
154.需要说明的,由于在日志查询阶段并不涉及第一存储单元,因此本实施例中并未限制数据节点包括第一存储单元。
155.图6为本发明实施例提供的日志数据处理方法流程图。本实施例提供了一种日志数据处理方法,是与上述实施例对应的日志存储阶段的方法,其执行主体为网关,该日志数据处理方法具体步骤如下:
156.s601、接收日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息。
157.在本实施例中,当需要查询日志时,可通过客户端向网关发送日志查询请求,日志查询请求可以包括待查询日志的标签信息、关键词、以及时间信息,当然,上述信息可以以查询表达式方式发送给网关,网关对查询表达式进行解析,得到待查询日志的标签信息、关键词、以及时间信息。其中,关键词为日志内容的关键词,时间信息可以为一个时间区间。
158.s602、根据所述待查询日志的标签信息,确定所述待查询日志的路由信息。
159.在本实施例中,网关可根据待查询日志的标签信息,确定待查询日志的路由信息,并将日志查询请求根据路由信息发送至对应的目标数据节点。例如,不同的目标数据节点可对应不同的标签信息,网关可根据待查询日志的标签信息确定对应的目标数据节点,再获取该目标数据节点的路由信息,例如ip地址等;当然网关也采用其他方法根据待查询日志的标签信息确定待存储日志的路由信息,此处可不做限定。
160.s603、将所述日志查询请求根据所述路由信息发送至对应的目标数据节点。
161.在本实施例中,网关在确定待存储日志的路由信息后,可将日志查询请求根据路由信息发送至对应的目标数据节点上使得目标数据节点执行上述数据节点侧的方法,也即根据待查询日志的时间信息从第二存储单元中确定对应的目标数据块;根据待查询日志的标签信息和关键词,以及目标数据块的倒排索引文件,查找目标日志;其中倒排索引文件为预先根据目标数据块中包括的多条日志的标签信息生成的;将目标日志发送给网关。其具体过程和技术效果可参见上述实施例,此处不再赘述。
162.在上述实施例的基础上,s602所述根据所述待查询日志的标签信息,确定所述待查询日志的路由信息,包括:
163.判断所述待查询日志的标签信息中是否存在目标标签信息;
164.若所述待查询日志的标签信息中存在目标标签信息,则确定所述目标标签信息对应的数据节点确定为目标数据节点,并获取所述目标数据节点对应的路由信息,确定为所述待查询日志的路由信息;
165.若所述待查询日志的标签信息中不存在目标标签信息,则将所有数据节点确定为目标数据节点,并获取每一目标数据节点对应的路由信息,确定为所述待查询日志的路由信息。
166.在本实施例中,由于某些数据节点对应特定的目标标签信息,例如某一个数据节点x存储特定服务程序x的日志数据,则该数据节点x与该特定服务程序x的名称标签对应,因此当待查询日志的标签信息中存在该特定服务程序x的名称标签时,则直接确定该数据节点x为目标数据节点,并将该目标数据节点对应的路由信息,确定为所述待查询日志的路由信息;若待查询日志的标签信息中不存在目标标签信息,则所有数据节点确定为目标数据节点,也即从所有的数据节点中查询待查询日志。
167.当然,在其他可选实施例中,在网关确定待查询日志的路由信息,也可根据待查询日志的标签信息获取哈希值;根据所述哈希值确定所述待查询日志对应的目标数据节点,并获取所述目标数据节点对应的路由信息,确定为所述待查询日志的路由信息。
168.在上述任一实施例的基础上,网关与任一数据节点之间可预先建立多个线程,从而形成线程池,每个线程与该数据节点存在连接通道(pipeline),多个线程包括写数据线程和读数据线程,网关包括写数据队列和读数据队列,其中写数据队列可以从线程池中选择空闲的写数据线程,通过写数据线程将待存储日志根据路由信息发送至对应的目标数据
节点;而读数据队列可以从线程池中选择空闲的读数据线程,通过读数据线程将日志查询请求根据路由信息发送至对应的目标数据节点。
169.其中,为了保证网关能够快速响应处理日志查询请求(例如socket请求),读数据线程可以源源不断的处理日志查询请求,而不受其他干扰,此外,由于写多读少,因此可配置写数据线程多于读数据线程,避免浪费计算资源,保证资源合理利用。
170.图7为本发明实施例日志数据处理装置的结构图。本实施例提供的日志数据处理装置可以在日志存储阶段执行数据节点侧的日志数据处理方法实施例提供的处理流程,应用于包括多个数据节点的日志存储系统的任一数据节点上,所述数据节点包括第一存储单元和第二存储单元,如图6所示,所述日志数据处理装置700包括接收模块701、第一存储模块702、第二存储模块703以及索引模块704。
171.接收模块701,用于接收网关根据路由信息发送的多条待存储日志,所述待存储日志携带标签信息以及时间戳信息;其中所述路由信息为所述网关根据所述待存储日志的标签信息以及时间戳信息确定;
172.第一存储模块702,用于根据所述标签信息以及所述时间戳信息对所述多条待存储日志按照时序写入到所述第一存储单元中;
173.索引模块704,用于根据所述多条待存储日志的标签信息生成倒排索引文件,所述倒排索引文件用于在查询日志阶段根据所述倒排索引文件和时间信息定位所需查询的目标日志;
174.第二存储模块703,用于将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中;其中所述第二存储单元中各数据块按照时序存储。
175.在上述任一实施例的基础上,所述第一存储单元按照时间划分为多个层级的存储单元,其中下一层级存储单元是对上一层级存储单元进行更细时间粒度划分得到的;
176.所述第一存储模块702在根据所述标签信息以及所述时间戳信息对所述多条待存储日志按照时序写入到所述第一存储单元中时,用于:
177.针对任一条待存储日志,根据所述待存储日志的标签信息确定目标序列;
178.对所述待存储日志的时间戳信息进行取整和取余处理,确定所述时间戳在最小时间粒度中所处的时间区间,根据所述时间区间确定对应的最低层级的存储单元;
179.通过有序链表将所述待存储日志存储于所述目标序列的该最低层级的存储单元中。
180.在上述任一实施例的基础上,所述第二存储模块703在将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中时,用于:
181.按照预定时间区间,将所述第一存储单元中经排序的所述多条待存储日志划分为至少一个待迁移数据块;
182.判断所述第二存储单元中是否存在与所述待迁移数据块处于相同时间区间的已存储数据块;
183.若存在,则将所述待迁移数据块与处于相同时间区间的已存储数据块进行合并,将合并后的数据块存储在所述第二存储单元中,且与其他已存储数据块按照时序排序;
184.若不存在,则将所述待迁移数据块存储在所述第二存储单元中,且与其他已存储数据块按照时序排序。
185.在上述任一实施例的基础上,所述第二存储模块703在将所述待迁移数据块与处于相同时间区间的已存储数据块进行合并时,用于:
186.采用游标迭代器读取所述待迁移数据块的各条待存储日志、以及相同时间区间的已存储数据块中的各条已存储日志;
187.按照该些日志的时间戳信息重新进行排序,得到所述合并后的数据块。
188.在上述任一实施例的基础上,所述第二存储模块703在将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中时,用于:
189.每间隔预定时间,将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中;和/或
190.若所述第一存储单元中经排序的多条待存储日志占用存储空间超过预设阈值时,将所述第一存储单元中经排序的多条待存储日志以数据块形式迁移到所述第二存储单元中。
191.在上述任一实施例的基础上,所述数据块中包括多个层级的子数据块,分别与所述第一存储单元的多个层级的存储单元相对应;
192.所述索引模块704在根据所述多条待存储日志的标签信息生成倒排索引文件时,用于:
193.根据所述第一存储单元中多个层级的存储单元中包括的多条待存储日志的标签信息生成倒排索引文件。
194.本发明实施例提供的日志数据处理装置可以具体用于执行上述图2
‑
3所提供的日志数据处理方法实施例,具体功能此处不再赘述。
195.图8为本发明实施例日志数据处理装置的结构图。本实施例提供的日志数据处理装置可以在日志存储阶段执行网关侧的日志数据处理方法实施例提供的处理流程,如图8所示,所述日志数据处理装置800包括接收模块801、路由模块802以及发送模块803。
196.接收模块801,用于接收日志存储请求,所述日志存储请求包括待存储日志,所述待存储日志携带标签信息以及时间戳信息;
197.路由模块802,用于根据所述待存储日志的标签信息以及时间戳信息,确定所述待存储日志的路由信息;
198.发送模块803,用于将所述待存储日志根据所述路由信息发送至对应的目标数据节点。
199.在上述任一实施例的基础上,所述路由模块802在根据所述待存储日志的标签信息以及时间戳信息,确定所述待存储日志的路由信息时,用于:
200.根据所述时间戳信息获取所述时间戳信息对应时刻的数据节点列表,所述数据节点列表包括多个数据节点的路由信息;
201.根据所述待存储日志的标签信息获取哈希值;
202.将所述哈希值对所述数据节点列表中数据节点数量进行取模,根据取模结果以及所述数据节点列表确定所述待存储日志的路由信息。
203.在上述任一实施例的基础上,所述路由模块802在确定所述待存储日志的路由信息后,还用于:
204.根据所述待存储日志的路由信息确定所述待存储日志将要存储至的目标数据节
点;
205.从所述网关本地预存的各数据节点信息中,获取所述目标数据节点信息;或者
206.若所述网关本地预存的各数据节点信息中不存在所述目标数据节点信息,则从预定数据库集群中获取所述目标数据节点信息,其中所述预定数据库集群中存储有各数据节点的周期性注册信息,所述周期性注册信息中包括各数据节点信息。
207.在上述任一实施例的基础上,所述发送模块803在将所述待存储日志根据所述路由信息发送至对应的目标数据节点时,用于:
208.从线程池中选择空闲的写数据线程,通过所述写数据线程将所述待存储日志根据所述路由信息发送至对应的目标数据节点。
209.本发明实施例提供的日志数据处理装置可以具体用于执行上述图4所提供的日志数据处理方法实施例,具体功能此处不再赘述。
210.图9为本发明实施例日志数据处理装置的结构图。本实施例提供的日志数据处理装置在日志查询阶段执行数据节点侧的日志数据处理方法实施例提供的处理流程,应用于包括多个数据节点的日志存储系统的任一数据节点上,所述数据节点包括第二存储单元,所述第二存储单元中以数据块形式存储多条日志,其中各数据块按照时序排序,每一数据块中多条日志按标签信息和时序排序,如图9所示,所述日志数据处理装置900包括接收模块901、查询模块902、以及发送模块903。
211.接收模块901,用于接收网关根据路由信息发送的日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息;
212.查询模块902,用于根据所述待查询日志的时间信息从所述第二存储单元中确定对应的目标数据块;根据所述待查询日志的标签信息和关键词,以及所述目标数据块的倒排索引文件,查找目标日志;其中所述倒排索引文件为预先根据所述目标数据块中包括的多条日志的标签信息生成的;
213.发送模块903,用于将所述目标日志发送给所述网关。
214.在上述任一实施例的基础上,所述查询模块902在根据所述待查询日志的标签信息和关键词,以及所述目标数据块的倒排索引文件,查找目标日志时,用于:
215.根据所述目标数据块的倒排索引文件查找与所述待查询日志的标签信息匹配的至少一条候选日志;
216.在所述至少一条候选日志对所述待查询日志的关键词进行检索,查找包括所述关键词的候选日志,确定为所述目标日志。
217.本发明实施例提供的日志数据处理装置可以具体用于执行上述图5所提供的日志数据处理方法实施例,具体功能此处不再赘述。
218.图10为本发明实施例日志数据处理装置的结构图。本实施例提供的日志数据处理装置可以在日志查询阶段执行网关侧的日志数据处理方法实施例提供的处理流程,如图10所示,所述日志数据处理装置1000包括接收模块1001、路由模块1002以及发送模块1003。
219.接收模块1001,用于接收日志查询请求,所述日志查询请求包括待查询日志的标签信息、关键词、以及时间信息;
220.路由模块1002,用于根据所述待查询日志的标签信息,确定所述待查询日志的路由信息;
221.发送模块1003,用于将所述日志查询请求根据所述路由信息发送至对应的目标数据节点。
222.在上述任一实施例的基础上,所述发送模块1003在将所述日志查询请求根据所述路由信息发送至对应的目标数据节点时,用于:
223.从线程池中选择空闲的读数据线程,通过所述读数据线程将所述日志查询请求根据所述路由信息发送至对应的目标数据节点。
224.本发明实施例提供的日志数据处理装置可以具体用于执行上述图6所提供的日志数据处理方法实施例,具体功能此处不再赘述。
225.图11为本发明实施例提供的数据节点的结构示意图。本发明实施例提供的数据节点可以执行数据节点侧的日志数据处理方法实施例提供的处理流程,包括日志存储阶段和/或日志查询阶段的处理流程,数据节点可以为数据库、服务器等计算机设备,如图11所示,数据节点1100包括至少一个存储器1101、处理器1102,存储器1101可包括第一存储单元11011和第二存储单元11012,此外存储器1102还可用于存储计算机执行指令,其中计算机执行指令可存储在第一存储单元和/或第二存储单元中,当然也可储存与其他的储存单元中;计算机程序存储在存储器1101中,并被配置为由处理器1102执行以上实施例上述实施例中数据节点侧的日志存储阶段和/或日志查询阶段的日志数据处理流程。此外,数据节点1100还可具有通讯接口1103,用于接收控制指令。
226.图11所示实施例的数据节点可用于执行上述实施例中数据节点侧的日志存储阶段和/或日志查询阶段的日志数据处理流程的技术方案,其实现原理和技术效果类似,此处不再赘述。
227.另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的数据节点侧的日志存储阶段和/或日志查询阶段的日志数据处理方法。
228.图12为本发明实施例提供的网关的结构示意图。本发明实施例提供的网关可以执行网关侧的日志数据处理方法实施例提供的处理流程,包括日志存储阶段和/或日志查询阶段的处理流程,如图12所示,网关1200包括存储器 1201、处理器1202;其中,存储器1201中存储有计算机程序,并被配置为由处理器1202执行以上实施例所述的网关侧的日志存储阶段和/或日志查询阶段的日志数据处理方法。此外,电子设备1200还可具有通讯接口1203,用于接收控制指令。
229.图12所示实施例的电子设备可用于执行上述网关侧的日志存储阶段和/ 或日志查询阶段的日志数据处理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
230.另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的网关侧的日志存储阶段和/或日志查询阶段的日志数据处理方法。
231.另外,本发明实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时,实现上述实施例所述的数据节点侧的日志存储阶段和/或日志查询阶段的日志数据处理方法。
232.另外,本发明实施例提供一种计算机程序产品,包括计算机执行指令,该计算机执
行指令被处理器执行时,实现上述实施例所述的网关侧的日志存储阶段和/或日志查询阶段的日志数据处理方法。
233.在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
234.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
235.另外,在本发明实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
236.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(processor)执行本发明实施例各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read
‑
only memory, rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
237.本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
238.以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的范围。
239.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
240.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。