本发明涉及数据库领域,具体而言,涉及一种sql数据处理方法、装置及后台服务器。
背景技术:
随着互联网技术的不断发展,结构化查询语言(structuredquerylanguage,简称sql)也被越来越多的应用在数据库管理中。sql是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库。
目前,用户要访问数据库时,需要登陆与该数据库所对应的客户端,并在该客户端所提供的输入界面中编辑需发送给该数据库的sql数据。然而,随着业务的复杂化,同一业务往往涉及到多个数据库。而针对不同数据库的sql数据,需要通过分别登陆不同数据库所对应的客户端进行编辑,无疑将增加测试成本和人力成本。此外,针对同一业务的sql数据不能一起编辑并发出,不利于开发调试。
技术实现要素:
有鉴于此,本发明的目的在于提供一种sql数据处理方法、装置及后台服务器。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供一种sql数据处理方法,应用于后台服务器,所述后台服务器与客户端通信连接,所述后台服务器同时登陆多个数据库;所述sql数据处理方法包括:
获取所述客户端提交的多条sql数据;其中,每条所述sql数据被赋予所指向的数据库的标识;
根据所述标识,识别每条所述sql数据所指向的所述数据库;
分别将各条所述sql数据发送给所对应的所述数据库,以获得对应的查询结果。
在可选的实施方式中,所述方法还包括:
从所述客户端获取多条所述sql数据所对应的依赖关系图谱;其中,所述依赖关系图谱用于表征不同所述sql数据之间的依赖关系;
所述分别将各条所述sql数据发送给所对应的所述数据库的步骤包括:依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库。
在可选的实施方式中,所述依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库的步骤包括:
依据所述依赖关系图谱所表征的不同所述sql数据之间的依赖关系,确定各条所述sql数据的发送顺序及发送触发条件;所述发送触发条件包括获取到所依赖的sql数据对应的查询结果;
按照所述发送顺序从所述sql数据中确定出待发送数据;
检验所述待发送数据所对应的所述发送触发条件是否满足;
如果满足,将所述待发送数据发送至所对应的所述数据库。
在可选的实施方式中,所述依赖关系图谱的生成方式包括:
接收用户通过所述客户端提供的输入最小单元输入的所述sql数据;其中,多个所述输入最小单元组成输入文本框;
接收用户在不同的目标最小单元之间设置的依赖关系指针,其中,所述目标最小单元为接收到所述sql数据的所述输入最小单元;
基于所述目标最小单元所接收到的sql数据及不同所述目标最小单元之间的依赖关系指针,生成所述依赖关系图谱。
在可选的实施方式中,在所述分别将各条所述sql数据发送给所对应的所述数据库之前,所述方法还包括:
对获取到的所述sql数据进行解析;
针对解析后得到的sql数据进行鉴权处理,以便将通过鉴权处理的sql数据发送至所对应的所述数据库。
第二方面,本发明实施例提供一种sql数据处理装置,应用于后台服务器,所述后台服务器与客户端通信连接,所述后台服务器同时登陆多个数据库;所述sql数据处理装置包括:
获取模块,用于获取所述客户端提交的多条sql数据;其中,每条所述sql数据被赋予所指向的数据库的标识;
识别模块,用于依据所述标识,识别每条所述sql数据所指向的所述数据库;
发送模块,用于分别将各条所述sql数据发送给所对应的所述数据库,以获得对应的查询结果。
在可选的实施方式中,所述装置还包括:
所述获取模块,还用于从所述客户端获取多条所述sql数据所对应的依赖关系图谱;其中,所述依赖关系图谱用于表征不同所述sql数据之间的依赖关系;
所述发送模块具体用于:依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库。
在可选的实施方式中,所述发送模块具体还用于:
依据所述依赖关系图谱所表征的不同所述sql数据之间的依赖关系,确定各条所述sql数据的发送顺序及发送触发条件;所述发送触发条件包括获取到所依赖的sql数据对应的查询结果;
按照所述发送顺序从所述sql数据中确定出待发送数据;
检验所述待发送数据所对应的所述发送触发条件是否满足;
如果满足,将所述待发送数据发送至所对应的所述数据库。
第三方面,本发明实施例提供一种后台服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的方法。
与现有技术相比,本发明实施例利用后台服务器同时登陆多个数据库,从而取得多个数据库的查询权限,如此,用户无需启用多类的客户端,只需开启与后台服务器对应的客户端即可将需发送给不同数据库的sql数据送达对应的数据库,一定程度上降低了sql的开发与调试成本。此外,本发明实施例所提供的sql数据处理方法通过获取用户通过客户端提交的多条sql数据,再识别每条sql数据所指向的数据库,并分别将各条sql数据发送给所对应的所述数据库,以获得对应的查询结果。如此,用户在编辑针对同一业务的sql数据时,用户可以在客户端上编辑完整的sql数据,无需分离地登陆不同的数据库所对应的客户端编辑不同部分,更加有利于用户的开发。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景示意图;
图2示出了本发明实施例提供的后台服务器的示意图;
图3示出了本发明实施例提供的sql数据处理方法的步骤流程图之一;
图4示出了本发明实施例提供的sql数据处理方法的步骤流程图之二;
图5示出了本发明实施例提供的依赖关系图谱的示例图;
图6示出了本发明实施例提供的sql数据处理方法的步骤流程图之三;
图7示出了本发明实施例提供的步骤s103的子步骤流程图;
图8示出了本发明实施例提供的sql数据处理方法的步骤流程图之四;
图9示出了本发明实施例提供的sql数据处理装置的示意图。
图标:100-后台服务器;200-客户终端;400-sql数据处理装置;401-获取模块;402-识别模块;403-发送模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
相关技术中,如果需要从不同的数据库查询数据,通常采用以下两种方式实现:
1、分别登陆不同数据库所提供的客户端,根据针对不同数据库的查询需求,在不同的数据库所提供的客户端内编辑sql数据,并发送给对应的数据库。该方式虽可以用于少量轻量级任务提交,但是对于大批量任务或者需发送给不同服务器的sql数据之间存在依赖时,分别在不同客户端内编辑不同部分的sql数据,没有做到sql任务统一管理,不能整体编辑,不方便整体核对。
2、将需要发送给不同数据库的sql数据都编写到脚本文件中,通过定时方式或者调度系统实现批量任务提交。该方式解决了使用客户端方式提交的缺点,但由于都是sql脚本方式提交,如果sql任务达到一定量级,管理成本相对较高,并且如果进行大批量有关联的任务开发,会涉及到很多关联脚本开发,不仅从开发、调试成本比较高,任务逻辑也不够清晰,不便于依赖关系的展示。脚本较多并且依赖关系复杂的情况下,如果后期业务变化频繁,会涉及到大量任务修改,势必产生新一轮的开发、调试时间,维护成本也相对较高。
为了解决上述问题,本发明实施例提供了一种sql数据处理方法、装置及后台服务器。
图1示出了本发明实施例提供的应用场景示意图。如图1所示,客户终端200与后台服务器100通信连接。上述后台服务器100与多个数据库通信连接。
请参照图2,图2是后台服务器100的方框示意图。所述后台服务器100包括存储器、处理器及通信模块。所述存储器、处理器以及通信模块各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器用于存储程序或者数据。所述存储器可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。
处理器用于读/写存储器中存储的数据或程序,并执行相应地功能。
通信模块用于通过所述网络建立所述后台服务器100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图2所示的结构仅为后台服务器100的结构示意图,所述后台服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
上述客户终端200可以是个人计算机、移动终端等。上述客户终端200上可以安装有与后台服务器100对接的客户端。用户在客户终端200上运行客户端时,可实现与后台服务器100的通信。上述客户端用于向用户呈现后台服务器100所提供的前端页面。该前端页面支持将可执行程序包(例如jar文件)或特定语法的sql注册到数据源作为统一光盘格式(universaldiscformat,简称udf)使用。其中,jar(javaarchive,java归档)文件是一种软件包文件格式,通常用于聚合大量的java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发java平台应用软件或库。
上述后台服务器100分别与多个数据库之间保持登陆状态,以取得多个数据库的访问权限。如此,后台服务器100可以根据实际需求,访问或者查询不同的数据库。
在一些实施例中,后台服务器100与数据库之间的连接方式可以根据数据库所支持的方式设置,比如,只支持jdbc协议的数据库,则使用jdbc方式进行数据源连接。支持jdbc协议的同时还支持thrift协议的数据库,优先使用thrift方式进行数据源连接。
需要说明的是,thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。thrift允许定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成远程过程调用协议(remoteprocedurecallprotocol,简称rpc)客户端和服务器通信的无缝跨编程语言。thrift通过代码生成工具将thrift文本生成服务器端和客户端代码(可以为不同语言),从而实现服务端和客户端跨语言的支持。用户在thirft文件中声明自己的服务,这些服务经过编译后会生成相应语言的代码文件,然后客户端调用服务,服务器端提服务便可以了。
jdbc是一种用于执行sql语句的java应用程序接口(applicationprograminterface,简称api),可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。java数据库连接体系结构是用于java应用程序连接数据库的标准方法。jdbc对java程序员而言是api,对实现与数据库连接的服务提供商而言是接口模型。作为api,jdbc为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。jdbc使用已有的sql标准并支持与其它数据库连接标准,如开放数据库互连(opendatabaseconnectivity,简称odbc)之间的桥接。jdbc实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是java应用程序与各种不同数据库之间进行对话的方法,而jdbc正是作为此种用途的机制。
请参考图3,本发明实施例提供了一种sql数据处理方法。如图3所示,上述sql数据处理方法可以包括以下步骤:
步骤s101,获取客户端提交的多条sql数据。
上述多条sql数据可以基于用户通过安装于客户终端200的客户端所编辑的数据生成。
在一些实施例中,上述sql数据不仅包括sql语句,还可以包括由用户选择的属性信息。
在一些实施例中,上述属性信息可以包括数据库的标识、动态调度参数等。上述数据库的标识用于指示sql语句最终需要发往的数据库。上述动态调度参数用于指示sql语句执行条件的变量参数,比如,可以是日期变量,用于指示执行时间等。
在一些实施例中,用户可以根据实际的业务需求,在上述客户端中编辑sql语句。可以理解地,随着业务的复杂化,同一业务也可能涉及多个数据库,或着多个存在关联的业务分别需要从多个不同的数据库查询数据。而本发明实施例中,可以通过同一个客户端接收用户所编辑的所有sql语句,不仅方便用户编写,也方便后期检测。
换个角度看,存在客户端接收到的sql语句需被发送到不同的数据源情况(比如,与同一业务相关的多条sql语句需要被发送给不同数据源,再比如,同一条sql语句需要分别发送给不同数据源)。故,在本发明实施例中,为了便于区分发往不同数据库的sql语句,可以为各条sql语句赋予其所对应的数据库的标识,以得到sql数据。
在一些实施例中,后台服务器100对接的数据库中存在多个同类型的数据源。故,后台服务器100可以将每个数据源的工作负荷状态反馈给客户端,以便由客户端进行显示,如此,也可以在用户选择sql语句所对应的数据库时,给出参考。
一些实施例中,客户端不仅可以展示数据库的工作负载状态,还可以对数据库中的数据表进行智能补全提示。并且支持sql语句格式化,是用户能够按照一定的格式规则对sql语句进行美观优化,从而提高用户的使用体验。
在一些实施例中,客户端向用户展示的界面中设置表征不同数据库的控件,用户可以通过点选用于表征数据库的控件的方式确定所编写的一条或者多条sql语句所对应的数据库,以使所编辑的一条或多条sql语句被赋予对应的数据库的标识,以便于生成一条或多条sql数据。
在一些实施例中,上述客户端中安装有数据集成sql编辑插件,该数据集成sql编辑插件可以用于编写需发送个各数据库的sql语句。
在一些实施例中,可以是接收到涉及业务的所有sql语句及所确定的各条sql语句所对应的数据库后,根据所有sql语句及各条sql语句所对应的数据库及其他属性信息,得到sql数据,并通过客户端统一提交后台服务器100。
在另一些实施例中,也可以是每次在编辑涉及业务的sql语句并确定其所指向的数据库之后,根据sql语句、该sql语句所对应的数据库及其他属性信息,得到sql数据,发送至后台服务器100。
在一些实施例中,为了确保信息的安全,可以将需发送给后台服务器100的sql数据进行加密,并通过java脚本对象简谱(javascriptobjectnotation,简称json)的方式发出。
于后台服务器100而言,与客户端建立通信后,便可接收该客户端通过json方式发出的已加密的sql数据。再对接收到的sql数据进行解码处理。
步骤s102,根据标识,识别每条sql数据所指向的数据库。
在一些实施例中,每条sql数据都被赋予与数据库相关的标识。如此,后台服务器100即可根据上述标识逐一区分所接收到的每条sql数据所指向的数据库。上述所指向的数据库可以理解为sql数据最终所需送达的数据库。
步骤s103,分别将各条sql数据发送给所对应的数据库,以获得对应的查询结果。
本发明实施例中,上述后台服务器100与多个数据库之间均保持登陆状态,相当于将多个数据库的接入通道集成到后台服务器100上,如此,无论是需要发送给任何数据库的sql数据,都可以通过同一个客户端发送给后台服务器100,并由后台服务器100分发到各个数据库。相较于相关技术中利用不同客户端连接访问不同数据库的方式而言,省去了不同数据库所对应的客户端安装、启动时间。不仅统一管理用户数据,而且有效降低用户开发、调试成本。
在一些实施例中,如图4所示,上述sql数据处理方法还可以包括:
步骤s201,从客户端获取多条sql数据所对应的依赖关系图谱。
上述依赖关系图谱用于表征不同sql数据之间的依赖关系。上述依赖关系中作为依赖者的sql数据的执行前提与作为被依赖者的sql数据存在关联。在一些实施例中,多条sql数据中可以存在具有依赖关系的至少两条sql数据,当然,在一些实施例中,也可以存在不具有依赖关系的至少两条sql数据。上述依赖关系图谱可以由sql数据和不同sql数据之间的依赖关系指针组成。
上述依赖关系图谱可以是用户编辑sql数据的过程中同步构建。
在一些实施例中,上述构建依赖关系图谱的方式包括:
(1)接收通过客户端提供的输入最小单元输入的sql数据。
上述客户端用于向用户呈现后台服务器100所对应的前端页面(也即,数据开发页面),用户可以在数据开发页面调取用于编辑sql数据的输入文本框。上述输入文本框由多个输入最小单元组成。每个上述输入最小单元可以被写入一条sql数据。
在一些实施例中,上述客户端获取创建于最小输入单元的sql数据,如此,每条sql数据便与一个最小输入单元建立了联系。此外,客户端还可以实时地将接收到的sql数据显示于输入文本框。
具体地,客户端可以在最小输入单元获取到用户编辑的sql语句之后,如果接收到用户选择的属性信息,则基于sql语句和用户赋予该最小输入单元中sql语句的属性信息,创建sql数据。
(2)接收在不同的目标最小单元之间设置的依赖关系指针。
上述目标最小单元为接收到sql数据的输入最小单元。在一些实施例中,位于同一依赖关系指针两侧的目标最小单元之间存在依赖关系。依赖关系指针两侧的目标最小单元可以是一个或多个,也即,可以响应用户操作,在两条sql数据之间建立依赖关系,也可以建立一条sql数据与多条sql数据之间的依赖关系,还可以建立由多条sql数据组成的集合与另一个包含多条sql数据的集合之间的依赖关系。
(3)基于目标最小单元所接收到的sql数据及不同目标最小单元之间的依赖关系指针,生成依赖关系图谱。
例如图5所示的依赖关系图谱。图5中a代表一条或者多条sql数据,b也代表一条或者多条sql数据、c也代表一条或者多条sql数据、d也代表一条或者多条sql数据。a和b之间存在依赖关系,b和c之间存在依赖关系,d和a、b、c之间均不存在依赖关系。
在图4的基础上,如图6所示,上述步骤s103可以包括:依据依赖关系图谱,依次将各条所述sql数据发送给所对应的数据库。
在一些实施例中,如图7所示,上述步骤s103可以包括以下子步骤:
子步骤s103-1,依据依赖关系图谱所表征的不同sql数据之间的依赖关系,确定各条sql数据的发送顺序及发送触发条件。
上述发送触发条件包括获取到作为被依赖者的sql数据所对应的查询结果。比如,sql数据1依赖于sql数据2,sql数据2相较于sql数据1而言,是被依赖者,那么sql数据1的发送触发条件可以是得到sql数据2的查询结果。
在一些实施例中,上述发送顺序可以是将作为被依赖者的sql数据排列于作为依赖者的sql数据之前。不存在依赖关系的sql数据之间不进行发送先后顺序的限制。
子步骤s103-2,按照发送顺序从sql数据中确定出待发送数据。
比如,首先将不存在依赖者的sql数据发送到对应的数据库。然后,依次将排列于其后的sql数据确定为待发送数据。
子步骤s103-3,检验待发送数据所对应的发送触发条件是否满足。
在一些实施例中,若获取到待发送数据所依赖的sql数据的查询结果为有效结果,那么判定发送触发条件满足。若获取到待发送数据所依赖的sql数据的查询结果为无效结果(包括无查询权限)那么判定发送触发条件不满足。
子步骤s103-4,如果满足,将待发送数据发送至所对应的数据库。
在一些实施例中,如图8所示,上述sql数据处理方法还可以包括:
步骤s301,对获取到的sql数据进行解析。
比如,对所获得的sql数据进行解码,并提取其对应的sql语句、指向数据库的标识等。
步骤s302,针对解析后得到的sql数据进行鉴权处理,以便将通过鉴权处理的sql数据发送至所对应的数据库。
sql语句会提供给不同层次用户使用,开放的使用接口包括第三方工具提交代码的方式,如果不加权限控制,则用户可以在代码中使用sql直接读取库表数据,因此对sql语句进行鉴权是十分重要的。
在一些实施例中,上述未通过鉴权处理的sql数据所对应的查询结果为无效。
此外,还可以对sql数据进行元数据处理,元数据(metadata)又称中介数据、中继数据,是一种描述数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。获取sql语句的元数据相当于获取了一个电子式目录,其中描述并收藏了数据的内容或特色,进而达成协助数据检索的目的。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种sql数据处理装置400的实现方式,可选地,该sql数据处理装置400可以采用上述图2所示的后台服务器100的器件结构。进一步地,请参阅图9,图9为本发明实施例提供的一种sql数据处理装置400的功能模块图。需要说明的是,本实施例所提供的sql数据处理装置400,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该sql数据处理装置400包括:获取模块401、识别模块402和发送模块403。
获取模块401,用于获取所述客户端提交的多条sql数据;其中,每条所述sql数据被赋予所指向的数据库的标识;
识别模块402,用于依据所述标识,识别每条所述sql数据所指向的所述数据库;
发送模块403,用于分别将各条所述sql数据发送给所对应的所述数据库,以获得对应的查询结果。
在一些实施例中,上述装置还包括:
所述获取模块401,还用于从所述客户端获取多条所述sql数据所对应的依赖关系图谱;其中,所述依赖关系图谱用于表征不同所述sql数据之间的依赖关系。
所述发送模块403具体用于:依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库。
在一些实施例中,上述发送模块403具体还用于:
依据所述依赖关系图谱所表征的不同所述sql数据之间的依赖关系,确定各条所述sql数据的发送顺序及发送触发条件;所述发送触发条件包括获取到所依赖的sql数据对应的查询结果;
按照所述发送顺序从所述sql数据中确定出待发送数据;
检验所述待发送数据所对应的所述发送触发条件是否满足;
如果满足,将所述待发送数据发送至所对应的所述数据库。
可选地,上述模块可以软件或固件(firmware)的形式存储于图2所示的存储器中或固化于该后台服务器100的操作系统(operatingsystem,os)中,并可由图2中的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。
综上所述,本发明实施例提供了一种sql数据处理方法、装置及后台服务器。其中,上述sql数据处理方法通过获取客户端提交的多条sql数据;其中,每条sql数据被赋予所指向的数据库的标识。根据标识,识别每条sql数据所指向的数据库。分别将各条sql数据发送给所对应的所述数据库,以获得对应的查询结果。如此,用户在编辑针对同一业务的sql数据时,用户可以在客户端上编辑完整的sql数据,无需分离地登陆不同的数据库所对应的客户端编辑不同部分,更加有利于用户的开发。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种sql数据处理方法,其特征在于,应用于后台服务器,所述后台服务器与客户端通信连接,所述后台服务器同时登陆多个数据库;所述sql数据处理方法包括:
获取所述客户端提交的多条sql数据;其中,每条所述sql数据被赋予所指向的数据库的标识;
根据所述标识,识别每条所述sql数据所指向的所述数据库;
分别将各条所述sql数据发送给所对应的所述数据库,以获得对应的查询结果。
2.根据权利要求1所述的sql数据处理方法,其特征在于,所述方法还包括:
从所述客户端获取多条所述sql数据所对应的依赖关系图谱;其中,所述依赖关系图谱用于表征不同所述sql数据之间的依赖关系;
所述分别将各条所述sql数据发送给所对应的所述数据库的步骤包括:依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库。
3.根据权利要求2所述的sql数据处理方法,其特征在于,所述依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库的步骤包括:
依据所述依赖关系图谱所表征的不同所述sql数据之间的依赖关系,确定各条所述sql数据的发送顺序及发送触发条件;所述发送触发条件包括获取到所依赖的sql数据对应的查询结果;
按照所述发送顺序从所述sql数据中确定出待发送数据;
检验所述待发送数据所对应的所述发送触发条件是否满足;
如果满足,将所述待发送数据发送至所对应的所述数据库。
4.根据权利要求2所述的sql数据处理方法,其特征在于,所述依赖关系图谱的生成方式包括:
接收通过所述客户端提供的输入最小单元输入的所述sql数据;其中,多个所述输入最小单元组成输入文本框;
接收在不同的目标最小单元之间设置的依赖关系指针,其中,所述目标最小单元为接收到所述sql数据的所述输入最小单元;
基于所述目标最小单元所接收到的sql数据及不同所述目标最小单元之间的依赖关系指针,生成所述依赖关系图谱。
5.根据权利要求1所述的sql数据处理方法,其特征在于,在所述分别将各条所述sql数据发送给所对应的所述数据库之前,所述方法还包括:
对获取到的所述sql数据进行解析;
针对解析后得到的sql数据进行鉴权处理,以便将通过鉴权处理的sql数据发送至所对应的所述数据库。
6.一种sql数据处理装置,其特征在于,应用于后台服务器,所述后台服务器与客户端通信连接,所述后台服务器同时登陆多个数据库,并取得多个所述数据库的查询权限;所述sql数据处理装置包括:
获取模块,用于获取所述客户端提交的多条sql数据;其中,每条所述sql数据被赋予所指向的数据库的标识;
识别模块,用于依据所述标识,识别每条所述sql数据所指向的所述数据库;
发送模块,用于分别将各条所述sql数据发送给所对应的所述数据库,以获得对应的查询结果。
7.根据权利要求6所述的sql数据处理装置,其特征在于,所述装置还包括:
所述获取模块,还用于从所述客户端获取多条所述sql数据所对应的依赖关系图谱;其中,所述依赖关系图谱用于表征不同所述sql数据之间的依赖关系;
所述发送模块具体用于:依据所述依赖关系图谱,依次将各条所述sql数据发送给所对应的所述数据库。
8.根据权利要求7所述的sql数据处理装置,其特征在于,所述发送模块具体还用于:
依据所述依赖关系图谱所表征的不同所述sql数据之间的依赖关系,确定各条所述sql数据的发送顺序及发送触发条件;所述发送触发条件包括获取到所依赖的sql数据对应的查询结果;
按照所述发送顺序从所述sql数据中确定出待发送数据;
检验所述待发送数据所对应的所述发送触发条件是否满足;
如果满足,将所述待发送数据发送至所对应的所述数据库。
9.一种后台服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-5任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
技术总结