执行SQL查询的方法、装置、设备及存储介质.pdf

上传人:宁*** 文档编号:14328727 上传时间:2024-01-22 格式:PDF 页数:11 大小:1.42MB
返回 下载 相关 举报
执行SQL查询的方法、装置、设备及存储介质.pdf_第1页
第1页 / 共11页
执行SQL查询的方法、装置、设备及存储介质.pdf_第2页
第2页 / 共11页
执行SQL查询的方法、装置、设备及存储介质.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《执行SQL查询的方法、装置、设备及存储介质.pdf》由会员分享,可在线阅读,更多相关《执行SQL查询的方法、装置、设备及存储介质.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202310512723.9(22)申请日 2023.05.08(71)申请人 上海二三四五网络科技有限公司地址 200135 上海市浦东新区杨高北路528号14幢1-5层(72)发明人 陈帅(74)专利代理机构 上海海钧知识产权代理事务所(特殊普通合伙)31330专利代理师 许兰姜波(51)Int.Cl.G06F 16/28(2019.01)G06F 9/54(2006.01)G06F 16/2458(2019.01)(54)发明名称一种执行SQL查询的方法、装置、设备及存储介质(57)摘要本发。

2、明公开了一种执行SQL查询的方法、装置、设备及存储介质,基于Spark Kyuubi平台实现;该方法包括:服务实例接收用户发出的执行SQL查询的请求,确定用户对应SQL引擎实例,获取SQL引擎实例的连接信息;服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC请求,将RPC请求发到SQL引擎实例上;SQL引擎实例响应于RPC请求,控制执行RPC请求对应的SQL查询,将执行结果反馈给服务实例;服务实例将执行结果反馈给用户;其中,服务实例、SQL引擎实例及用户为对应关系。使得数据科学家这种用户,能够通过JDBC和SQL这种最普遍通用的技术来实现数据分析处理,进一步提升数据生产力。权利要。

3、求书2页 说明书6页 附图2页CN 116610760 A2023.08.18CN 116610760 A1.一种执行SQL查询的方法,其特征在于,基于Spark Kyuubi平台实现;所述方法包括:服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息;所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC请求,并将所述RPC请求发到所述SQL引擎实例上;所述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例;所述服务实例将所述执行结果反馈给所述用户;其中,所述服务。

4、实例、所述SQL引擎实例及所述用户为对应关系。2.根据权利要求1所述的方法,其特征在于,所述SQL引擎实例控制执行所述RPC请求对应的SQL查询,包括:所述SQL引擎实例创建所述RPC请求对应执行SQL查询的第一操作事务,并使用内部的会话实例执行SQL查询。3.根据权利要求2所述的方法,其特征在于,服务实例确定所述用户所属的SQL引擎实例之后,还包括:所述服务实例为所述用户发出的请求对应执行SQL查询的第二操作事务,作为相应操作的记录。4.根据权利要求3所述的方法,其特征在于,服务实例接收用户发出的执行SQL查询的请求之前,还包括:所述服务实例接收所述用户发出的连接请求,创建与所述用户间的会话。

5、,并查询是否存在所述用户对应的所述SQL引擎实例;如果存在,所述服务实例获取所述SQL引擎实例的连接信息,并基于所述连接信息向所述SQL引擎实例发出连接请求;所述SQL引擎实例响应于所述服务实例发出的连接请求,创建与所述服务实例之间的会话。5.根据权利要求4所述的方法,其特征在于,还包括:如果不存在所述用户对应的SQL引擎实例,所述服务实例启动一个SQL引擎实例,并由所述SQL引擎实例启动后注册自己的连接信息,供所述服务实例获取。6.根据权利要求5所述的方法,其特征在于,所述服务实例启动一个SQL引擎实例,包括:所述服务实例通过sparksubmit的方式启动一个SQL引擎实例。7.根据权利要。

6、求6所述的方法,其特征在于,所述服务实例接收所述用户发出的连接请求,包括:所述服务实例在所述用户通过beeline终端的方式连接所述服务实例时,获取所述用户发出的连接请求。8.一种执行SQL查询的装置,其特征在于,基于Spark Kyuubi平台实现;所述装置包括:接收模块,用于:服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息;构建模块,用于:所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC权利要求书1/2 页2CN 116610760 A2请求,并将所述RPC请求发到所述SQL引擎实例上;执行模块,用于:所。

7、述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例;反馈模块,用于:所述服务实例将所述执行结果反馈给所述用户;其中,所述服务实例、所述SQL引擎实例及所述用户为对应关系。9.一种执行SQL查询的设备,其特征在于,所述设备包括存储器及处理器,所述存储器上存储的程序在被所述处理器运行时可实现如权利要求1至7中任一项所述的执行SQL查询的方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储的程序被处理器执行时实现如权利要求1至7中任一项所述的执行SQL查询的方法的步骤。权利要求书2/2 页3CN 11661076。

8、0 A3一种执行SQL查询的方法、装置、设备及存储介质技术领域0001本发明涉及大数据分析技术领域,更具体地说,涉及一种执行SQL查询的方法、装置、设备及存储介质。背景技术0002随着大数据技术的发展,出现了各种不同的大数据分析处理方式,而对于一些数据科学家的用户而言,不同的方式带来的技术门槛越来越多。发明内容0003本发明的目的是提供一种执行SQL查询的方法、装置、设备及存储介质,使得数据科学家这种用户,能够通过JDBC和SQL这种最普遍通用的技术来实现数据分析处理,进一步提升数据生产力。0004为了实现上述目的,本发明提供如下技术方案:0005一种执行SQL查询的方法,基于Spark Ky。

9、uubi平台实现;所述方法包括:0006服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息;0007所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC请求,并将所述RPC请求发到所述SQL引擎实例上;0008所述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例;0009所述服务实例将所述执行结果反馈给所述用户;其中,所述服务实例、所述SQL引擎实例及所述用户为对应关系。0010优选的,所述SQL引擎实例控制执行所述RPC请求对应的SQL查询,包括:0011所。

10、述SQL引擎实例创建所述RPC请求对应执行SQL查询的第一操作事务,并使用内部的会话实例执行SQL查询。0012优选的,服务实例确定所述用户所属的SQL引擎实例之后,还包括:0013所述服务实例为所述用户发出的请求对应执行SQL查询的第二操作事务,作为相应操作的记录。0014优选的,服务实例接收用户发出的执行SQL查询的请求之前,还包括:0015所述服务实例接收所述用户发出的连接请求,创建与所述用户间的会话,并查询是否存在所述用户对应的所述SQL引擎实例;0016如果存在,所述服务实例获取所述SQL引擎实例的连接信息,并基于所述连接信息向所述SQL引擎实例发出连接请求;0017所述SQL引擎实。

11、例响应于所述服务实例发出的连接请求,创建与所述服务实例之间的会话。0018优选的,还包括:说明书1/6 页4CN 116610760 A40019如果不存在所述用户对应的SQL引擎实例,所述服务实例启动一个SQL引擎实例,并由所述SQL引擎实例启动后注册自己的连接信息,供所述服务实例获取。0020优选的,所述服务实例启动一个SQL引擎实例,包括:0021所述服务实例通过sparksubmit的方式启动一个SQL引擎实例。0022优选的,所述服务实例接收所述用户发出的连接请求,包括:0023所述服务实例在所述用户通过beeline终端的方式连接所述服务实例时,获取所述用户发出的连接请求。0024。

12、一种执行SQL查询的装置,基于Spark Kyuubi平台实现;所述装置包括:0025接收模块,用于:服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息;0026构建模块,用于:所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC请求,并将所述RPC请求发到所述SQL引擎实例上;0027执行模块,用于:所述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例;0028反馈模块,用于:所述服务实例将所述执行结果反馈给所述用户;其中,所述服务实例、所述SQL引擎实例及。

13、所述用户为对应关系。0029一种执行SQL查询的设备,所述设备包括存储器及处理器,所述存储器上存储的程序在被所述处理器运行时可实现如上任一项所述的执行SQL查询的方法的步骤。0030一种计算机可读存储介质,所述计算机可读存储介质上存储的程序被处理器执行时实现如上任一项所述的执行SQL查询的方法的步骤。0031本发明提供了一种执行SQL查询的方法、装置、设备及存储介质,基于Spark Kyuubi平台实现;该方法包括:服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息;所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RP。

14、C请求,并将所述RPC请求发到所述SQL引擎实例上;所述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例;所述服务实例将所述执行结果反馈给所述用户;其中,所述服务实例、所述SQL引擎实例及所述用户为对应关系。本方案基于RPC的通信方式实现服务实例和SQL引擎实例之间的通信,能够支持JDBC接口;同时是通过SQL的方式实现数据的分析处理;从而使得数据科学家这种用户,能够通过JDBC和SQL这种最普遍通用的技术来实现数据分析处理,进一步提升数据生产力。附图说明0032为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技。

15、术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。0033图1为本发明实施例提供的一种执行SQL查询的方法的流程图;0034图2为本发明实施例提供的一种执行SQL查询的方法所基于的Spark Kyuubi平台的架构示例图;说明书2/6 页5CN 116610760 A50035图3为本发明实施例提供的一种执行SQL查询的装置的结构示意图。具体实施方式0036下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发。

16、明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0037请参阅图1,其示出了本发明实施例提供的一种执行SQL查询的方法的流程图,基于Spark Kyuubi平台实现;具体可以包括:0038S11:服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息。0039本发明实施例提供的执行SQL查询的方法可以基于Spark Kyuubi平台实现,该Spark Kyuubi平台的架构可以如图2所示;其中,User Side表示用户层,Servic。

17、e Discovery Side表示服务发现层,Kyuubi Server Side表示服务层,Kyuubi Server Instance1表示服务实例1,NameSpace Size(Zookeeper)表示zookeeper命名空间,Kyuubi Engine Side表示引擎层。在实现SQL查询的方法前,系统管理员可以在大数据集群中启动Server实例和Zookeeper集群,Server实例(服务实例)是服务端的核心服务,提供所有服务端的功能,Zookeeper集群是做分布式协调服务的一款开源项目、可以实现、数据发布/订阅、负载均衡、命名服务、分布式同步、分布式锁和分布式队列等功能,。

18、例如:启动3个Server实例(即Server_instance1至Server_instance3)和1个Zookeeper集群,3个Server实例的连接信息分别为ip1:port1、ip2:port2和ip3:port3,Server实例的连接信息格式为IP+:+端口(port)号,用IP区分不同的主机,用端口区分同一主机中不同的服务,且以下均基于此进行具体说明。0040用户在需要实现数据分析处理时,可以向任一或者某指定的服务实例(可表示为Server_instance1,1为实例号)发出执行SQL查询的请求,通过执行SQL查询即为实现用户所需的数据分析处理;服务实例接收到用户发出的请求。

19、后,确定用户对应的SQL引擎实例(可表示为SparkSQLEngine_instance1,1为实例号),并获取SQL引擎实例的连接信息,如SQL引擎实例的IP、位置等。0041S12:所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC请求,并将所述RPC请求发到所述SQL引擎实例上。0042Server_instance1根据SparkSQLEngine_instance1的连接信息创建了一个RPC Client(RPC客户端),并且构建SQL执行的RPC请求,发到对应的SparkSQLEngine_instance1上;此时引擎层作为Server端,服务层作为Client。

20、端,Server端和Client端通过RPC请求连接,以通过RPC的方式进行通信。0043S13:所述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例。0044S14:所述服务实例将所述执行结果反馈给所述用户;其中,所述服务实例、所述SQL引擎实例及所述用户为对应关系。0045用户、接收该用户请求的服务实例及执行请求对应SQL操作的SQL引擎实例是具有说明书3/6 页6CN 116610760 A6对应关系的,尤其用户及SQL引擎实例预先设置好一一对应的关系的,服务实力则是在接收到用户请求时则开始具有与用户的对应关系。0046Spark。

21、SQLEngine_instance1接收到该RPC请求后,控制执行相应SQL操作,将执行结果返回给Server_instance1;Server_instance1接收到SparkSQLEngine_instance1的执行结果,返回给用户,完成一次SQL查询操作相应数据分析处理。0047本方案基于RPC的通信方式实现服务实例和SQL引擎实例之间的通信,能够支持JDBC接口;同时是通过SQL的方式实现数据的分析处理;从而使得数据科学家这种用户,能够通过JDBC和SQL这种最普遍通用的技术来实现数据分析处理,进一步提升数据生产力。0048本发明实施例提供的一种执行SQL查询的方法,所述SQL引。

22、擎实例控制执行所述RPC请求对应的SQL查询,可以包括:0049所述SQL引擎实例创建所述RPC请求对应执行SQL查询的第一操作事务,并使用内部的会话实例执行SQL查询。0050服务实例确定所述用户所属的SQL引擎实例之后,还可以包括:0051所述服务实例为所述用户发出的请求对应执行SQL查询的第二操作事务,作为相应操作的记录。0052Server_instance1接收到用户发出的执行SQL查询的请求,会先检查是否存在该用户所属的SparkSQLEngine实例;Server_instance1找到该用户所属的SparkSQLEngine_instance1,接着会为这次执行SQL的操作创建。

23、一个Operation(第二操作事务),以记录操作,为后续功能(如日志审计等)预留;Server_instance1根据连接信息创建了一个RPC Client,并且构建SQL执行的RPC请求,发到对应的SparkSQLEngine_instance1上;SparkSQLEngine_instance1接收到该请求后,会创建一个该SQL操作的Operation(第一操作事务),并且使用其内部的SparkSession实例来进行执行该Operation,最后将执行结果返回给Server_instance1。从而通过操作事务的创建,有效实现操作记录功能,便于后续需要时获取。0053本发明实施例提供的。

24、一种执行SQL查询的方法,服务实例接收用户发出的执行SQL查询的请求之前,还可以包括:0054所述服务实例接收所述用户发出的连接请求,创建与所述用户间的会话,并查询是否存在所述用户对应的所述SQL引擎实例;0055如果存在,所述服务实例获取所述SQL引擎实例的连接信息,并基于所述连接信息向所述SQL引擎实例发出连接请求;0056所述SQL引擎实例响应于所述服务实例发出的连接请求,创建与所述服务实例之间的会话。0057本发明实施例提供的一种执行SQL查询的方法,还可以包括:0058如果不存在所述用户对应的SQL引擎实例,所述服务实例启动一个SQL引擎实例,并由所述SQL引擎实例启动后注册自己的连。

25、接信息,供所述服务实例获取。0059所述服务实例启动一个SQL引擎实例,可以包括:0060所述服务实例通过sparksubmit的方式启动一个SQL引擎实例。0061Server_instance1接收到用户的连接请求,会为该用户创建session会话,同时会去Zookeeper上检查是否已经存在该用户所属的SparkSQLEngine实例(可以通过检查是否说明书4/6 页7CN 116610760 A7有该用户所属SparkSQLEngine实例的标识实现)。如果已经存在,则获取其连接信息向其发送创建session会话的连接请求;如果不存在,则通过sparksubmit的方式提交一个Spar。

26、k应用到资源管理的服务中,如Hadoop Yarn、K8S、Mesos,启动一个SparkSQLEngine实例,属于该用户的SparkSQLEngine_instance1实例在ip1节点上进行启动,并且监听port1端口,启动后,其向Zookeeper注册自己的连接信息/kyuubi_USER/username/instance1_ip1:port1,Server_instance1在SparkSQLEngine_instance1启动成功后,会获取其连接信息并向其发送创建session会话的连接请求。SparkSQLEngine_instance1收到Server_instance1创建。

27、session会话的连接请求,则创建一个新的session会话。通过上述方式,高效建立用户、服务实例及SQL引擎实例之间的通信关系,便于后续的数据分析处理。0062本发明实施例提供的一种执行SQL查询的方法,所述服务实例接收所述用户发出的连接请求,可以包括:0063所述服务实例在所述用户通过beeline终端的方式连接所述服务实例时,获取所述用户发出的连接请求。0064用户通过beeline终端的方式连接了其中一个Server实例:./beelineujdbc:hive2:/ip1:port1n username。从而能够快速实现连接请求的发送及后续会话的建立。0065在一种具体实现方式中,本。

28、发明实施例提供的一种执行SQL查询的方法具体可以包括以下步骤:00661、系统管理员在大数据集群中启动了3个Server实例和1个Zookeeper集群,其中3个Server实例的连接信息分别为ip1:port1、ip2:port2和ip3:port3;00672、用户通过beeline终端的方式连接了其中一个Server实例;./beelineujdbc:hive2:/ip1:port1n username;00683、Server_instance1接收到用户的连接请求,会为该用户创建session会话,同时会去Zookeeper上检查是否已经存在该用户所属的SparkSQLEngine实。

29、例;0069如果已经存在,则获取其连接信息并向其发送连接请求;0070如果不存在,则通过sparksubmit的方式提交一个Spark应用,启动一个SparkSQLEngine实例后获取连接信息并向其发送连接请求;0071其中,属于该用户的新的SparkSQLEngine_instance1实例在ip1节点上进行启动,并且监听的port1端口;启动后,其向Zookeeper注册自己的连接信息/kyuubi_USER/username/instance1_ip1:port1;00724、SparkSQLEngine_instance1收到Server_instance1创建session会话的连。

30、接请求,则创建一个新的session会话;00735、用户启动beeleine完成并成功创建会话,接着用户执行SQL查询;0:jdbc:hive2:/ip1:port1select*from teacher;00746、Server_instance1接收到该用户的执行SQL查询的请求,会先检查是否存在该用户所属的SparkSQLEngine实例;00757、Server_instance1找到该用户所属的SparkSQLEngine_instance1实例,接着会为这次执行SQL的操作创建一个Operation;00768、Server_instance1根据连接信息创建了一个RPC Cli。

31、ent,并且构建SQL执行的RPC请求,发到对应的SparkSQLEngine_instance1实例上;说明书5/6 页8CN 116610760 A800779、SparkSQLEngine_instance1接收到该请求后,会创建一个该SQL操作的Operation,并且使用其内部的SparkSession实例来进行执行,最后将执行结果返回给Server_instance1;007810、Server_instance1接收到SparkSQLEngine_instance1的执行结果,返回给用户,完成一次SQL查询操作。0079本发明实施例还提供了一种执行SQL查询的装置,基于Spark。

32、 Kyuubi平台实现;所述装置可以包括:0080接收模块11,用于:服务实例接收用户发出的执行SQL查询的请求,确定所述用户对应的SQL引擎实例,并获取所述SQL引擎实例的连接信息;0081构建模块12,用于:所述服务实例基于连接信息创建RPC客户端,构建执行SQL查询的RPC请求,并将所述RPC请求发到所述SQL引擎实例上;0082执行模块13,用于:所述SQL引擎实例响应于所述RPC请求,控制执行所述RPC请求对应的SQL查询,并将执行结果反馈给所述服务实例;0083反馈模块14,用于:所述服务实例将所述执行结果反馈给所述用户;其中,所述服务实例、所述SQL引擎实例及所述用户为对应关系。。

33、0084本发明实施例还提供了一种执行SQL查询的设备,所述设备包括存储器及处理器,所述存储器上存储的程序在被所述处理器运行时可实现如上任一项所述的执行SQL查询的方法的步骤。0085本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储的程序被处理器执行时实现如上任一项所述的执行SQL查询的方法的步骤。0086需要说明的是,本发明实施例提供的一种执行SQL查询的装置、设备及存储介质相关部分的说明请参见本发明实施例提供的一种执行SQL查询的方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。0087对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。说明书6/6 页9CN 116610760 A9图1说明书附图1/2 页10CN 116610760 A10图2图3说明书附图2/2 页11CN 116610760 A11。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1