一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分布式查询引擎的控制方法及其控制装置与流程

2022-11-16 07:01:14 来源:中国专利 TAG:


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.主节点通过主节点的新增数据源接口,接收集群管理器发送的数据库的链接信息;
56.或者,主节点通过主节点的删除数据源接口,接收集群管理器发送的数据库的链接信息。
57.可选的,修改数据源接口包括更新数据源接口;
58.数据源的修改信息包括数据库的配置信息;
59.方法还包括:
60.主节点通过主节点的更新数据源接口,接收集群管理器发送的数据库的配置信息;
61.主节点通过广播方式,将数据库的配置信息向主节点下所有子节点发送。
62.可选的,方法还包括:
63.主节点监测主节点的运行状况;
64.主节点通过主节点的代理接口,向集群管理器发送主节点的运行状况。
65.本技术实施例第三方面提供了一种分布式查询引擎的控制装置,分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连
接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
66.控制装置包括:
67.接收单元,用于接收客户端发送的数据源的修改信息;
68.发送单元,用于将数据源的修改信息通过主节点的修改数据源接口,发送到注册在集群管理器的所有主节点,以使得主节点通过广播方式将数据源的修改信息向主节点下所有子节点发送。
69.可选的,修改数据源接口包括新增数据源接口和删除数据源接口;
70.数据源的修改信息包括数据库的链接信息;
71.链接信息包括修改标识字符,修改标识字符包括新增标识字符或删除标识字符;
72.发送单元,具体包括:
73.读取子单元,用于从数据库的链接信息中读取修改标识字符;
74.发送子单元,用于在修改标识字符是新增标识字符时,将数据库的链接信息通过主节点的新增数据源接口,发送到注册在集群管理器的所有主节点;
75.发送子单元,还用于在修改标识字符是删除标识字符时,将数据库的链接信息通过主节点的删除数据源接口,发送到注册在集群管理器的所有主节点。
76.可选的,修改数据源接口包括更新数据源接口;
77.数据源的修改信息包括数据库的配置信息;
78.接收单元,还用于接收客户端发送的数据库的配置信息;
79.发送单元,还用于将数据库的配置信息,通过主节点的更新数据源接口发送到注册在集群管理器的所有主节点,以使得主节点接口通过广播方式将数据库的配置信息向主节点下所有子节点发送。
80.可选的,控制装置还包括:
81.收集单元,用于通过主节点的代理接口收集索引集群的运行状况;
82.判断单元,用于根据索引集群的运行状况,依次判断注册在集群管理器的所有主节点是否可用;
83.放入单元,用于在注册在集群管理器的所有主节点存在可用节点时,将所有可用节点放入可用节点集合;
84.排序单元,用于对所有可用节点在预设时间内的任务量进行排序;
85.选取单元,用于从所有可用节点中选取任务量最少的目标主节点;
86.接收单元,还用于接收客户端发送的数据处理请求;
87.发送单元,还用于向目标主节点发送数据处理请求。
88.可选的,判断单元,具体包括:
89.判断子单元,用于根据索引集群的运行状况,判断索引集群是否存在阻塞超时任务;
90.确定子单元,用于确定阻塞超时任务对应的主节点为不可用节点,确定不可用节点之外其余主节点为可用节点。
91.可选的,集群管理器根据索引集群的运行状况,判断索引集群是否存在阻塞超时任务后,控制装置还包括:
92.告警单元,用于在存在阻塞超时任务时,根据预设的告警设置向客户端发送告警
信息;
93.异步单元,用于将阻塞超时任务注册为异步任务。
94.可选的,放入单元,还用于在注册在集群管理器的所有主节点存在不可用节点时,将不可用节点放入不可用节点集合;
95.控制装置还包括:替补单元,用于从子节点中确定目标子节点,将目标子节点注册为主节点替补不可用节点。
96.可选的,控制装置还包括:
97.校验单元,用于对数据源的修改信息进行唯一性校验,若校验通过则生成唯一的数据源标识,唯一性校验用于确保客户端和数据库之间仅有一条数据源标识;
98.接收单元,还用于接收客户端发送的数据处理请求;
99.获取单元,用于获取数据处理请求对应的数据源标识、数据库标识或数据表标识;
100.获取单元,还用于获取客户端的用户标识;
101.查询单元,用于查询用户标识对应的数据库权限或数据表权限,判断数据源标识、数据库标识或数据表标识是否在数据库权限或数据表权限内;
102.拒绝单元,用于在数据源标识、数据库标识或数据表标识不在数据库权限或数据表权限内时,拒绝数据处理请求。
103.可选的,控制装置还包括:
104.接收单元,还用于接收客户端发送的弹性策略阈值;
105.判断单元,还用于根据弹性策略阈值判断分布式查询引擎是处于流量高峰还是流量低谷;
106.新增单元,用于在处于流量高峰时,向索引集群新增主节点;
107.删除单元,用于在处于流量低谷时,从索引集群删除主节点。
108.本技术实施例第四方面提供了一种分布式查询引擎的控制装置,包括:分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
109.接收单元,用于通过主节点的修改数据源接口,接收集群管理器发送的数据源的修改信息;
110.发送单元,用于通过广播方式,将数据源的修改信息向主节点下所有子节点发送。
111.可选的,数据源的修改信息包括数据库的链接信息;
112.修改数据源接口包括新增数据源接口和删除数据源接口;
113.接收单元,具体用于:
114.通过主节点的新增数据源接口,接收集群管理器发送的数据库的链接信息;
115.或者,通过主节点的删除数据源接口,接收集群管理器发送的数据库的链接信息。
116.可选的,修改数据源接口包括更新数据源接口;
117.数据源的修改信息包括数据库的配置信息;
118.接收单元,还用于通过主节点的更新数据源接口,接收集群管理器发送的数据库的配置信息;
119.发送单元,还用于通过广播方式,将数据库的配置信息向主节点下所有子节点发送。
120.可选的,控制装置还包括:
121.监测单元,用于监测主节点的运行状况;
122.代理单元,用于通过主节点的代理接口,向集群管理器发送主节点的运行状况。
123.本技术实施例第五方面提供了一种计算机设备,包括:
124.中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
125.存储器为短暂存储存储器或持久存储存储器;
126.中央处理器配置为与存储器通信,并执行存储器中的指令操作以执行第一方面或第二方面的方法。
127.本技术实施例的第六方面提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行第一方面或第二方面的方法。
128.本技术实施例的第七方面提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第一方面或第二方面的方法。
129.本技术实施例的第八方面提供了一种芯片系统,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第二方面的方法。
130.从以上技术方案可以看出,本技术实施例具有以下优点:
131.本技术实施例改变了集群管理器的工作流程,允许集群管理器在启动后修改数据源。在主节点设置了修改数据源接口。修改数据源接口是在主节点的源代码设置的接口。在修改数据源时,通过接口的方式动态修改索引集群的数据源,无需集群管理器停机,集群管理器的程序能够连续工作,提高了集群管理的效率。
附图说明
132.图1是本技术实施例分布式查询引擎的控制方法的一种流程图;
133.图2是本技术实施例分布式查询引擎的拓扑结构示意图;
134.图3是本技术实施例分布式查询引擎的控制方法的一种信令流程图;
135.图4是本技术实施例分布式查询引擎的控制方法的另一种信令流程图;
136.图5是本技术实施例分布式查询引擎的控制方法的另一种信令流程图;
137.图6是本技术实施例分布式查询引擎的控制方法的另一种流程图;
138.图7是本技术实施例分布式查询引擎的控制方法的另一种流程图;
139.图8是本技术实施例分布式查询引擎的控制方法的另一种信令流程图;
140.图9是本技术实施例分布式查询引擎的控制方法的另一种流程图;
141.图10是本技术实施例分布式查询引擎的控制装置的一种架构图;
142.图11是本技术实施例分布式查询引擎的控制装置的另一种架构图;
143.图12是本技术实施例分布式查询引擎的控制装置的另一种架构图;
144.图13是本技术实施例分布式查询引擎的控制装置的另一种架构图;
145.图14是本技术实施例的计算机设备的示意图。
具体实施方式
146.本技术实施例可以由计算机设备实现,计算机设备可以包括终端以及服务器中的
至少之一,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
147.如图1所示,本技术实施例提供了一种分布式查询引擎的控制方法,分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
148.101、集群管理器接收客户端发送的数据源的修改信息;
149.客户端编辑或选择数据源的修改信息,并发送到集群管理器。集群管理器通过网络接口接收客户端发送的数据源的修改信息。
150.102、集群管理器将数据源的修改信息通过主节点的修改数据源接口,发送到注册在集群管理器的所有主节点。
151.集群管理器确定数据源的修改信息的类型,并根据数据源的修改信息的类型确定主节点的修改数据源接口的类型,将数据源的修改信息通过相应类型的主节点的修改数据源接口发送。集群管理器可以依次将数据源的修改信息发送到所有主节点,也可以通过广播的方式发送到所有主节点。主节点在接收到数据源的修改信息后,通过广播方式将数据源的修改信息向主节点下所有子节点发送。
152.本技术实施例在快速搭建高性能、高可用,高并发的查询引擎集群的基础上,针对海量数据(pb级,1pb=1024tb)实现快速地交互式分析。集群管理前端包含了控制面板、节点管理、查询计划、历史记录、弹性策略、预警监控、用户中心、集群设置等八大功能模块,以可视化界面的操作方式对查询引擎进行全方位管理,大大提高了集群管理效率,降低了操作上手难度。通过server-client的架构模式,屏蔽了底层操作细节,保证了系统安全性。
153.客户端也可以称为集群管理前端或client端。集群管理器也可以称为集群管理后端、服务端或server端。索引集群可以简称集群。分布式查询引擎可以简称查询引擎或引擎。
154.在开发融合分析平台(multiple analysis platform,map)的过程中,需要一种查询引擎,可以实时处理查询和计算图表所需要的数据,因为图表的数据来源、数据量级都是不确定的。在现有的联机分析处理(on-line analytic processing,olap)技术的基础上,本技术实施例的查询计算业务对查询引擎有以下几点要求:
155.1、处理pb级别以上的数据;
156.2、不停机水平扩容增加节点来提高算力;
157.3、支持各种主流的数据库或者自定义的数据连接器类型;
158.4、不停机动态增加数据源;
159.5、使用通用的结构化查询语言(structured query language,sql)来提交任务;
160.6、在秒级别返回响应,并且可以自定义选择缓存模式;
161.7、在主节点宕机的情况下,不影响业务正常运行;
162.8、可以做到用户级别和表级别的权限控制;
163.9、故障自愈,弹性自实适应流量峰谷;
164.10、历史信息留存分析,针对性任务优化,监控自告警。
165.为应对以上技术需求,在现有的开源的分布式查询引擎的基础上进行优化和二次开发,改造了底层源码,研发新的中间调度层,研发可视化操作界面,以适应产品需要。
166.本技术实施例拓展了丰富的数据源支持,如文件数据源、在线数据源等;在集群管理器不停机的情况下通过接口广播机制动态增加数据源;提供小规模数据、大批量查询的集群模式和海量数据复杂查询低频率的集群模式,给业务提供一个适合的底层引擎。
167.客户端实现普通用户的可视化界面操作;集群管理器通过远程连接工具(secure shell,ssh),来操作每一个集群节点。客户端可以采用flutter编写,可以编译成windows,linux,macos,浏览器,安卓,ios等各个主流的操作界面,用户可以在任意平台上通过管理工具来管理索引集群。flutter是基于编程语言dart的跨平台前端界面开发框架。集群管理器采用django开发,可以安装在linux操作系统上。django是基于编程语言pythont的web框架。客户端可以登录到集群管理器上,向集群管理器发送数据处理请求,通过集群管理器向索引集群发送各种调度指令。
168.集群管理由客户端和集群管理器实现,其中拓扑结构如图2所示。
169.一个集群管理器201可以管理若干索引集群。索引集群由主节点202和子节点203构成。每个索引集群可以包括若干主节点202。每个主节点202下有多个子节点203。多个客户端204与集群管理器201连接。
170.在一种实现方式中,在不停机的情况下,用户在客户端可视化界面中,输入数据库的链接信息,通过http接口发送到集群管理器,通过唯一性校验,生成唯一的连接id。需要说明的是,除了输入数据库的链接信息,如果是其他类型的数据源,也可以输入数据库的配置信息。
171.集群管理器通过轮训方式,将数据库的链接信息发送到注册在集群管理器的所有主节点。改造后的主节点,新增了三个处理数据源的接口,分别是新增数据源接口、更新数据源接口和删除数据源接口。主节点接收集群管理器发送的数据库的链接信息,通过map数据结构存储,来保证唯一性,并持久化到该主节点的磁盘中,保证集群管理器停机重启也能载入数据库的链接信息。轮训方式是指循环、依次执行的方式。
172.主节点通过广播方式,下发到与主节点连接的所有子节点,保证所有的子节点的配置信息是一致的。这样一条新的链接信息就注册到了索引集群中,用户可以通过指定连接id,来实现跨源查询。连接id也可以称为源id。
173.在进行请求处理时,主节点对各类sql语句进行词法解析、语法分析、语义分析和语句优化,生成执行计划,得到多个子任务,最后在主节点的调度模块进行任务的分发,把子任务分发到各个worker节点。worker节点是实际的执行节点,会执行包括聚合、排序、连接(join)以及去重等操作。
174.需要说明的是,主节点也可以称为master节点。子节点也可以称为worker节点或工作节点。
175.数据源的修改信息可以包括数据库的链接信息或数据库的配置信息。其中,数据库的链接信息可以有不同的修改标识字符,例如新增标识字符和删除标识字符。
176.修改数据源接口有多种,例如新增数据源接口、删除数据源接口和更新数据源接
口。不同的修改数据源接口对应不同的数据源的修改信息,新增数据源接口,对应具有新增标识字符的数据库的链接信息;删除数据源接口,对应具有删除标识字符的数据库的链接信息;更新数据源接口,对应数据库的配置信息。
177.下面根据修改数据源接口的不同详细说明分布式查询引擎的控制方法的步骤。
178.一、如图3所示,新增数据源接口:
179.301、客户端显示可视化界面。
180.客户端可以设置多个功能模块,功能模块能够在可视化界面中显示。功能模块例如:控制面板模块、节点管理模块、查询计划模块、历史记录模块、弹性策略模块、监控预警模块、用户中心模块和集群设置模块。下面对各个功能模块进行说明。
181.控制面板模块:用于通过集群管理器接口,展示整个集群的负载情况,包含子节点的排队状况,载入行数等基础信息;主节点的内存、cpu、磁盘使用信息,已经连接的数据源信息。用户还能够通过控制面板模块搜索数据源信息,增加数据源连接,编辑数据源连接。
182.节点管理模块:用于展示集群节点卡片,包括主机,端口,运行状况等节点基本信息。用户还能够通过节点管理模块手动停止,启动,增加集群节点。集群节点包括主节点和子节点。
183.查询计划模块:用于选择数据源,格式美化sql语句;执行sql语句,输出查询结果和报错信息,并将查询结果导出为数据模型。
184.历史记录模块:用于查询和分析历史执行过的的查询任务。
185.弹性策略模块:用于进行机房选择,开启调度策略,自定义最大最小副本数量,选择调度策略,峰谷模式定时弹性伸缩,设置定时计划(cron)调度任务。调度策略也可以称为弹性策略。
186.监控预警模块:用于进行集群告警模式设置,告警阈值设置,告警自修复策略选择,告警邮件发送设置。
187.用户中心模块:用于设置用户基本信息,租户信息展示,权限展示,界面设置。
188.集群设置模块:用于私人化部署时设置主节点基本配置,节点副本发送配置,节点注册模式设置。
189.302、客户端在可视化界面中接收数据库的链接信息。
190.客户端可以通过可视化界面接收用户输入或选择的数据库的链接信息。
191.303、集群管理器接收客户端发送的数据库的链接信息。
192.客户端与集群管理器可以通过http接口等网络接口通讯连接。
193.在一种实现方式中,集群管理器是通过http请求接口的方式来与客户端交互的。集群管理器与集群主节点,是通过传输控制协议(transmission control protocol,tcp)通信来交互的。
194.集群管理器可以划分为多个功能模块:
195.登录模块:负责客户端登录鉴权。
196.集群模块:负责集群管理器与主节点之间保活(keepalive),节点同步,通过ssh操作子节点。
197.客户端模块:提供客户端操作配置需要的接口,验证并执行客户端的命令。
198.304、集群管理器从数据库的链接信息中读取修改标识字符。
199.修改标识字符包括新增标识字符或删除标识字符。新增标识字符代表用户要求在检索集群中加入新的数据源。删除标识字符代表用户要求在检索集群中删除特定的数据源。
200.305、集群管理器确认修改标识字符是新增标识字符;
201.306、集群管理器将数据库的链接信息通过主节点的新增数据源接口,发送到注册在集群管理器的所有主节点。
202.集群管理器可以依次将数据库的链接信息发送到注册在集群管理器的所有主节点。
203.307、主节点通过广播方式将数据库的链接信息或数据库的配置信息向主节点下所有子节点发送。
204.各个主节点分别向与自身连接的子节点广播。
205.二、如图4所示,删除数据源接口:
206.401、客户端显示可视化界面。
207.402、客户端在可视化界面中接收数据库的链接信息。
208.403、集群管理器接收客户端发送的数据库的链接信息。
209.404、集群管理器从数据库的链接信息中读取修改标识字符。
210.步骤401至404与步骤301至304类似,不作赘述。
211.405、集群管理器确认修改标识字符是删除标识字符;
212.406、集群管理器将数据库的链接信息通过主节点的删除数据源接口,发送到注册在集群管理器的所有主节点。
213.集群管理器可以依次将数据库的链接信息发送到注册在集群管理器的所有主节点。
214.407、主节点通过广播方式将数据库的链接信息向主节点下所有子节点发送。
215.步骤406与步骤306类似,不作赘述。
216.三、如图5所示,更新数据源接口:
217.501、客户端显示可视化界面。
218.步骤501与步骤301类似,不作赘述。
219.502、客户端在可视化界面中接收数据库的配置信息。
220.客户端可以通过可视化界面接收用户输入或选择的数据库的配置信息。
221.503、集群管理器接收客户端发送的数据库的配置信息。
222.504、集群管理器将数据库的配置信息通过主节点的更新数据源接口,发送到注册在集群管理器的所有主节点。
223.集群管理器可以依次将数据库的配置信息发送到注册在集群管理器的所有主节点。
224.505、主节点通过广播方式将数据库的链接信息或数据库的配置信息向主节点下所有子节点发送。
225.完成上述步骤301至306、401至406或501至505,就实现了对索引集群的数据源的动态修改。在修改了数据源后,还可以进行任务优化、哨兵模式、过滤非法查询或弹性策略等功能操作。下面对各个功能操作的步骤进行说明。
226.如图6所示,任务优化:
227.601、集群管理器通过主节点的代理接口收集索引集群的运行状况;
228.索引集群运行的状况,都会通过节点池中各个节点的代理(agent)接口,收集到集群管理器。索引集群中的主节点和子节点构成节点池。
229.602、集群管理器根据索引集群的运行状况,依次判断注册在集群管理器的所有主节点是否可用;
230.6021、集群管理器根据索引集群的运行状况,判断索引集群是否存在阻塞超时任务;
231.6022、集群管理器确定阻塞超时任务对应的主节点为不可用节点,确定不可用节点之外其余主节点为可用节点。
232.603、若注册在集群管理器的所有主节点存在可用节点,集群管理器将所有可用节点放入可用节点集合;
233.同时,因为每一条任务都是通过集群管理器发送到节点执行的,集群管理器可以剔除节点池中相应的坏掉的或者阻塞的节点,重新下发任务到运行良好的节点中,保证任务顺利完成。
234.604、集群管理器对所有可用节点在预设时间内的任务量进行排序;
235.605、集群管理器从所有可用节点中选取任务量最少的目标主节点;
236.通过任务优化,保证每一个查询任务下发到最适合的节点执行,以保证执行效率。
237.606、集群管理器接收客户端发送的数据处理请求,并向目标主节点发送数据处理请求。
238.607、若存在阻塞超时任务,集群管理器根据预设的告警设置向客户端发送告警信息;
239.一旦有任务阻塞超时,节点不可用等状况,集群管理器会根据告警设置,把相应的告警信息通过邮件,发送到用户的邮箱中。以告警信息的形式将任务运行结果发送给用户,能够将结果尽快返回用户。
240.608、集群管理器将阻塞超时任务注册为异步任务。
241.任务异常时,为解决超时问题,任务会被重新调度,集群管理器会把阻塞超时任务注册为一个异步任务。
242.需要说明的是,步骤607和608为可选步骤,可以不执行。
243.集群管理器从节点池中,获取所有的保持活性的主节点。其中,每一个主节点,都是通过server-master轮训的方式,来判断活性的,即集群管理器依次判断每个主节点的是否保持活性,并循环进行。节点中保存有预设时长内(例如一分钟内)收到的任务,确定收到任务最少的那一个节点为目标主节点。保证目标主节点是负载最轻的主节点,收到任务后可以快速处理。
244.选择负载最轻的主节点可以采用下面的方法:回调时间窗口函数和任务运行时间,对每一个节点处理任务的能力进行评分。回调是指将输出反馈到输入端,形成循环,以逐渐调整参数。在分配任务的时候,可以将评分作为任务分配的权重。保证集群的任务下发处于较优的状态。
245.保持活性也可以称为可用或保活。
246.如图7所示,哨兵模式:
247.701、集群管理器通过主节点的代理接口收集索引集群的运行状况;
248.702、集群管理器根据索引集群的运行状况,依次判断注册在集群管理器的所有主节点是否可用;
249.步骤701至702与步骤601至602类似,不再赘述。
250.703、若注册在集群管理器的所有主节点存在不可用节点,集群管理器将不可用节点放入不可用节点集合;
251.704、集群管理器从子节点中确定目标子节点,将目标子节点注册为主节点替补不可用节点。
252.当集群设置为哨兵模式的时候,集群管理器会首先剔除节点池中坏掉的主节点,保证节点池中所有的主节点可用,重新调度原先在坏掉节点中执行的任务。节点池中每一个节点的节点服务器作为哨兵监控自身运行状态。当哨兵监测到主节点宕机时,集群管理器会将子节点切换成主节点,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让从服务器切换主机。从服务器是指子节点的服务器。然后将新的主节点注册到节点池中,进入接受任务的状态。
253.通过哨兵模式,监测节点运行状态,保证集群始终处于高可用状态。
254.如图8所示,过滤非法查询:
255.801、集群管理器对数据源的修改信息进行唯一性校验,若校验通过则生成唯一的数据源标识。
256.唯一性校验用于确保客户端和数据库之间仅有一条数据源标识;一个客户端可以访问多个数据库,一个数据库可以允许多个客户端访问,但是一个客户端与一个数据库之间在同一时刻仅允许有一条数据源标识。
257.集群管理器利用数据库的链接信息或数据库的配置信息进行唯一性校验。唯一的数据源标识也可以称为唯一的连接标识或唯一的连接id。
258.802、集群管理器接收客户端发送的数据处理请求;
259.当用户在客户端输入一条sql之后,首先可以运用客户端的格式美化功能,对sql格式进行美化,使sql的逻辑结构更加清晰,例如进行高亮、大小写转换、换行、增减空格等,方便排除错误。用户点击执行sql,客户端会通过http接口将数据处理请求以sql语句发送到集群管理器。
260.803、集群管理器获取数据处理请求对应的数据源标识、数据库标识或数据表标识;
261.集群管理器在收到语句后,首先做安全性校验,通过解析成抽象语法树(abstract syntax tree,ast)的结构,判断sql语句运行的源id,库id,表id。
262.804、集群管理器获取客户端的用户标识;
263.用户标识可以是用户id。
264.805、集群管理器查询用户标识对应的数据库权限或数据表权限,判断数据源标识、数据库标识或数据表标识是否在数据库权限或数据表权限内;
265.根据发出请求的用户id,查询用户所拥有的的库权限,表权限。通过核对权限过滤非法查询。
266.806、若数据源标识、数据库标识或数据表标识不在数据库权限或数据表权限内,则拒绝数据处理请求。
267.807、若数据源标识、数据库标识或数据表标识在数据库权限或数据表权限内,则集群管理器向主节点发送数据处理请求。
268.808、主节点接收集群管理器发送的数据处理请求,并根据数据处理请求生成执行计划;
269.809、主节点的调度模块根据执行计划向子节点发送子任务。
270.810、子节点根据子任务对数据源进行处理(聚合、排序、连接或去重)。
271.811、子节点向客户端反馈处理结果。
272.客户端接收处理结果后,客户端能够根据自定义选择的缓存模式存储反馈的处理结果。
273.如图9所示,弹性策略:
274.901、集群管理器接收客户端发送的弹性策略阈值;
275.通过客户端来设置弹性策略,以应对流量高峰带来的冲击和流量低谷所造成的成本损失。集群管理器根据设置的弹性策略阈值,如cpu阈值,内存阈值等,决定是否通过ssh远程操作节点服务器增加和删减节点。
276.当用户设置好弹性策略之后,点击开启弹性策略,客户端会把配置发送到集群管理器,集群管理器持久化保存到数据库之后生成历史的策略快照。根据策略内容,注册相应的crontab(一种linux系统的定时任务工具)命令,定时执行调度策略。如果弹性策略阈值更新,那么就更新保存在数据库中的全局变量,以实时更新弹性策略。
277.902、集群管理器根据弹性策略阈值判断分布式查询引擎是处于流量高峰还是流量低谷;
278.弹性策略可以通过业务属性来调度节点,如果白天是流量高峰,夜晚流量低,可以设置早晨8:00-晚上20:00扩容节点,其余时间缩减节点,降低机器成本。
279.903、若处于流量高峰,集群管理器向索引集群新增主节点;
280.每一个节点都附带了一个代理(agent)接口,用于上报当前节点的运行状况到集群管理器。收集到的任务运行数据,会保存在集群管理器的数据库中,经过分析函数处理,得到每一个节点的性能状况。每次调度,都根据处理能力进行优先级排序,优先将性能最好的节点注册到节点池中。
281.904、若处于流量低谷,集群管理器从索引集群删除主节点。
282.被删除的主节点不再注册在集群管理器。因而删除也可以称为注销。
283.如图10所示,本技术实施例提供了一种分布式查询引擎的控制装置,分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
284.控制装置包括:
285.接收单元1001,用于接收客户端发送的数据源的修改信息;
286.发送单元1002,用于将数据源的修改信息通过主节点的修改数据源接口,发送到注册在集群管理器的所有主节点,以使得主节点通过广播方式将数据源的修改信息向主节点下所有子节点发送。
287.如图11所示,本技术实施例提供了一种分布式查询引擎的控制装置,分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
288.控制装置包括:
289.接收单元1101,用于接收客户端发送的数据源的修改信息;
290.发送单元1102,用于将数据源的修改信息通过主节点的修改数据源接口,发送到注册在集群管理器的所有主节点,以使得主节点通过广播方式将数据源的修改信息向主节点下所有子节点发送。
291.可选的,修改数据源接口包括新增数据源接口和删除数据源接口;
292.数据源的修改信息包括数据库的链接信息;
293.链接信息包括修改标识字符,修改标识字符包括新增标识字符或删除标识字符;
294.发送单元1102,具体包括:
295.读取子单元11021,用于从数据库的链接信息中读取修改标识字符;
296.发送子单元11022,用于在修改标识字符是新增标识字符时,将数据库的链接信息通过主节点的新增数据源接口,发送到注册在集群管理器的所有主节点;
297.发送子单元11022,还用于在修改标识字符是删除标识字符时,将数据库的链接信息通过主节点的删除数据源接口,发送到注册在集群管理器的所有主节点。
298.可选的,修改数据源接口包括更新数据源接口;
299.数据源的修改信息包括数据库的配置信息;
300.接收单元1101,还用于接收客户端发送的数据库的配置信息;
301.发送单元1102,还用于将数据库的配置信息,通过主节点的更新数据源接口发送到注册在集群管理器的所有主节点,以使得主节点接口通过广播方式将数据库的配置信息向主节点下所有子节点发送。
302.可选的,控制装置还包括:
303.收集单元1103,用于通过主节点的代理接口收集索引集群的运行状况;
304.判断单元1104,用于根据索引集群的运行状况,依次判断注册在集群管理器的所有主节点是否可用;
305.放入单元1105,用于在注册在集群管理器的所有主节点存在可用节点时,将所有可用节点放入可用节点集合;
306.排序单元1106,用于对所有可用节点在预设时间内的任务量进行排序;
307.选取单元1107,用于从所有可用节点中选取任务量最少的目标主节点;
308.接收单元1101,还用于接收客户端发送的数据处理请求;
309.发送单元1102,还用于向目标主节点发送数据处理请求。
310.可选的,判断单元1104,具体包括:
311.判断子单元11041,用于根据索引集群的运行状况,判断索引集群是否存在阻塞超时任务;
312.确定子单元11042,用于确定阻塞超时任务对应的主节点为不可用节点,确定不可用节点之外其余主节点为可用节点。
313.可选的,集群管理器根据索引集群的运行状况,判断索引集群是否存在阻塞超时
任务后,控制装置还包括:
314.告警单元1108,用于在存在阻塞超时任务时,根据预设的告警设置向客户端发送告警信息;
315.异步单元1109,用于将阻塞超时任务注册为异步任务。
316.可选的,放入单元1105,还用于在注册在集群管理器的所有主节点存在不可用节点时,将不可用节点放入不可用节点集合;
317.控制装置还包括:替补单元1110,用于从子节点中确定目标子节点,将目标子节点注册为主节点替补不可用节点。
318.可选的,控制装置还包括:
319.校验单元1111,用于对数据源的修改信息进行唯一性校验,若校验通过则生成唯一的数据源标识,唯一性校验用于确保客户端和数据库之间仅有一条数据源标识;
320.接收单元1101,还用于接收客户端发送的数据处理请求;
321.获取单元1112,用于获取数据处理请求对应的数据源标识、数据库标识或数据表标识;
322.获取单元1112,还用于获取客户端的用户标识;
323.查询单元1113,用于查询用户标识对应的数据库权限或数据表权限,判断数据源标识、数据库标识或数据表标识是否在数据库权限或数据表权限内;
324.拒绝单元1114,用于在数据源标识、数据库标识或数据表标识不在数据库权限或数据表权限内时,拒绝数据处理请求。
325.可选的,控制装置还包括:
326.接收单元1101,还用于接收客户端发送的弹性策略阈值;
327.判断单元1104,还用于根据弹性策略阈值判断分布式查询引擎是处于流量高峰还是流量低谷;
328.新增单元1115,用于在处于流量高峰时,向索引集群新增主节点;
329.删除单元1116,用于在处于流量低谷时,从索引集群删除主节点。
330.如图12所示,本技术实施例提供了一种分布式查询引擎的控制装置,包括:分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
331.接收单元1201,用于通过主节点的修改数据源接口,接收集群管理器发送的数据源的修改信息;
332.发送单元1202,用于通过广播方式,将数据源的修改信息向主节点下所有子节点发送。
333.如图13所示,本技术实施例提供了一种分布式查询引擎的控制装置,包括:分布式查询引擎包括集群管理器和索引集群,索引集群包括主节点和子节点;集群管理器与客户端通讯连接,集群管理器与主节点通讯连接,主节点与子节点通讯连接;
334.接收单元1301,用于通过主节点的修改数据源接口,接收集群管理器发送的数据源的修改信息;
335.发送单元1302,用于通过广播方式,将数据源的修改信息向主节点下所有子节点发送。
336.可选的,数据源的修改信息包括数据库的链接信息;
337.修改数据源接口包括新增数据源接口和删除数据源接口;
338.接收单元1301,具体用于:
339.通过主节点的新增数据源接口,接收集群管理器发送的数据库的链接信息;
340.或者,通过主节点的删除数据源接口,接收集群管理器发送的数据库的链接信息。
341.可选的,修改数据源接口包括更新数据源接口;
342.数据源的修改信息包括数据库的配置信息;
343.接收单元1301,还用于通过主节点的更新数据源接口,接收集群管理器发送的数据库的配置信息;
344.发送单元1302,还用于通过广播方式,将数据库的配置信息向主节点下所有子节点发送。
345.可选的,控制装置还包括:
346.监测单元1303,用于监测主节点的运行状况;
347.代理单元1304,用于通过主节点的代理接口,向集群管理器发送主节点的运行状况。
348.如图14所示,本技术实施例还提供了一种计算机设备1400,包括:
349.中央处理器1401,存储器1405,输入输出接口1404,有线或无线网络接口1403以及电源1402;
350.存储器1405为短暂存储存储器或持久存储存储器;
351.中央处理器1401配置为与存储器1405通信,并执行存储器1405中的指令操作以执行如图1至图9所示实施例中的方法。
352.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行如图1至图9所示实施例中的方法。
353.本技术实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如图1至图9所示实施例中的方法。
354.本技术实施例还提供了一种芯片系统,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行如图1至图9所示实施例中的方法。
355.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
356.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
357.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
358.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
359.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地
360.方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
361.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
362.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献