CN110674177B - 数据查询方法、装置、电子设备和存储介质 - Google Patents

数据查询方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110674177B
CN110674177B CN201910948794.7A CN201910948794A CN110674177B CN 110674177 B CN110674177 B CN 110674177B CN 201910948794 A CN201910948794 A CN 201910948794A CN 110674177 B CN110674177 B CN 110674177B
Authority
CN
China
Prior art keywords
query
sub
data
query request
results
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910948794.7A
Other languages
English (en)
Other versions
CN110674177A (zh
Inventor
胡俊辉
李虎
杨占春
陈起
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN201910948794.7A priority Critical patent/CN110674177B/zh
Publication of CN110674177A publication Critical patent/CN110674177A/zh
Application granted granted Critical
Publication of CN110674177B publication Critical patent/CN110674177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据查询方法,包括:响应于获取接收到数据查询请求,解析数据查询请求,以获取响应针对数据查询请求而需要查询的多个数据资产的资产信息;在根据资产信息确定多个数据资产由多个数据库存储的情况下,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果,以由数据管理装置存储多个查询子结果;向数据管理装置发送数据查询请求,以由数据管理装置根据数据查询请求处理多个查询子结果而生成响应针对数据查询请求的查询结果;以及接收来自数据存储装置的查询结果。本公开还提供了一种数据查询装置、电子设备和计算机可读存储介质。

Description

数据查询方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种数据查询方法和一种数据查询装置、电子设备和存储介质。
背景技术
数据资产的数量通常比较庞大,往往需要通过多种存储形式、存储介质存储数据资产。存储形式例如可以是存储数据资产的数据库等。存储介质例如可以是存储数据资产的服务器等。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:由于数据资产由多种存储形式、存储介质存储,导致用户查看自己的数据资产很困难,资产与资产间的关联搜索也难以实现。
发明内容
有鉴于此,本公开提供了一种数据查询方法和一种数据查询装置、电子设备和存储介质。
本公开的一个方面提供了一种数据查询方法,包括:响应于接收到数据查询请求,解析数据查询请求,以获取针对数据查询请求而需要查询的多个数据资产的资产信息;在根据资产信息确定多个数据资产由多个数据库存储的情况下,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果,以由数据管理装置存储多个查询子结果;向数据管理装置发送数据查询请求,以由数据管理装置根据数据查询请求处理多个查询子结果而生成针对数据查询请求的查询结果;以及接收来自数据存储装置的查询结果。
根据本公开的实施例,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果包括:在数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行子查询,获得嵌套的子查询各自的查询子结果;以及向数据管理装置发送多个查询子结果。
根据本公开的实施例,该方法还包括在数据查询请求中包括嵌套的子查询的情况下,对数据查询请求进行去子查询操作,其中,嵌套的子查询包括至少一个作为数据源的子查询和/或至少一个作为条件的子查询。去子查询操作包括:在数据管理装置中以表的形式存储作为数据源的子查询的查询子结果,表包括索引项,将数据查询请求中作为数据源的子查询替代为表的索引项;以及将数据查询请求中作为条件的子查询替代为作为条件的子查询的查询子结果。
根据本公开的实施例,向数据管理装置发送数据查询请求包括:将数据查询请求转换为数据管理装置能够识别的查询信息;以及向数据管理装置发送查询信息。
根据本公开的实施例,该方法还包括将查询结果存储于目标位置,并根据目标位置生成用于查询查询结果的参数信息;以及基于参数信息生成应用程序编程接口,以供应用程序使用。
根据本公开的实施例,在根据资产信息确定多个数据资产由同一个特定数据库存储的情况下,确定特定数据库所使用的语言;将数据查询请求转换成通过语言表达的查询信息,以便由特定数据库基于查询信息生成查询结果;以及接收来自特定数据库的查询结果。
本公开的另一个方面提供了一种数据查询装置,包括:解析模块,用于响应于接收到数据查询请求,解析数据查询请求,以获取针对数据查询请求而需要查询的多个数据资产的资产信息;获取模块,用于在根据资产信息确定多个数据资产由多个数据库存储的情况下,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果,以由数据管理装置存储多个查询子结果;发送模块,用于向数据管理装置发送数据查询请求,以由数据管理装置根据数据查询请求处理多个查询子结果而生成针对数据查询请求的查询结果;以及接收模块,用于接收来自数据存储装置的查询结果。
根据本公开的实施例,获取模块包括:获取子模块,用于在数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行子查询,获得嵌套的子查询各自的查询子结果;以及发送子模块,用于向数据管理装置发送多个查询子结果。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,可以至少部分地解决用户查看自己的数据资产很困难,资产与资产间的管理搜索也难以实现的问题,并因此可以实现用户方便查看数据资产,资产与资产间的关联搜索易于实现的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用数据查询方法的示例性应用场景;
图2示意性示出了根据本公开实施例的数据查询方法的流程图;
图3示意性示出了根据本公开实施例的获取多个查询子结果并且向数据管理装置发送多个查询子结果的流程图;
图4示意性示出了根据本公开实施例的向数据管理装置发送数据查询请求的方法流程图;
图5示意性示出了根据本公开另一实施例的数据查询方法;
图6示意性示出了根据本公开另一实施例的的数据查询方法;
图7示意性示出了根据本公开另一实施例的数据查询方法;
图8示意性示出了根据本公开的实施例的数据查询装置的框图;以及
图9示意性示出了根据本公开实施例的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
本公开的实施例提供了一种用于数据查询方法。该方法包括:响应于接收到数据查询请求,解析数据查询请求,以获取针对数据查询请求而需要查询的多个数据资产的资产信息;在根据资产信息确定多个数据资产由多个数据库存储的情况下,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果,以由数据管理装置存储多个查询子结果;向数据管理装置发送数据查询请求,以由数据管理装置根据数据查询请求处理多个查询子结果而生成针对数据查询请求的查询结果;以及接收来自数据存储装置的查询结果。
图1示意性示出了根据本公开实施例的可以应用数据查询方法的示例性应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,在该应用场景中可以包括表1和表2。其中,表1例如存储于数据库A中,表2存储于数据库B中。表1中可以包括字段:“姓名”、“年龄”和“身份证”,表2中可以包括字段:“姓名”、“车辆/个”、“身份证”。
在相关技术中,由于表1和表2分别存储于不同的数据库中,用户难以实现对表1和表2的关联查询,例如用户难以查询到张三拥有几个车辆、李四拥有几个车辆。
本公开提供了一种数据查询方法,该数据查询方法可以应用于图1所示的场景中,通过该数据查询方法可以简便地查询到张三拥有几个车辆、李四拥有几个车辆,即本公开提供的数据查询方法能够降低由不同存储形式或者不同存储介质存储的数据资产的关联查询的难度,从而实现用户方便查看数据资产,资产与资产间的关联搜索易于实现的技术效果。
图2示意性示出了根据本公开实施例的数据查询方法的流程图。
如图2所示,该方法可以包括在操作S201~S204。
在操作S201,响应于接收到数据查询请求,解析数据查询请求,以获取针对数据查询请求而需要查询的多个数据资产的资产信息。
根据本公开的实施例,数据查询请求例如可以是使用结构化语言编写的。具体地,例如用户可以在本公开提供的数据查询***的界面上使用结构化语言编写数据查询请求,并且在数据查询请求编写完成时,点击界面上的“运行”按钮。数据查询***响应于接收到数据查询请求,解析数据查询请求,以获取针对数据查询请求而需要查询的多个数据资产的资产信息。
根据本公开的实施例,通过解析数据查询请求例如可以获取到需要查询的表、字段等资产信息,并且例如可以根据表等资产信息进一步地获取存储该表的服务器、IP地址、端口等资产信息。
具体地,例如数据查询请求可以是使用SQL语言编写的,解析SQL语言,获取该数据查询请求需要查询的数据资产可以包括表1和表2。并且提取存储该表1和表2的数据库、IP地址等资产信息。
在操作S202,在根据资产信息确定多个数据资产由多个数据库存储的情况下,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果,以由数据管理装置存储多个查询子结果。
例如当存储表1和表2的数据库的IP地址和端口等资产信息中的任意一个不同的情况下,确定表1和表2存储于不同的数据库中。
根据本公开的实施例,从多个数据库中分别获取针对数据查询请求的多个查询子结果。例如数据查询请求中第一查询模块请求查询表1,第二查询模块请求查询表2。执行该数据查询请求,分别从存储表1的数据库中获取表1,从存储表2的数据库中获取表2。
根据本公开的实施例,例如存储表1的数据库所使用的是t-sql(一种SQL SEVER的SQL语句)语言,而数据查询请求所使用的例如可以是SQL语言。从数据库中获取表1时,需要将数据查询请求所使用的SQL语言转换成t-sql语言,从而使得数据库能够响应第一查询模块的查询请求获取表1。类似地,若存储表2的数据库所使用的语言与第二查询模块所使用的语言不相同的情况下,也需要将第二查询模块转换成存储表2的数据库所使用的语言。
接下来,向数据管理装置发送多个查询子结果即表1和表2,将表1和表2转存到数据管理装置中。
根据本公开的实施例,数据管理装置例如可以是分布式计算引擎spark。
在操作S203,向数据管理装置发送数据查询请求,以由数据管理装置根据数据查询请求处理多个查询子结果而生成针对数据查询请求的查询结果。
例如,在图1所示的应用场景中,数据查询请求可以是请求获取张三拥有几个车辆、李四拥有几个车辆,将该数据查询请求发送到spark,spark通过查询存储的表1和表2生成针对数据查询请求的查询结果。
在操作S204,接收来自数据存储装置的查询结果。例如可以接收来自spark的查询结果,并且在电子设备上展示该查询结果。
根据本公开的实施例,该方法根据数据查询请求使用到的资产信息,从存储数据资产的多个数据库中分别获取多个查询子结果,并将该多个查询子结果存储到数据管理装置中,从而通过数据管理装置根据多个查询子结果获取到针对数据查询请求的查询结果,实现了不同存储形式或者存储介质中的数据资产的关联查询。
图3示意性示出了根据本公开实施例的在操作S202获取多个查询子结果并且向数据管理装置发送多个查询子结果的流程图。
如图3所示,该方法可以包括操作S212和操作S222。
在操作S212,在数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行子查询,获得嵌套的子查询各自的查询子结果。
根据本公开的实施例,例如可以利用相关技术中的SQL解析插件对使用SQL语言编写的数据查询请求进行递归解析,从最内侧的子查询开始依次向外执行子查询,获得多个子查询各自的查询子结果。
在操作S222,向数据管理装置发送多个查询子结果。
根据本公开的实施例,数据管理装置例如可以是spark,spark不支持子查询。因此,在数据查询请求中包括嵌套的子查询的情况下,还可以对数据查询请求进行去子查询操作。
根据本公开的实施例,嵌套的子查询可以包括至少一个作为数据源的子查询和/或至少一个作为条件的子查询。对于作为数据源的子查询,去子查询操作可以是在数据管理装置中以表的形式存储作为数据源的子查询的查询子结果,该表包括索引项,将数据查询请求中作为数据源的子查询替代为表的索引项。其中,表的索引项例如可以是表的表名。对于作为条件的子查询,将数据查询请求中作为条件的子查询用替代为作为条件的子查询的查询子结果。
具体地,例如SQL语句select*from(select……from 1),其中,子查询(select……from 1)可以是作为数据源的子查询,该子查询的查询子结果可以是一个表,并将获得的该表存储到数据管理装置例如spark中。将该表***spark中,并记录其在spark中的表名,例如在spark中的表名为表A。在将该表***spark之后,将SQL语句select*from(select……from 1)更新为select*from A。
根据本公开的实施例,将数据查询请求中的子查询全部去除之后,可以将数据查询请求发送到spark,使得spark根据去除子查询之后的数据查询请求对spark中存储的多个查询子结果进行查询,从而获得诊断数据查询请求的查询结果。
图4示意性示出了根据本公开实施例的在操作S203向数据管理装置发送数据查询请求的方法流程图。
如图4所示,该方法可以包括操作S213和操作S223。
在操作S213,将数据查询请求转换为数据管理装置能够识别的查询信息。
根据本公开的实施例,数据管理装置例如可以是spark,数据查询请求可以是经过去子查询操作处理后的数据查询请求,该数据查询请求例如可以是使用SQL语言编写的。将该使用SQL语言编写的数据查询请求转换成spark所使用的语法格式。
在操作S223,向数据管理装置发送查询信息。
图5示意性示出了根据本公开另一实施例的数据查询方法。
如图5所示,该数据查询方法在图2所描述的操作S201~S204的基础上还可以包括操作S501和操作S502。
在操作S501,将查询结果存储于目标位置,并根据目标位置生成用于查询查询结果的参数信息。
根据本公开的实施例,目标位置例如可以是某个服务器上,并且根据目标位置生成参数信息。该参数信息表示了存储该查询结果的目标位置。
在操作S502,基于参数信息生成应用程序编程接口,以供应用程序使用。
根据参数信息和查询结果生成应用程序编程接口,以供应用程序通过该应用程序编程接口直接获取到查询结果。
图6示意性示出了根据本公开另一实施例的的数据查询方法。
如图6所示,该数据查询方法可以在图2所示的操作S201~S204的基础上还可以包括操作S601~S603。
在操作S601,在根据资产信息确定多个数据资产由同一个特定数据库存储的情况下,确定特定数据库所使用的语言。
在操作S602,将数据查询请求转换成通过语言表达的查询信息,以便由特定数据库基于查询信息生成查询结果。
在操作S603,接收来自特定数据库的查询结果。
在该实施例中,数据查询请求所请求查询的多个数据资产由同一个特定数据库存储,可以确定该特定数据库所使用的语言,例如可以是t-sql。
该数据查询请求例如可以是使用SQL编写的,根据本公开的实施例,将SQL语言编写的数据查询请求转换成t-sql语言,由该特定数据库根据数据查询请求查询相关资产。
在操作S603,例如可以是接收并展示来自特定数据库的查询结果。
图7示意性示出了根据本公开另一实施例的数据查询方法。
如图7所示,该数据查询方法可以包括操作S701~S715。
在操作S701和操作S702,读取结构化查询语言,并解析该结构化查询语言而获得资产信息。该结构化查询语言例如可以是使用SQL语言编写的数据查询请求。例如可以执行上文参考图2描述的操作S201。
在操作S703,判断结构化查询语言需要查询的多个资产信息是否是同库。
若多个资产信息是同库,则可以执行操作S711,若多个资产信息是异库,即多个数据资产由多个数据库存储,则可以执行操作S704。
在操作S704,例如可以利用相关技术中的结构化查询语言解析插件对结构化查询语言进行解析,以执行操作S705。在操作S705,提取结构化查询语言中的查询模块,并对查询模块进行解析,获取查询模块中的最内层的子查询和需要查询的表和字段等。
在操作S706,例如可以是对多个存储数据资产的数据库进行管理的数据资产管理模块对用户的权限进行校验。以确定用户是否具有访问该表、字段的权限。
在操作S707,判断校验是否通过。若校验通过即用户具有防问权限,则可以执行操作S708,若校验未通过即用户不具有访问权限,则可以执行操作S715。
在操作S708,从相应的数据库中提取针对子查询的查询子结果,并将查询子结果存储到spark中,并且对结构化查询语言进行去子查询操作。
根据本公开的实施例,去子查询操作例如可以包括:针对作为外层查询的数据源的子查询,将子查询的查询子结果以表的形式存储于spark中,并且记录其在spark中的表名。将结构化查询语言中的该子查询用其在spark中的表名代替;针对作为外层查询的条件的子查询,将结构化查询语言中的该子查询用该子查询的查询子结果代替。
在操作S709,判断结构化查询语言中是否还包含子查询。
若结构化查询语言中不包含子查询可以执行操作S714,若结构化查询语言中包含子查询可以返回执行操作S704,直到结构化查询语言中不包含子查询为止。
在操作S710,可以是spark根据去子查询后的结构化查询语言,对自身存储的多个查询子结果进行查询,获取查询结果。
在操作S711,在多个资产是由同一个数据库存储的情况下,将结构化查询语言转换成该数据库所使用的语言,以使得该数据库获得查询信息。
在操作S712,对用户是否具有查询权限进行校验。校验方法例如可以如操作S706中所描述的方法。
在操作S713,判断校验是否通过。
若校验通过可以执行操作S714,若校验未通过可以执行操作S715。
在操作S714,输出查询到的查询结果。
在操作S715,若校验未通过,spark对暂存的子查询的查询子结果进行回退处理。例如可以将查询子结果删除,spark恢复为原始状态。
图8示意性示出了根据本公开的实施例的数据查询装置800的框图。
如图8所示,数据查询装置800可以包括解析模块810、获取模块820、发送模块830和接收模块840。
解析模块810,例如可以执行上文参考图2描述的操作S201,用于响应于接收到数据查询请求,解析数据查询请求,以获取针对数据查询请求而需要查询的多个数据资产的资产信息。
获取模块820,例如可以执行上文参考图2描述的操作S202,于在根据资产信息确定多个数据资产由多个数据库存储的情况下,基于数据查询请求,从多个数据库中分别获取多个查询子结果,并且向数据管理装置发送多个查询子结果,以由数据管理装置存储多个查询子结果。
发送模块830,例如可以执行上文参考图2描述的操作S203,用于向数据管理装置发送数据查询请求,以由数据管理装置根据数据查询请求处理多个查询子结果而生成针对数据查询请求的查询结果。
接收模块840,例如可以执行上文参考图2描述的操作S204,用于接收来自数据存储装置的查询结果。
根据本公开的实施例,获取模块包括:获取子模块用于在数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行子查询,获得嵌套的子查询各自的查询子结果;以及发送子模块用于向数据管理装置发送多个查询子结果。
根据本公开的实施例,数据查询装置800还可以包括去子查询模块,用于在数据查询请求中包括嵌套的子查询的情况下,对数据查询请求进行去子查询操作,其中,嵌套的子查询包括至少一个作为数据源的子查询和/或至少一个作为条件的子查询。去子查询操作包括:在数据管理装置中以表的形式存储作为数据源的子查询的查询子结果,表包括索引项,将数据查询请求中作为数据源的子查询替代为表的索引项;以及将数据查询请求中作为条件的子查询替代为作为条件的子查询的查询子结果。
根据本公开的实施例,发送模块830可以包括转换子模块,用于将数据查询请求转换为数据管理装置能够识别的查询信息;以及发送信息模块,用于向数据管理装置发送查询信息。
根据本公开的实施例,数据查询装置800还可以包括第一生成模块,用于将查询结果存储于目标位置,并根据目标位置生成用于查询查询结果的参数信息;以及第二生成模块用于基于参数信息生成应用程序编程接口,以供应用程序使用。
根据本公开的实施例,数据查询装置800还可以包括确定模块,用于在根据资产信息确定多个数据资产由同一个特定数据库存储的情况下,确定特定数据库所使用的语言;转换模块,用于将数据查询请求转换成通过语言表达的查询信息,以便由特定数据库基于查询信息生成查询结果,以及接收结果模块,用于接收来自特定数据库的查询结果。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,解析模块810、获取模块820、发送模块830和接收模块840中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,解析模块810、获取模块820、发送模块830和接收模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,解析模块810、获取模块820、发送模块830和接收模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的电子设备的方框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时电可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (8)

1.一种数据查询方法,包括:
响应于接收到数据查询请求,解析所述数据查询请求,以获取针对所述数据查询请求而需要查询的多个数据资产的资产信息;
在根据所述资产信息确定所述多个数据资产由多个数据库存储,以及所述数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行所述子查询,从所述多个数据库中获得所述嵌套的子查询各自的查询子结果,得到多个查询子结果;
向数据管理装置发送所述多个查询子结果,以由所述数据管理装置存储所述多个查询子结果;
对所述数据查询请求进行去子查询操作得到新数据查询请求,其中,所述嵌套的子查询包括至少一个作为数据源的子查询和/或至少一个作为条件的子查询,所述去子查询操作包括:
在所述数据管理装置中以表的形式存储所述作为数据源的子查询的查询子结果,所述表包括索引项,
将所述数据查询请求中作为数据源的子查询替代为所述表的索引项,以及
将所述数据查询请求中作为条件的子查询替代为所述作为条件的子查询的查询子结果;
向所述数据管理装置发送所述新数据查询请求,以由所述数据管理装置根据所述新数据查询请求处理所述多个查询子结果而生成针对所述数据查询请求的查询结果;以及
接收来自所述数据管理 装置的所述查询结果。
2.根据权利要求1所述的方法,其中,所述向所述数据管理装置发送所述数据查询请求包括:
将所述数据查询请求转换为所述数据管理装置能够识别的查询信息;以及
向所述数据管理装置发送所述查询信息。
3.根据权利要求1所述的方法,还包括:
将所述查询结果存储于目标位置,并根据所述目标位置生成用于查询所述查询结果的参数信息;以及
基于所述参数信息生成应用程序编程接口,以供应用程序使用。
4.根据权利要求1所述的方法,还包括:
在根据所述资产信息确定所述多个数据资产由同一个特定数据库存储的情况下,确定所述特定数据库所使用的语言;
将所述数据查询请求转换成通过所述语言表达的查询信息,以便由所述特定数据库基于所述查询信息生成查询结果;以及
接收来自所述特定数据库的查询结果。
5.一种数据查询装置,包括:
解析模块,用于响应于接收到数据查询请求,解析所述数据查询请求,以获取针对所述数据查询请求而需要查询的多个数据资产的资产信息;
获取模块,用于在根据所述资产信息确定所述多个数据资产由多个数据库存储,以及所述数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行所述子查询,从所述多个数据库中获得所述嵌套的子查询各自的查询子结果,得到多个查询子结果;向数据管理装置发送所述多个查询子结果,以由所述数据管理装置存储所述多个查询子结果;
去子查询模块,用于对所述数据查询请求进行去子查询操作得到新数据查询请求,其中,所述嵌套的子查询包括至少一个作为数据源的子查询和/或至少一个作为条件的子查询,所述去子查询操作包括:
在所述数据管理装置中以表的形式存储所述作为数据源的子查询的查询子结果,所述表包括索引项,
将所述数据查询请求中作为数据源的子查询替代为所述表的索引项,以及
将所述数据查询请求中作为条件的子查询替代为所述作为条件的子查询的查询子结果;
发送模块,用于向所述数据管理装置发送所述新数据查询请求,以由所述数据管理装置根据所述新数据查询请求处理所述多个查询子结果而生成针对所述数据查询请求的查询结果;以及
接收模块,用于接收来自所述数据管理 装置的所述查询结果。
6.根据权利要求5所述的装置,其中,所述获取模块包括:
获取子模块,用于在所述数据查询请求中包括嵌套的子查询的情况下,从最内层的子查询开始依次向外执行所述子查询,获得所述嵌套的子查询各自的查询子结果;以及
发送子模块,用于向所述数据管理装置发送所述多个查询子结果。
7.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1~4所述任意一项的方法。
8.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1~4所述任意一项的方法。
CN201910948794.7A 2019-09-30 2019-09-30 数据查询方法、装置、电子设备和存储介质 Active CN110674177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910948794.7A CN110674177B (zh) 2019-09-30 2019-09-30 数据查询方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910948794.7A CN110674177B (zh) 2019-09-30 2019-09-30 数据查询方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN110674177A CN110674177A (zh) 2020-01-10
CN110674177B true CN110674177B (zh) 2023-04-11

Family

ID=69080695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910948794.7A Active CN110674177B (zh) 2019-09-30 2019-09-30 数据查询方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110674177B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779325B (zh) * 2020-12-25 2024-04-05 北京沃东天骏信息技术有限公司 数据查询方法、装置、存储介质和电子设备
CN113177062B (zh) * 2021-05-25 2023-06-09 深圳前海微众银行股份有限公司 一种数据查询方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984713A (zh) * 2014-05-07 2014-08-13 丽水桉阳生物科技有限公司 一种基于云计算的财务数据查询方法
US9183254B1 (en) * 2012-05-04 2015-11-10 Paraccel Llc Optimizing database queries using subquery composition
CN107315790A (zh) * 2017-06-14 2017-11-03 腾讯科技(深圳)有限公司 一种非相关子查询的优化方法和装置
CN109508339A (zh) * 2018-11-12 2019-03-22 上海达梦数据库有限公司 一种数据查询方法、装置、终端设备和存储介质
CN110109951A (zh) * 2017-12-29 2019-08-09 华为软件技术有限公司 一种关联查询的方法、数据库应用***及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183254B1 (en) * 2012-05-04 2015-11-10 Paraccel Llc Optimizing database queries using subquery composition
CN103984713A (zh) * 2014-05-07 2014-08-13 丽水桉阳生物科技有限公司 一种基于云计算的财务数据查询方法
CN107315790A (zh) * 2017-06-14 2017-11-03 腾讯科技(深圳)有限公司 一种非相关子查询的优化方法和装置
CN110109951A (zh) * 2017-12-29 2019-08-09 华为软件技术有限公司 一种关联查询的方法、数据库应用***及服务器
CN109508339A (zh) * 2018-11-12 2019-03-22 上海达梦数据库有限公司 一种数据查询方法、装置、终端设备和存储介质

Also Published As

Publication number Publication date
CN110674177A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
US10055509B2 (en) Constructing an in-memory representation of a graph
KR102407510B1 (ko) 데이터 저장 및 조회 방법, 장치, 기기 및 매체
US8762428B2 (en) Rapidly deploying virtual database applications using data model analysis
US9378233B2 (en) For all entries processing
US8219581B2 (en) Method and system for analyzing ordered data using pattern matching in a relational database
CN108932313B (zh) 数据处理方法、装置、电子设备及存储介质
US10120916B2 (en) In-querying data cleansing with semantic standardization
US10565201B2 (en) Query processing management in a database management system
US20160342653A1 (en) Parallelizing sql user defined transformation functions
US20120331010A1 (en) Systems And Methods For Performing A Query On A Distributed Database
CN112395303A (zh) 查询的执行方法、装置、电子设备及计算机可读介质
CN109241100B (zh) 一种查询方法、装置、设备及存储介质
CN110688544A (zh) 一种查询数据库的方法、设备及存储介质
US9524305B2 (en) Boolean term conversion for null-tolerant disjunctive predicates
US20160342652A1 (en) Database query cursor management
CN110674177B (zh) 数据查询方法、装置、电子设备和存储介质
US8694525B2 (en) Systems and methods for performing index joins using auto generative queries
CN112905620B (zh) 数据查询方法及装置、电子设备、存储介质
US11354313B2 (en) Transforming a user-defined table function to a derived table in a database management system
JPWO2013175611A1 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
JP2024504322A (ja) クラウドリソースにわたるJavaScriptオブジェクト記法(JASON)クエリの結合
US20180336235A1 (en) Reconciled data storage system
US20150347506A1 (en) Methods and apparatus for specifying query execution plans in database management systems
US10185742B2 (en) Flexible text searching for data objects of object notation
US9824122B2 (en) Requests for source code text

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant