一种跨库跨表查询方法、设备、服务器及存储介质与流程

专利2022-06-29  91

本申请涉及互联网通信
技术领域
:,尤其涉及一种跨库跨表查询方法、设备、服务器及存储介质。
背景技术
::数据库广泛用于许多应用领域中的数据存储。例如商业智能(businessintelligence,bi),商业智能又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。现有技术中,一些商业智能平台,例如metabase(是一种开源的bi平台),在查询库表时,只能关联查询同一个数据库表;具体的,在应对数据查询时,只能查询展示一个表的数据,无法跨表查询得到结果。即使关联表查询时,也只能关联本数据库中的表,无法实现跨库。因此,需要提供有效的方案,以实现跨库跨表查询。技术实现要素:本申请提供了一种跨库跨表查询方法、设备、服务器及存储介质,可以实现跨库跨表查询,大大降低数据库查询访问的处理效率。一方面,本申请提供了一种跨库跨表查询方法,应用于服务器,所述服务器预先配置有多种类型的数据库,所述方法包括:接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。另一方面提供了一种跨库跨表查询设备,所述设备预先配置有多种类型的数据库,所述设备包括:跨库跨表查询请求接收模块,用于接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;解析处理模块,用于对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;结果集获取模块,用于调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;整合处理模块,用于根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。另一方面提供了一种跨库跨表查询服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的跨库跨表查询方法。另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的跨库跨表查询方法。本申请提供的跨库跨表查询方法、设备、服务器及存储介质,具有如下技术效果:本申请在为服务器配置数据库时,设置了表征数据库多种权限的数据库许可标识;在跨库跨表查询时,将跨库跨表查询语句解析成单库单表的查询语句,并通过预先封装好结果集查询方法,无需手动选择数据库,再选择数据表,只需要在方法中传入相应的数据,并携带上数据库许可标识,就可以快速的从多种类型的数据库获取数据,实现对数据库的查询访问,大大降低数据库查询访问的处理效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本申请实施例提供的一种应用环境的示意图;图2是本申请实施例提供的一种在服务器中配置多种类型的数据库的流程示意图;图3是本申请实施例提供的一种跨库跨表查询方法的流程示意图;图4是本申请实施例提供的一种服务器对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句的流程示意图;图5是本申请实施例提供的一种服务器调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集的流程示意图;图6是本申请实施例提供的另一种跨库跨表查询方法的流程示意图;图7是本申请实施例提供的另一种跨库跨表查询方法的流程示意图;图8是本申请实施例提供的实时的入出数据包量比的曲线示意图;图9是本申请实施例提供的一种跨库跨表查询方法的服务器的硬件结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,如图1所示,该应用环境至少包括客户端01、服务器02和多种类型的数据库03。本说明书实施例中,所述客户端01可以为智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、智能可穿戴设备等类型的实体设备;也可以包括运行于实体设备中的软体,例如应用程序等。本说明书实施例中实体设备上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows等。本说明书实施例中,所述服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。本说明书实施例中,多种类型的数据库03可以包括mysql(关系型数据库管理系统)、mongodb(基于分布式文件存储的数据库)、h2(java编写的关系型数据库)、sqlserver(一种关系型数据库管理系统)等数据库中的至少两种。本说明书实施例中,上述客户端01、服务器02以及数据库03可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。本说明书实施例中,所述服务器02可以预先配置有多种类型的数据库03,具体的,如图2所示,在服务器中配置多种类型的数据库可以采用如下方法:s201:向所述多种类型的数据库分别发送连接建立请求;s203:当所述多种类型的数据库的权限认证通过时,建立与所述多种类型的数据库的连接;s205:设置数据库许可标识;s207:基于所述数据库许可标识与所述多种类型的数据库进行数据权限配置。在实际应用中,数据库的权限认证处理时,需要先获取权限表,一般的,数据库的权限表可以包括多个,例如mysql数据库,权限表可以包括user、db、host。其中,user权限表记录允许连接到数据库的服务器账号信息,里面的权限是全局性;db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库;host表中存储了某个主机对数据库的操作权限。本说明书实施例,在建立服务器与数据库的连接时,可以结合user权限表进行身份权限认证,并在通过身份权限认证后,进行数据权限配置。具体的,在实际应用中,数据库的操作权限可以包括多种类型,相应的,在进行数据库权限配置时,需要对数据库的多种操作权限进行配置,例如mysql数据库的操作权限类型可以包括usage(连接登陆权限,建立一个用户,就会自动授予其usage权限)、select(选择,select的权限,可以用来selecttable)、create(创建,create权限可以用来createtable)、delete(删除,delete权限可以用来删除表中的记录)等多种操作权限。本说明书实施例中,可以在建立服务器与数据库间的连接后,结合设置的数据库许可标识,为服务器进行数据库的各种权限配置;具体的,为了避免后续从数据库获取数据时,需要进行多种操作权限认证,在建立服务器与每一数据库的连接之后,可以在服务器侧分别建立数据库许可标识与每一数据库的操作权限间的映射关系;相应的,该数据库许可标识可以与多种类型的数据库的操作权限具有相应的的映射关系;后续该服务器需要从多种类型的数据库中的任一数据库查询访问数据时,基于该数据库许可标识即可直接对数据库进行各种操作,无需数据库对各种操作权限进行一一认证。本说明书实施例中,在为服务器配置数据库时,进行了数据库的多种权限配置,保证后续可以直接数据库许可标识实现对数据库的查询访问,大大降低数据库查询访问的处理效率。基于上述配置有多种类型的服务器,以下介绍本申请一种跨库跨表查询方法,图3是本申请实施例提供的一种跨库跨表查询方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,所述方法可以包括:s301:客户端向服务器发送跨库跨表查询请求。本说明书实施例中,所述跨库跨表查询请求可以携带有跨库跨表查询语句和查询需求信息;在一个具体的实施例中,所述跨库跨表查询语句可以为跨库跨表sql(structuredquerylanguage,结构化查询语言)语句。具体的,查询需求信息可以表征具体的查询需求;例如,跨库跨表查询语句对应的多个库表中的数据最终需要取哪些字段等。s303:服务器对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句。本说明书实施例中,如图4所示,服务器对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句可以包括:s3031:服务器利用过语法解析器对所述跨库跨表查询语句进行语法分析,得到生成查询语句解析树。具体的,语法解析器在对跨库跨表查询语句进行语法分析,可以将跨库跨表查询语句从左到右一个字符、一个字符地输入,然后,根据构词规则识别单词,并进行语法解析,判断输入的跨库跨表查询语是否满足数据库的查询语法规则;若满足,基于识别出的单词生成相应的查询语句解析树。若不满足,可以进行报错提醒。s3033:服务器利用预处理器对所述查询语句解析树进行预处理,生成新的查询语句解析树。在实际应用中,为了保证后续查询的准确性,预处理器可以对查询语句解析树中的列名、表名等进行验证,即验证数据库的表中是否有需要查询的表,需要查询的表中是否有需要查询的列等,相应的,如果数据库的表中没有有需要查询的表,或需要查询的表中没有需要查询的列,可以进行报错提醒;反之,可以将该查询语句解析树转递给查询优化器。相应的,本说明书实施例中,新的查询语句解析树可以为与输入预处理器的查询语句解析树一致,但通过预处理器的预处理后的查询语句解析树。s3035:服务器利用查询优化器对所述新的查询语句解析树进行查询优化,得到多个单库单表的查询语句。在一些实施例中,在进行语法解析得到查询语法解析树,或者,预处理生成新的查询语句解析树之后,可以直接将该查询语法解析树或新的查询语句解析树拆分成多个单库单表的查询语句。在一些实施例中,为了保证查询时的执行效率,在进行语法解析得到查询语法解析树,或者,预处理生成新的查询语句解析树之后,可以由优化器对该查询语法解析树或新的查询语句解析树进行查询优化,例如先查table1再查table2,还是先查table2再查table1;相应的,通过优化器处理后,就可以确定按照怎样的执行顺序可以实现更高效率的查询,相应的,就可以得到一个个有序的执行计划,即多个有序的单库单表的查询语句。s305:服务器调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集。本说明书实施例中,可以预先封装好结果集查询方法,具体的,可以预先定义结果集查询方法进行结果集查询时需要传入的各种数据;具体的实施例中,所述结果集查询方法可以包括:数据库标识查询方法、键值对封装方法、查询创建方法和结果集调用方法。本说明书实施例中,数据库标识查询方法封装有数据库标识查询逻辑方法。本说明书实施例中,键值对封装方法封装有将键值对和键值对相关数据进行封装成对象的方法。本说明书实施例中,查询创建方法封装有创建一个查询的逻辑方法,具体的,可以将结果集调用方法所需的数据进行传入。本说明书实施例中,结果集调用方法封装有基于结果集调用所需的各种数据进行结果集调用的逻辑方法。本说明书实施例中,所述数据库许可标识为配置所述多种类型的数据库时确定的。在一个具体的实施例中,如图5所示,所述服务器调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集包括:s3051:服务器调用数据库标识查询方法,基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识。本说明书实施例中,所述基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识可以包括:1)确定每一单库单表的查询语句中的数据库名称。2)获取所述多种类型的数据库对应的数据库信息集合。3)基于所述数据库名称从所述数据库信息集合中确定与所述数据库名称相匹配的数据库的数据库标识。4)将所述相匹配的数据库的数据库标识作为所述目标数据库的数据库标识。本说明书实施例中,在为服务器配置多种类型的数据库时,可以获取这些数据库的数据库名称、数据库标识等信息,相应的,基于这些数据库的据库名称、数据库标识等信息可以创建一个数据库信息集合,以便后续使用。s3053:服务器调用键值对封装方法,基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象。本说明书实施例中,所述基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象包括:1)为每一单库单表的查询语句中的每一键值对创建键值对的空对象,所述键值对的空对象包括所述键值对的关联信息;2)获取所述多种类型的数据库对应的键值对信息集合;3)遍历所述键值对信息集合,确定所述每一单库单表的查询语句中每一键值对的数据类型;4)将每个键值对和所述键值对的数据类型存入所述键值对的空对象,得到每一单库单表的查询语句对应的键值对对象。本说明书实施例中,键值对的关联信息可以包括键值对的类型,键值对的展示名称,键值对的标识等。本说明书实施例中,在为服务器配置多种类型的数据库时,可以获取这些数据库的键值对信息,相应的,基于这些数据库的键值对信息可以创建键值对信息集合,以便后续使用。具体的,键值对信息可以包括键值对的标识,键值对的数据类型;具体的,由于键值对往往可以以一种或多种数据类型进行表述,本说明书实施例中,在遍历键值对信息集合时,可以将遍历到的键值对的第一个数据类型作为该键值对的数据类型。s3055:服务器调用查询创建方法,将所述键值对对象、所述数据库标识、所述每一单库单表的查询语句和所述数据库许可标识传入所述结果集调用方法。s3057:服务器运行所述结果集调用方法,从所述每一单库单表的查询语句对应目标数据库调用对应的结果集。本说明书实施例中,在通过查询创建方法,将所述键值对对象、所述数据库标识、所述每一单库单表的查询语句和所述数据库许可标识传入所述结果集调用方法后,可以运行该结果集调用方法,从每一单库单表的查询语句对应目标数据库调用对应的结果集。具体的,可以通过结合数据库标识确定需要查询的数据库,然后,建立与该数据库之间的连接,数据库在获取到数据库许可标识,就可以允许服务器结合单库单表的查询语句和键值对对象来获取相应的结果集;本说明书实施例中,通过预先封装好结果集查询方法,无需手动选择数据库,再选择数据表,只需要在方法中传入所需数据库标识、要查询的键值对对象和单库单表的查询语句,就可以快速的得到想要的数据。s307:服务器根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。本说明书实施例中,可以预先进行是否启用数据缓存的设置,相应的,若启用数据缓存,在得到每一单库单表查询语句对应的结果集之后,将每一单库单表查询语句对应的结果集存储到缓存,相应的,在根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集时,可以从缓存中读取多个单库单表的结果集;若不启用数据缓存,可以直接根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集;本说明书实施例中,在从多种类型的数据库查询得到结果集之后,可以根据不同的查询需求信息从多个单库单表的结果集中选取需要的结果集;在一个具体的实施例中,为了避免多个结果集中的数据重复的问题,可以对所选取的结果集进行笛卡尔积运算得到一个数据集合,并将这个数据集合进行相同列等值筛选的整合。在另一些实施例中,如图6所示,所述方法还可以包括:s309:服务器将所述目标结果集返回给所述客户端。s311:客户端基于预设渲染插件将所述目标结果集渲染至目标页面。本说明书实施例中,所述预设渲染插件可以为预先由用户根据需求的渲染样式配置。由以上本说明书实施例提供的技术方案,本说明书在为服务器配置数据库时,进行了数据库的多种权限配置,并设置表征数据库多种权限的数据库许可标识,在跨库跨表查询时,将跨库跨表查询语句解析成单库单表的查询语句,并通过预先封装好结果集查询方法,无需手动选择数据库,再选择数据表,只需要在方法中传入相应的数据,并携带上数据库许可标识,就可以快速的从多种类型的数据库获取数据,实现对数据库的查询访问,大大降低数据库查询访问的处理效率。以下以上述服务器为执行主体,介绍本申请一种跨库跨表查询方法的实施例,如图7所示,所述方法可以包括:s701:接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;s703:对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;s705:调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;s707:根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。在一些实施例中,所述结果集查询方法包括:数据库标识查询方法、键值对封装方法、查询创建方法和结果集调用方法;相应的,所述调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集包括:调用数据库标识查询方法,基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识;调用键值对封装方法,基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象;调用查询创建方法,将所述键值对对象、所述数据库标识、所述每一单库单表的查询语句和所述数据库许可标识传入所述结果集调用方法;运行所述结果集调用方法,从所述每一单库单表的查询语句对应目标数据库调用对应的结果集。在一些实施例中,所述基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识包括:确定每一单库单表的查询语句中的数据库名称;获取所述多种类型的数据库对应的数据库信息集合;基于所述数据库名称从所述数据库信息集合中确定与所述数据库名称相匹配的数据库的数据库标识;将所述相匹配的数据库的数据库标识作为所述目标数据库的数据库标识。在一些实施例中,所述基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象包括:为每一单库单表的查询语句中的每一键值对创建键值对的空对象,所述键值对的空对象包括所述键值对的关联信息;获取所述多种类型的数据库对应的键值对信息集合;遍历所述键值对信息集合,确定所述每一单库单表的查询语句中每一键值对的数据类型;将每个键值对和所述键值对的数据类型存入所述键值对的空对象,得到每一单库单表的查询语句对应的键值对对象。在一些实施例中,所述对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句包括:利用过语法解析器对所述跨库跨表查询语句进行语法分析,得到生成查询语句解析树;利用预处理器对所述查询语句解析树进行预处理,生成新的查询语句解析树;利用查询优化器对所述新的查询语句解析树进行查询优化,得到多个单库单表的查询语句。在一些实施例中,所述方法还包括:返回所述目标结果集,以基于预设渲染插件将所述目标结果集渲染至目标页面。本申请实施例还提供了一种跨库跨表查询设备,如图8所示,所述设备预先配置有多种类型的数据库,所述设备包括:跨库跨表查询请求接收模块810,可以用于接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;解析处理模块820,可以用于对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;结果集获取模块830,可以用于调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;整合处理模块840,可以用于根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。在一些实施例中,所述设备还包括:连接建立请求发送模块,用于在接收跨库跨表查询请求之前,向所述多种类型的数据库分别发送连接建立请求;连接建立模块,用于当所述多种类型的数据库的权限认证通过时,建立与所述多种类型的数据库的连接;数据库许可标识设置模块,用于设置所述数据库许可标识;数据权限配置模块,用于基于所述数据库许可标识与所述多种类型的数据库进行数据权限配置。在一些实施例中,所述结果集查询方法可以包括:数据库标识查询方法、键值对封装方法、查询创建方法和结果集调用方法;相应的,所述结果集获取模块包括:数据库标识查询单元,用于调用数据库标识查询方法,基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识;键值对对象创建单元,用于调用键值对封装方法,基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象;数据传入单元,用于调用查询创建方法,将所述键值对对象、所述数据库标识、所述每一单库单表的查询语句和所述数据库许可标识传入所述结果集调用方法;结果集调用单元,用于运行所述结果集调用方法,从所述每一单库单表的查询语句对应目标数据库调用对应的结果集。在一些实施例中,所述数据库标识查询单元包括:数据库名称确定单元,用于确定每一单库单表的查询语句中的数据库名称;数据库信息集合获取单元,用于获取所述多种类型的数据库对应的数据库信息集合;第一数据库标识确定单元,用于基于所述数据库名称从所述数据库信息集合中确定与所述数据库名称相匹配的数据库的数据库标识;第二数据库标识确定单元,用于将所述相匹配的数据库的数据库标识作为所述目标数据库的数据库标识。在一些实施例中,所述键值对对象创建单元包括:空对象创建单元,用于为每一单库单表的查询语句中的每一键值对创建键值对的空对象,所述键值对的空对象包括所述键值对的关联信息;键值对信息集合获取单元,用于获取所述多种类型的数据库对应的键值对信息集合;数据类型确定单元,用于遍历所述键值对信息集合,确定所述每一单库单表的查询语句中每一键值对的数据类型;键值对对象确定单元,用于将每个键值对和所述键值对的数据类型存入所述键值对的空对象,得到每一单库单表的查询语句对应的键值对对象。在一些实施例中,所述解析处理模块包括:语法分析单元,用于利用过语法解析器对所述跨库跨表查询语句进行语法分析,得到生成查询语句解析树;预处理单元,用于利用预处理器对所述查询语句解析树进行预处理,生成新的查询语句解析树;查询优化单元,用于利用查询优化器对所述新的查询语句解析树进行查询优化,得到多个单库单表的查询语句。在一些实施例中,所述设备还包括:目标结果集返回模块,用于返回所述目标结果集,以基于预设渲染插件将所述目标结果集渲染至目标页面。所述的设备实施例中的设备与方法实施例基于同样的申请构思。本申请实施例提供了一种跨库跨表查询服务器,该跨库跨表查询服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的跨库跨表查询方法。存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算设备中执行。以运行在服务器上为例,图9是本申请实施例提供的一种跨库跨表查询方法的服务器的硬件结构框图。如图9所示,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)910(处理器910可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理设备)、用于存储数据的存储器930,一个或一个以上存储应用程序923或数据922的存储介质920(例如一个或一个以上海量存储设备)。其中,存储器930和存储介质920可以是短暂存储或持久存储。存储在存储介质920的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器910可以设置为与存储介质920通信,在服务器900上执行存储介质920中的一系列指令操作。服务器900还可以包括一个或一个以上电源960,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口940,和/或,一个或一个以上操作系统921,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。输入输出接口940可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器900的通信供应商提供的无线网络。在一个实例中,输入输出接口940包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口940可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,服务器900还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。本申请的实施例还提供了一种存储介质,所述存储介质可设置于设备之中以保存用于实现方法实施例中一种应用推广的实现方法相关的至少一条指令、或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的跨库跨表查询方法。可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。由上述本申请提供的跨库跨表查询方法、设备、服务器或存储介质的实施例可见,本申请在为服务器配置数据库时,进行了数据库的多种权限配置,并设置表征数据库多种权限的数据库许可标识,在跨库跨表查询时,将跨库跨表查询语句解析成单库单表的查询语句,并通过预先封装好结果集查询方法,无需手动选择数据库,再选择数据表,只需要在方法中传入相应的数据,并携带上数据库许可标识,就可以快速的从多种类型的数据库获取数据,实现对数据库的查询访问,大大降低数据库查询访问的处理效率。需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种跨库跨表查询方法,其特征在于,应用于服务器,所述服务器预先配置有多种类型的数据库,所述方法包括:

接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;

对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;

调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;

根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。

2.根据权利要求1所述的方法,其特征在于,在接收跨库跨表查询请求之前,所述方法还包括:

向所述多种类型的数据库分别发送连接建立请求;

当所述多种类型的数据库的权限认证通过时,建立与所述多种类型的数据库的连接;

设置所述数据库许可标识;

基于所述数据库许可标识与所述多种类型的数据库进行数据权限配置。

3.根据权利要求1所述的方法,其特征在于,所述结果集查询方法包括:数据库标识查询方法、键值对封装方法、查询创建方法和结果集调用方法;

相应的,所述调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集包括:

调用数据库标识查询方法,基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识;

调用键值对封装方法,基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象;

调用查询创建方法,将所述键值对对象、所述数据库标识、所述每一单库单表的查询语句和所述数据库许可标识传入所述结果集调用方法;

运行所述结果集调用方法,从所述每一单库单表的查询语句对应目标数据库调用对应的结果集。

4.根据权利要求3所述的方法,其特征在于,所述基于所述数据库查询方法确定每一单库单表的查询语句对应目标数据库的数据库标识包括:

确定每一单库单表的查询语句中的数据库名称;

获取所述多种类型的数据库对应的数据库信息集合;

基于所述数据库名称从所述数据库信息集合中确定与所述数据库名称相匹配的数据库的数据库标识;

将所述相匹配的数据库的数据库标识作为所述目标数据库的数据库标识。

5.根据权利要求3所述的方法,其特征在于,所述基于所述键值对封装方法确定每一单库单表的查询语句对应的键值对对象包括:

为每一单库单表的查询语句中的每一键值对创建键值对的空对象,所述键值对的空对象包括所述键值对的关联信息;

获取所述多种类型的数据库对应的键值对信息集合;

遍历所述键值对信息集合,确定所述每一单库单表的查询语句中每一键值对的数据类型;

将每个键值对和所述键值对的数据类型存入所述键值对的空对象,得到每一单库单表的查询语句对应的键值对对象。

6.根据权利要求1所述的方法,其特征在于,所述对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句包括:

利用过语法解析器对所述跨库跨表查询语句进行语法分析,得到生成查询语句解析树;

利用预处理器对所述查询语句解析树进行预处理,生成新的查询语句解析树;

利用查询优化器对所述新的查询语句解析树进行查询优化,得到多个单库单表的查询语句。

7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:

返回所述目标结果集,以基于预设渲染插件将所述目标结果集渲染至目标页面。

8.一种跨库跨表查询设备,其特征在于,所述设备预先配置有多种类型的数据库,所述设备包括:

跨库跨表查询请求接收模块,用于接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;

解析处理模块,用于对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;

结果集获取模块,用于调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;

整合处理模块,用于根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。

9.一种跨库跨表查询服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一所述的跨库跨表查询方法。

10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一所述的跨库跨表查询方法。

技术总结
本申请公开了一种跨库跨表查询方法、设备、服务器及存储介质,所述方法包括:应用于服务器,所述服务器预先配置有多种类型的数据库,接收跨库跨表查询请求,所述跨库跨表查询请求携带有跨库跨表查询语句和查询需求信息;对所述跨库跨表查询语句进行解析处理,得到多个单库单表的查询语句;调用结果集查询方法,基于所述结果集查询方法、每一单库单表的查询语句和数据库许可标识从对应的数据库中获取每一单库单表查询语句对应的结果集,所述数据库许可标识为配置所述多种类型的数据库时确定的;根据所述查询需求信息对所述多个单库单表的结果集进行整合处理,得到目标结果集。利用本申请提供的技术方案可以大大降低数据库查询访问的处理效率。

技术研发人员:孙志峰;韩双林;尹雪净
受保护的技术使用者:苏州达家迎信息技术有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25553.html

最新回复(0)